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

sctp_handle_asconf:
  619|  8.46k|{
  620|  8.46k|	struct sctp_association *asoc;
  621|  8.46k|	uint32_t serial_num;
  622|  8.46k|	struct mbuf *n, *m_ack, *m_result, *m_tail;
  623|  8.46k|	struct sctp_asconf_ack_chunk *ack_cp;
  624|  8.46k|	struct sctp_asconf_paramhdr *aph;
  625|  8.46k|	struct sctp_ipv6addr_param *p_addr;
  626|  8.46k|	unsigned int asconf_limit, cnt;
  627|  8.46k|	int error = 0;		/* did an error occur? */
  628|       |
  629|       |	/* asconf param buffer */
  630|  8.46k|	uint8_t aparam_buf[SCTP_PARAM_BUFFER_SIZE];
  631|  8.46k|	struct sctp_asconf_ack *ack, *ack_next;
  632|       |
  633|       |	/* verify minimum length */
  634|  8.46k|	if (ntohs(cp->ch.chunk_length) < sizeof(struct sctp_asconf_chunk)) {
  ------------------
  |  Branch (634:6): [True: 2.14k, False: 6.31k]
  ------------------
  635|  2.14k|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  636|  2.14k|			"handle_asconf: chunk too small = %xh\n",
  637|  2.14k|			ntohs(cp->ch.chunk_length));
  638|  2.14k|		return;
  639|  2.14k|	}
  640|  6.31k|	asoc = &stcb->asoc;
  641|  6.31k|	serial_num = ntohl(cp->serial_number);
  642|       |
  643|  6.31k|	if (SCTP_TSN_GE(asoc->asconf_seq_in, serial_num)) {
  ------------------
  |  |  890|  6.31k|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|  6.31k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  12.6k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 3.63k, False: 2.68k]
  |  |  |  |  |  |  |  Branch (883:43): [True: 446, False: 3.19k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  12.6k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 2.26k, False: 3.60k]
  |  |  |  |  |  |  |  Branch (884:43): [True: 1.35k, False: 909]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 412, False: 4.10k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  644|       |		/* got a duplicate ASCONF */
  645|  2.21k|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  646|  2.21k|			"handle_asconf: got duplicate serial number = %xh\n",
  647|  2.21k|			serial_num);
  648|  2.21k|		return;
  649|  4.10k|	} else if (serial_num != (asoc->asconf_seq_in + 1)) {
  ------------------
  |  Branch (649:13): [True: 1.75k, False: 2.34k]
  ------------------
  650|  1.75k|		SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf: incorrect serial number = %xh (expected next = %xh)\n",
  651|  1.75k|			serial_num, asoc->asconf_seq_in + 1);
  652|  1.75k|		return;
  653|  1.75k|	}
  654|       |
  655|       |	/* it's the expected "next" sequence number, so process it */
  656|  2.34k|	asoc->asconf_seq_in = serial_num;	/* update sequence */
  657|       |	/* get length of all the param's in the ASCONF */
  658|  2.34k|	asconf_limit = offset + ntohs(cp->ch.chunk_length);
  659|  2.34k|	SCTPDBG(SCTP_DEBUG_ASCONF1,
  660|  2.34k|		"handle_asconf: asconf_limit=%u, sequence=%xh\n",
  661|  2.34k|		asconf_limit, serial_num);
  662|       |
  663|  2.34k|	if (first) {
  ------------------
  |  Branch (663:6): [True: 2.13k, False: 207]
  ------------------
  664|       |		/* delete old cache */
  665|  2.13k|		SCTPDBG(SCTP_DEBUG_ASCONF1,"handle_asconf: Now processing first ASCONF. Try to delete old cache\n");
  666|       |
  667|  2.13k|		TAILQ_FOREACH_SAFE(ack, &asoc->asconf_ack_sent, next, ack_next) {
  ------------------
  |  | 1129|  2.13k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  2.13k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 2.13k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  2.13k|              (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.13k|	}
  679|       |
  680|  2.34k|	m_ack = sctp_get_mbuf_for_msg(sizeof(struct sctp_asconf_ack_chunk), 0,
  681|  2.34k|				      M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  2.34k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              				      M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  2.34k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
  682|  2.34k|	if (m_ack == NULL) {
  ------------------
  |  Branch (682:6): [True: 0, False: 2.34k]
  ------------------
  683|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  684|      0|			"handle_asconf: couldn't get mbuf!\n");
  685|      0|		return;
  686|      0|	}
  687|  2.34k|	m_tail = m_ack;		/* current reply chain's tail */
  688|       |
  689|       |	/* fill in ASCONF-ACK header */
  690|  2.34k|	ack_cp = mtod(m_ack, struct sctp_asconf_ack_chunk *);
  ------------------
  |  |   96|  2.34k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.34k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
  691|  2.34k|	ack_cp->ch.chunk_type = SCTP_ASCONF_ACK;
  ------------------
  |  |  477|  2.34k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  692|  2.34k|	ack_cp->ch.chunk_flags = 0;
  693|  2.34k|	ack_cp->serial_number = htonl(serial_num);
  694|       |	/* set initial lengths (eg. just an ASCONF-ACK), ntohx at the end! */
  695|  2.34k|	SCTP_BUF_LEN(m_ack) = sizeof(struct sctp_asconf_ack_chunk);
  ------------------
  |  |  801|  2.34k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.34k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  696|  2.34k|	ack_cp->ch.chunk_length = sizeof(struct sctp_asconf_ack_chunk);
  697|       |
  698|       |	/* skip the lookup address parameter */
  699|  2.34k|	offset += sizeof(struct sctp_asconf_chunk);
  700|  2.34k|	p_addr = (struct sctp_ipv6addr_param *)sctp_m_getptr(m, offset, sizeof(struct sctp_paramhdr), (uint8_t *)&aparam_buf);
  701|  2.34k|	if (p_addr == NULL) {
  ------------------
  |  Branch (701:6): [True: 7, False: 2.33k]
  ------------------
  702|      7|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  703|      7|			"handle_asconf: couldn't get lookup addr!\n");
  704|       |		/* respond with a missing/invalid mandatory parameter error */
  705|      7|		sctp_m_freem(m_ack);
  ------------------
  |  |   52|      7|#define sctp_m_freem m_freem
  ------------------
  706|      7|		return;
  707|      7|	}
  708|       |	/* skip lookup addr */
  709|  2.33k|	offset += SCTP_SIZE32(ntohs(p_addr->ph.param_length));
  ------------------
  |  |  383|  2.33k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  710|       |	/* get pointer to first asconf param in ASCONF */
  711|  2.33k|	aph = (struct sctp_asconf_paramhdr *)sctp_m_getptr(m, offset, sizeof(struct sctp_asconf_paramhdr), (uint8_t *)&aparam_buf);
  712|  2.33k|	if (aph == NULL) {
  ------------------
  |  Branch (712:6): [True: 116, False: 2.22k]
  ------------------
  713|    116|		SCTPDBG(SCTP_DEBUG_ASCONF1, "Empty ASCONF received?\n");
  714|    116|		goto send_reply;
  715|    116|	}
  716|       |	/* process through all parameters */
  717|  2.22k|	cnt = 0;
  718|  96.6k|	while (aph != NULL) {
  ------------------
  |  Branch (718:9): [True: 96.5k, False: 82]
  ------------------
  719|  96.5k|		unsigned int param_length, param_type;
  720|       |
  721|  96.5k|		param_type = ntohs(aph->ph.param_type);
  722|  96.5k|		param_length = ntohs(aph->ph.param_length);
  723|  96.5k|		if (offset + param_length > asconf_limit) {
  ------------------
  |  Branch (723:7): [True: 653, False: 95.9k]
  ------------------
  724|       |			/* parameter goes beyond end of chunk! */
  725|    653|			sctp_m_freem(m_ack);
  ------------------
  |  |   52|    653|#define sctp_m_freem m_freem
  ------------------
  726|    653|			return;
  727|    653|		}
  728|  95.9k|		m_result = NULL;
  729|       |
  730|  95.9k|		if (param_length > sizeof(aparam_buf)) {
  ------------------
  |  Branch (730:7): [True: 13, False: 95.9k]
  ------------------
  731|     13|			SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf: param length (%u) larger than buffer size!\n", param_length);
  732|     13|			sctp_m_freem(m_ack);
  ------------------
  |  |   52|     13|#define sctp_m_freem m_freem
  ------------------
  733|     13|			return;
  734|     13|		}
  735|  95.9k|		if (param_length < sizeof(struct sctp_asconf_paramhdr)) {
  ------------------
  |  Branch (735:7): [True: 331, False: 95.5k]
  ------------------
  736|    331|			SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf: param length (%u) too short\n", param_length);
  737|    331|			sctp_m_freem(m_ack);
  ------------------
  |  |   52|    331|#define sctp_m_freem m_freem
  ------------------
  738|    331|			return;
  739|    331|		}
  740|       |		/* get the entire parameter */
  741|  95.5k|		aph = (struct sctp_asconf_paramhdr *)sctp_m_getptr(m, offset, param_length, aparam_buf);
  742|  95.5k|		if (aph == NULL) {
  ------------------
  |  Branch (742:7): [True: 0, False: 95.5k]
  ------------------
  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|  95.5k|		switch (param_type) {
  748|  58.6k|		case SCTP_ADD_IP_ADDRESS:
  ------------------
  |  |  430|  58.6k|#define SCTP_ADD_IP_ADDRESS		0xc001
  ------------------
  |  Branch (748:3): [True: 58.6k, False: 36.9k]
  ------------------
  749|  58.6k|			m_result = sctp_process_asconf_add_ip(src, aph, stcb,
  750|  58.6k|			    (cnt < SCTP_BASE_SYSCTL(sctp_hb_maxburst)), error);
  ------------------
  |  |  590|  58.6k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  751|  58.6k|			cnt++;
  752|  58.6k|			break;
  753|  17.4k|		case SCTP_DEL_IP_ADDRESS:
  ------------------
  |  |  431|  17.4k|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (753:3): [True: 17.4k, False: 78.0k]
  ------------------
  754|  17.4k|			m_result = sctp_process_asconf_delete_ip(src, aph, stcb,
  755|  17.4k|			    error);
  756|  17.4k|			break;
  757|    436|		case SCTP_ERROR_CAUSE_IND:
  ------------------
  |  |  432|    436|#define SCTP_ERROR_CAUSE_IND		0xc003
  ------------------
  |  Branch (757:3): [True: 436, False: 95.1k]
  ------------------
  758|       |			/* not valid in an ASCONF chunk */
  759|    436|			break;
  760|  10.5k|		case SCTP_SET_PRIM_ADDR:
  ------------------
  |  |  433|  10.5k|#define SCTP_SET_PRIM_ADDR		0xc004
  ------------------
  |  Branch (760:3): [True: 10.5k, False: 85.0k]
  ------------------
  761|  10.5k|			m_result = sctp_process_asconf_set_primary(src, aph,
  762|  10.5k|			    stcb, error);
  763|  10.5k|			break;
  764|     80|		case SCTP_NAT_VTAGS:
  ------------------
  |  |  438|     80|#define SCTP_NAT_VTAGS			0xc008
  ------------------
  |  Branch (764:3): [True: 80, False: 95.4k]
  ------------------
  765|     80|		        SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf: sees a NAT VTAG state parameter\n");
  766|     80|		        break;
  767|  1.11k|		case SCTP_SUCCESS_REPORT:
  ------------------
  |  |  434|  1.11k|#define SCTP_SUCCESS_REPORT		0xc005
  ------------------
  |  Branch (767:3): [True: 1.11k, False: 94.4k]
  ------------------
  768|       |			/* not valid in an ASCONF chunk */
  769|  1.11k|			break;
  770|    347|		case SCTP_ULP_ADAPTATION:
  ------------------
  |  |  435|    347|#define SCTP_ULP_ADAPTATION		0xc006
  ------------------
  |  Branch (770:3): [True: 347, False: 95.2k]
  ------------------
  771|       |			/* FIX */
  772|    347|			break;
  773|  6.97k|		default:
  ------------------
  |  Branch (773:3): [True: 6.97k, False: 88.6k]
  ------------------
  774|  6.97k|			if ((param_type & 0x8000) == 0) {
  ------------------
  |  Branch (774:8): [True: 191, False: 6.78k]
  ------------------
  775|       |				/* Been told to STOP at this param */
  776|    191|				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|    191|			}
  786|       |			/* unknown/invalid param type */
  787|  6.97k|			break;
  788|  95.5k|		} /* switch */
  789|       |
  790|       |		/* add any (error) result to the reply mbuf chain */
  791|  95.5k|		if (m_result != NULL) {
  ------------------
  |  Branch (791:7): [True: 63.8k, False: 31.7k]
  ------------------
  792|  63.8k|			SCTP_BUF_NEXT(m_tail) = m_result;
  ------------------
  |  |  802|  63.8k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  63.8k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  793|  63.8k|			m_tail = m_result;
  794|  63.8k|			ack_cp->ch.chunk_length += SCTP_BUF_LEN(m_result);
  ------------------
  |  |  801|  63.8k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  63.8k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  795|       |			/* set flag to force success reports */
  796|  63.8k|			error = 1;
  797|  63.8k|		}
  798|  95.5k|		offset += SCTP_SIZE32(param_length);
  ------------------
  |  |  383|  95.5k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  799|       |		/* update remaining ASCONF message length to process */
  800|  95.5k|		if (offset >= asconf_limit) {
  ------------------
  |  Branch (800:7): [True: 1.14k, False: 94.4k]
  ------------------
  801|       |			/* no more data in the mbuf chain */
  802|  1.14k|			break;
  803|  1.14k|		}
  804|       |		/* get pointer to next asconf param */
  805|  94.4k|		aph = (struct sctp_asconf_paramhdr *)sctp_m_getptr(m, offset,
  806|  94.4k|		    sizeof(struct sctp_asconf_paramhdr),
  807|  94.4k|		    (uint8_t *)&aparam_buf);
  808|  94.4k|		if (aph == NULL) {
  ------------------
  |  Branch (808:7): [True: 82, False: 94.3k]
  ------------------
  809|       |			/* can't get an asconf paramhdr */
  810|     82|			SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf: can't get asconf param hdr!\n");
  811|       |			/* FIX ME - add error here... */
  812|     82|		}
  813|  94.4k|	}
  814|       |
  815|  1.34k| send_reply:
  816|  1.34k|	ack_cp->ch.chunk_length = htons(ack_cp->ch.chunk_length);
  817|       |	/* save the ASCONF-ACK reply */
  818|  1.34k|	ack = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_asconf_ack),
  ------------------
  |  |  703|  1.34k|        (type *)malloc(zone);
  ------------------
  819|  1.34k|	    struct sctp_asconf_ack);
  820|  1.34k|	if (ack == NULL) {
  ------------------
  |  Branch (820:6): [True: 0, False: 1.34k]
  ------------------
  821|      0|		sctp_m_freem(m_ack);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
  822|      0|		return;
  823|      0|	}
  824|  1.34k|	ack->serial_number = serial_num;
  825|  1.34k|	ack->last_sent_to = NULL;
  826|  1.34k|	ack->data = m_ack;
  827|  1.34k|	ack->len = 0;
  828|  24.0k|	for (n = m_ack; n != NULL; n = SCTP_BUF_NEXT(n)) {
  ------------------
  |  |  802|  22.6k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  22.6k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (828:18): [True: 22.6k, False: 1.34k]
  ------------------
  829|  22.6k|		ack->len += SCTP_BUF_LEN(n);
  ------------------
  |  |  801|  22.6k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  22.6k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  830|  22.6k|	}
  831|  1.34k|	TAILQ_INSERT_TAIL(&stcb->asoc.asconf_ack_sent, ack, next);
  ------------------
  |  Branch (831:2): [Folded, False: 1.34k]
  ------------------
  832|       |
  833|       |	/* see if last_control_chunk_from is set properly (use IP src addr) */
  834|  1.34k|	if (stcb->asoc.last_control_chunk_from == NULL) {
  ------------------
  |  Branch (834:6): [True: 0, False: 1.34k]
  ------------------
  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.34k|}
sctp_asconf_cleanup:
  948|    773|{
  949|       |	/*
  950|       |	 * clear out any existing asconfs going out
  951|       |	 */
  952|    773|	sctp_timer_stop(SCTP_TIMER_TYPE_ASCONF, stcb->sctp_ep, stcb, NULL,
  ------------------
  |  |  541|    773|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
  953|    773|			SCTP_FROM_SCTP_ASCONF + SCTP_LOC_2);
  ------------------
  |  |  762|    773|#define SCTP_FROM_SCTP_ASCONF       0x80000000
  ------------------
              			SCTP_FROM_SCTP_ASCONF + SCTP_LOC_2);
  ------------------
  |  |  770|    773|#define SCTP_LOC_2  0x00000002
  ------------------
  954|    773|	stcb->asoc.asconf_seq_out_acked = stcb->asoc.asconf_seq_out;
  955|       |	/* remove the old ASCONF on our outbound queue */
  956|    773|	sctp_toss_old_asconf(stcb);
  957|    773|}
sctp_handle_asconf_ack:
 1694|    320|{
 1695|    320|	struct sctp_association *asoc;
 1696|    320|	uint32_t serial_num;
 1697|    320|	uint16_t ack_length;
 1698|    320|	struct sctp_asconf_paramhdr *aph;
 1699|    320|	struct sctp_asconf_addr *aa, *aa_next;
 1700|    320|	uint32_t last_error_id = 0;	/* last error correlation id */
 1701|    320|	uint32_t id;
 1702|    320|	struct sctp_asconf_addr *ap;
 1703|       |
 1704|       |	/* asconf param buffer */
 1705|    320|	uint8_t aparam_buf[SCTP_PARAM_BUFFER_SIZE];
 1706|       |
 1707|       |	/* verify minimum length */
 1708|    320|	if (ntohs(cp->ch.chunk_length) < sizeof(struct sctp_asconf_ack_chunk)) {
  ------------------
  |  Branch (1708:6): [True: 0, False: 320]
  ------------------
 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|    320|	asoc = &stcb->asoc;
 1715|    320|	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|    320|	if (serial_num == (asoc->asconf_seq_out + 1)) {
  ------------------
  |  Branch (1729:6): [True: 0, False: 320]
  ------------------
 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|    320|	if (serial_num != asoc->asconf_seq_out_acked + 1) {
  ------------------
  |  Branch (1740:6): [True: 320, False: 0]
  ------------------
 1741|       |		/* got a duplicate/unexpected ASCONF-ACK */
 1742|    320|		SCTPDBG(SCTP_DEBUG_ASCONF1, "handle_asconf_ack: got duplicate/unexpected serial number = %xh (expected = %xh)\n",
 1743|    320|			serial_num, asoc->asconf_seq_out_acked + 1);
 1744|    320|		return;
 1745|    320|	}
 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|    618|{
 3322|    618|	struct sctp_asconf_addr *aa_vtag, *aa_add, *aa_del;
 3323|    618|	struct sctp_ifa *sctp_ifap;
 3324|    618|	struct sctp_asconf_tag_param *vtag;
 3325|    618|#ifdef INET
 3326|    618|	struct sockaddr_in *to;
 3327|    618|#endif
 3328|    618|#ifdef INET6
 3329|    618|	struct sockaddr_in6 *to6;
 3330|    618|#endif
 3331|       |
 3332|    618|	if (net == NULL) {
  ------------------
  |  Branch (3332:6): [True: 0, False: 618]
  ------------------
 3333|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1, "sctp_asconf_send_nat_state_update: Missing net\n");
 3334|      0|		return;
 3335|      0|	}
 3336|    618|	if (stcb == NULL) {
  ------------------
  |  Branch (3336:6): [True: 0, False: 618]
  ------------------
 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|    618|	SCTP_MALLOC(aa_vtag, struct sctp_asconf_addr *, sizeof(struct sctp_asconf_addr), SCTP_M_ASC_ADDR);
  ------------------
  |  |  675|    618|	do {								\
  |  |  676|    618|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|    618|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|    618|    do {								\
  |  |  |  |  198|    618|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.23k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 618]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|    618|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 618]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|    618|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 618]
  |  |  ------------------
  ------------------
 3347|    618|	SCTP_MALLOC(aa_add, struct sctp_asconf_addr *, sizeof(struct sctp_asconf_addr), SCTP_M_ASC_ADDR);
  ------------------
  |  |  675|    618|	do {								\
  |  |  676|    618|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|    618|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|    618|    do {								\
  |  |  |  |  198|    618|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.23k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 618]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|    618|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 618]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|    618|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 618]
  |  |  ------------------
  ------------------
 3348|    618|	SCTP_MALLOC(aa_del, struct sctp_asconf_addr *, sizeof(struct sctp_asconf_addr), SCTP_M_ASC_ADDR);
  ------------------
  |  |  675|    618|	do {								\
  |  |  676|    618|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|    618|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|    618|    do {								\
  |  |  |  |  198|    618|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.23k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 618]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|    618|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 618]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|    618|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 618]
  |  |  ------------------
  ------------------
 3349|       |
 3350|    618|	if ((aa_vtag == NULL) || (aa_add == NULL) || (aa_del == NULL)) {
  ------------------
  |  Branch (3350:6): [True: 0, False: 618]
  |  Branch (3350:27): [True: 0, False: 618]
  |  Branch (3350:47): [True: 0, False: 618]
  ------------------
 3351|       |		/* Didn't get memory */
 3352|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1, "sctp_asconf_send_nat_state_update: failed to get memory!\n");
 3353|    618|out:
 3354|    618|		if (aa_vtag != NULL) {
  ------------------
  |  Branch (3354:7): [True: 618, False: 0]
  ------------------
 3355|    618|			SCTP_FREE(aa_vtag, SCTP_M_ASC_ADDR);
  ------------------
  |  |  679|    618|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|    618|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 3356|    618|		}
 3357|    618|		if (aa_add != NULL) {
  ------------------
  |  Branch (3357:7): [True: 618, False: 0]
  ------------------
 3358|    618|			SCTP_FREE(aa_add, SCTP_M_ASC_ADDR);
  ------------------
  |  |  679|    618|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|    618|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 3359|    618|		}
 3360|    618|		if (aa_del != NULL) {
  ------------------
  |  Branch (3360:7): [True: 618, False: 0]
  ------------------
 3361|    618|			SCTP_FREE(aa_del, SCTP_M_ASC_ADDR);
  ------------------
  |  |  679|    618|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|    618|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 3362|    618|		}
 3363|    618|		return;
 3364|      0|	}
 3365|    618|	memset(aa_vtag, 0, sizeof(struct sctp_asconf_addr));
 3366|    618|	aa_vtag->special_del = 0;
 3367|       |	/* Fill in ASCONF address parameter fields. */
 3368|       |	/* Top level elements are "networked" during send. */
 3369|    618|	aa_vtag->ifa = NULL;
 3370|    618|	aa_vtag->sent = 0;		/* clear sent flag */
 3371|    618|	vtag = (struct sctp_asconf_tag_param *)&aa_vtag->ap.aph;
 3372|    618|	vtag->aph.ph.param_type = SCTP_NAT_VTAGS;
  ------------------
  |  |  438|    618|#define SCTP_NAT_VTAGS			0xc008
  ------------------
 3373|    618|	vtag->aph.ph.param_length = sizeof(struct sctp_asconf_tag_param);
 3374|    618|	vtag->local_vtag = htonl(stcb->asoc.my_vtag);
 3375|    618|	vtag->remote_vtag = htonl(stcb->asoc.peer_vtag);
 3376|       |
 3377|    618|	memset(aa_add, 0, sizeof(struct sctp_asconf_addr));
 3378|    618|	memset(aa_del, 0, sizeof(struct sctp_asconf_addr));
 3379|    618|	switch (net->ro._l_addr.sa.sa_family) {
 3380|      0|#ifdef INET
 3381|      0|	case AF_INET:
  ------------------
  |  Branch (3381:2): [True: 0, False: 618]
  ------------------
 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: 618]
  ------------------
 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|    618|	default:
  ------------------
  |  Branch (3408:2): [True: 618, False: 0]
  ------------------
 3409|    618|		SCTPDBG(SCTP_DEBUG_ASCONF1,
 3410|    618|		        "sctp_asconf_send_nat_state_update: unknown address family %d\n",
 3411|    618|		        net->ro._l_addr.sa.sa_family);
 3412|    618|		goto out;
 3413|    618|	}
 3414|    618|	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|  58.6k|{
  152|  58.6k|	struct sctp_nets *net;
  153|  58.6k|	struct mbuf *m_reply = NULL;
  154|  58.6k|	union sctp_sockstore store;
  155|  58.6k|	struct sctp_paramhdr *ph;
  156|  58.6k|	uint16_t param_type, aparam_length;
  157|  58.6k|#if defined(INET) || defined(INET6)
  158|  58.6k|	uint16_t param_length;
  159|  58.6k|#endif
  160|  58.6k|	struct sockaddr *sa;
  161|  58.6k|	int zero_address = 0;
  162|  58.6k|	int bad_address = 0;
  163|  58.6k|#ifdef INET
  164|  58.6k|	struct sockaddr_in *sin;
  165|  58.6k|	struct sctp_ipv4addr_param *v4addr;
  166|  58.6k|#endif
  167|  58.6k|#ifdef INET6
  168|  58.6k|	struct sockaddr_in6 *sin6;
  169|  58.6k|	struct sctp_ipv6addr_param *v6addr;
  170|  58.6k|#endif
  171|       |
  172|  58.6k|	aparam_length = ntohs(aph->ph.param_length);
  173|  58.6k|	if (aparam_length < sizeof(struct sctp_asconf_paramhdr) + sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (173:6): [True: 1.06k, False: 57.5k]
  ------------------
  174|  1.06k|		return (NULL);
  175|  1.06k|	}
  176|  57.5k|	ph = (struct sctp_paramhdr *)(aph + 1);
  177|  57.5k|	param_type = ntohs(ph->param_type);
  178|  57.5k|#if defined(INET) || defined(INET6)
  179|  57.5k|	param_length = ntohs(ph->param_length);
  180|  57.5k|	if (param_length + sizeof(struct sctp_asconf_paramhdr) != aparam_length) {
  ------------------
  |  Branch (180:6): [True: 7.33k, False: 50.2k]
  ------------------
  181|  7.33k|		return (NULL);
  182|  7.33k|	}
  183|  50.2k|#endif
  184|  50.2k|	sa = &store.sa;
  185|  50.2k|	switch (param_type) {
  186|      0|#ifdef INET
  187|  42.7k|	case SCTP_IPV4_ADDRESS:
  ------------------
  |  |  394|  42.7k|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
  |  Branch (187:2): [True: 42.7k, False: 7.52k]
  ------------------
  188|  42.7k|		if (param_length != sizeof(struct sctp_ipv4addr_param)) {
  ------------------
  |  Branch (188:7): [True: 24, False: 42.6k]
  ------------------
  189|       |			/* invalid param size */
  190|     24|			return (NULL);
  191|     24|		}
  192|  42.6k|		v4addr = (struct sctp_ipv4addr_param *)ph;
  193|  42.6k|		sin = &store.sin;
  194|  42.6k|		memset(sin, 0, sizeof(*sin));
  195|  42.6k|		sin->sin_family = AF_INET;
  196|       |#ifdef HAVE_SIN_LEN
  197|       |		sin->sin_len = sizeof(struct sockaddr_in);
  198|       |#endif
  199|  42.6k|		sin->sin_port = stcb->rport;
  200|  42.6k|		sin->sin_addr.s_addr = v4addr->addr;
  201|  42.6k|		if ((sin->sin_addr.s_addr == INADDR_BROADCAST) ||
  ------------------
  |  Branch (201:7): [True: 18, False: 42.6k]
  ------------------
  202|  42.6k|		    IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) {
  ------------------
  |  Branch (202:7): [True: 80, False: 42.5k]
  ------------------
  203|     98|			bad_address = 1;
  204|     98|		}
  205|  42.6k|		if (sin->sin_addr.s_addr == INADDR_ANY)
  ------------------
  |  Branch (205:7): [True: 689, False: 42.0k]
  ------------------
  206|    689|			zero_address = 1;
  207|  42.6k|		SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_add_ip: adding ");
  208|  42.6k|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
  209|  42.6k|		break;
  210|      0|#endif
  211|      0|#ifdef INET6
  212|  5.28k|	case SCTP_IPV6_ADDRESS:
  ------------------
  |  |  395|  5.28k|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
  |  Branch (212:2): [True: 5.28k, False: 44.9k]
  ------------------
  213|  5.28k|		if (param_length != sizeof(struct sctp_ipv6addr_param)) {
  ------------------
  |  Branch (213:7): [True: 113, False: 5.17k]
  ------------------
  214|       |			/* invalid param size */
  215|    113|			return (NULL);
  216|    113|		}
  217|  5.17k|		v6addr = (struct sctp_ipv6addr_param *)ph;
  218|  5.17k|		sin6 = &store.sin6;
  219|  5.17k|		memset(sin6, 0, sizeof(*sin6));
  220|  5.17k|		sin6->sin6_family = AF_INET6;
  221|       |#ifdef HAVE_SIN6_LEN
  222|       |		sin6->sin6_len = sizeof(struct sockaddr_in6);
  223|       |#endif
  224|  5.17k|		sin6->sin6_port = stcb->rport;
  225|  5.17k|		memcpy((caddr_t)&sin6->sin6_addr, v6addr->addr,
  226|  5.17k|		    sizeof(struct in6_addr));
  227|  5.17k|		if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) {
  ------------------
  |  Branch (227:7): [True: 28, False: 5.14k]
  ------------------
  228|     28|			bad_address = 1;
  229|     28|		}
  230|  5.17k|		if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr))
  ------------------
  |  Branch (230:7): [True: 10, False: 5.16k]
  ------------------
  231|     10|			zero_address = 1;
  232|  5.17k|		SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_add_ip: adding ");
  233|  5.17k|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
  234|  5.17k|		break;
  235|      0|#endif
  236|  2.23k|	default:
  ------------------
  |  Branch (236:2): [True: 2.23k, False: 48.0k]
  ------------------
  237|  2.23k|		m_reply = sctp_asconf_error_response(aph->correlation_id,
  238|  2.23k|		    SCTP_CAUSE_INVALID_PARAM, (uint8_t *) aph,
  ------------------
  |  |  372|  2.23k|#define SCTP_CAUSE_INVALID_PARAM	0x0007
  ------------------
  239|  2.23k|		    aparam_length);
  240|  2.23k|		return (m_reply);
  241|  50.2k|	}			/* end switch */
  242|       |
  243|       |	/* if 0.0.0.0/::0, add the source address instead */
  244|  47.8k|	if (zero_address && SCTP_BASE_SYSCTL(sctp_nat_friendly)) {
  ------------------
  |  |  590|    699|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 699, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (244:6): [True: 699, False: 47.1k]
  ------------------
  245|    699|		sa = src;
  246|    699|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  247|    699|		        "process_asconf_add_ip: using source addr ");
  248|    699|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, src);
  249|    699|	}
  250|  47.8k|	net = NULL;
  251|       |	/* add the address */
  252|  47.8k|	if (bad_address) {
  ------------------
  |  Branch (252:6): [True: 126, False: 47.7k]
  ------------------
  253|    126|		m_reply = sctp_asconf_error_response(aph->correlation_id,
  254|    126|		    SCTP_CAUSE_INVALID_PARAM, (uint8_t *) aph,
  ------------------
  |  |  372|    126|#define SCTP_CAUSE_INVALID_PARAM	0x0007
  ------------------
  255|    126|		    aparam_length);
  256|  47.7k|	} else if (sctp_add_remote_addr(stcb, sa, &net, stcb->asoc.port,
  ------------------
  |  Branch (256:13): [True: 0, False: 47.7k]
  ------------------
  257|  47.7k|	                                SCTP_DONOT_SETSCOPE,
  ------------------
  |  |  822|  47.7k|#define SCTP_DONOT_SETSCOPE 0
  ------------------
  258|  47.7k|	                                SCTP_ADDR_DYNAMIC_ADDED) != 0) {
  ------------------
  |  |  814|  47.7k|#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|  47.7k|	} else {
  265|  47.7k|		if (response_required) {
  ------------------
  |  Branch (265:7): [True: 41.1k, False: 6.57k]
  ------------------
  266|  41.1k|			m_reply =
  267|  41.1k|			    sctp_asconf_success_response(aph->correlation_id);
  268|  41.1k|		}
  269|  47.7k|		if (net != NULL) {
  ------------------
  |  Branch (269:7): [True: 42.4k, False: 5.32k]
  ------------------
  270|       |			/* notify upper layer */
  271|  42.4k|			sctp_ulp_notify(SCTP_NOTIFY_ASCONF_ADD_IP, stcb, 0, sa, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  714|  42.4k|#define SCTP_NOTIFY_ASCONF_ADD_IP               12
  ------------------
              			sctp_ulp_notify(SCTP_NOTIFY_ASCONF_ADD_IP, stcb, 0, sa, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  42.4k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  272|  42.4k|			sctp_timer_start(SCTP_TIMER_TYPE_PATHMTURAISE, stcb->sctp_ep, stcb, net);
  ------------------
  |  |  539|  42.4k|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
  273|  42.4k|			sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep,
  ------------------
  |  |  536|  42.4k|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  274|  42.4k|					 stcb, net);
  275|  42.4k|			if (send_hb) {
  ------------------
  |  Branch (275:8): [True: 2.85k, False: 39.5k]
  ------------------
  276|  2.85k|				sctp_send_hb(stcb, net, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  2.85k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  277|  2.85k|			}
  278|  42.4k|		}
  279|  47.7k|	}
  280|  47.8k|	return (m_reply);
  281|  50.2k|}
sctp_asconf.c:sctp_asconf_error_response:
  100|  9.48k|{
  101|  9.48k|	struct mbuf *m_reply = NULL;
  102|  9.48k|	struct sctp_asconf_paramhdr *aph;
  103|  9.48k|	struct sctp_error_cause *error;
  104|  9.48k|	uint32_t buf_len;
  105|  9.48k|	uint16_t i, param_length, cause_length, padding_length;
  106|  9.48k|	uint8_t *tlv;
  107|       |
  108|  9.48k|	if (error_tlv == NULL) {
  ------------------
  |  Branch (108:6): [True: 0, False: 9.48k]
  ------------------
  109|      0|		tlv_length = 0;
  110|      0|	}
  111|  9.48k|	cause_length = sizeof(struct sctp_error_cause) + tlv_length;
  112|  9.48k|	param_length = sizeof(struct sctp_asconf_paramhdr) + cause_length;
  113|  9.48k|	padding_length = tlv_length % 4;
  114|  9.48k|	if (padding_length != 0) {
  ------------------
  |  Branch (114:6): [True: 118, False: 9.36k]
  ------------------
  115|    118|		padding_length = 4 - padding_length;
  116|    118|	}
  117|  9.48k|	buf_len = param_length + padding_length;
  118|  9.48k|	if (buf_len > MLEN) {
  ------------------
  |  |  138|  9.48k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|  9.48k|#define MSIZE 256
  |  |  ------------------
  ------------------
  |  Branch (118:6): [True: 39, False: 9.44k]
  ------------------
  119|     39|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  120|     39|			"asconf_error_response: tlv_length (%xh) too big\n",
  121|     39|			tlv_length);
  122|     39|		return (NULL);
  123|     39|	}
  124|  9.44k|	m_reply = sctp_get_mbuf_for_msg(buf_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  9.44k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_reply = sctp_get_mbuf_for_msg(buf_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  9.44k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
  125|  9.44k|	if (m_reply == NULL) {
  ------------------
  |  Branch (125:6): [True: 0, False: 9.44k]
  ------------------
  126|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  127|      0|			"asconf_error_response: couldn't get mbuf!\n");
  128|      0|		return (NULL);
  129|      0|	}
  130|  9.44k|	aph = mtod(m_reply, struct sctp_asconf_paramhdr *);
  ------------------
  |  |   96|  9.44k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  9.44k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
  131|  9.44k|	aph->ph.param_type = htons(SCTP_ERROR_CAUSE_IND);
  132|  9.44k|	aph->ph.param_length = htons(param_length);
  133|  9.44k|	aph->correlation_id = id;
  134|  9.44k|	error = (struct sctp_error_cause *)(aph + 1);
  135|  9.44k|	error->code = htons(cause);
  136|  9.44k|	error->length = htons(cause_length);
  137|  9.44k|	if (error_tlv != NULL) {
  ------------------
  |  Branch (137:6): [True: 9.44k, False: 0]
  ------------------
  138|  9.44k|		tlv = (uint8_t *) (error + 1);
  139|  9.44k|		memcpy(tlv, error_tlv, tlv_length);
  140|  9.60k|		for (i = 0; i < padding_length; i++) {
  ------------------
  |  Branch (140:15): [True: 161, False: 9.44k]
  ------------------
  141|    161|			tlv[tlv_length + i] = 0;
  142|    161|		}
  143|  9.44k|	}
  144|  9.44k|	SCTP_BUF_LEN(m_reply) = buf_len;
  ------------------
  |  |  801|  9.44k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  9.44k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  145|  9.44k|	return (m_reply);
  146|  9.44k|}
sctp_asconf.c:sctp_asconf_success_response:
   76|  54.4k|{
   77|  54.4k|	struct mbuf *m_reply = NULL;
   78|  54.4k|	struct sctp_asconf_paramhdr *aph;
   79|       |
   80|  54.4k|	m_reply = sctp_get_mbuf_for_msg(sizeof(struct sctp_asconf_paramhdr),
   81|  54.4k|					0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  54.4k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              					0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  54.4k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
   82|  54.4k|	if (m_reply == NULL) {
  ------------------
  |  Branch (82:6): [True: 0, False: 54.4k]
  ------------------
   83|      0|		SCTPDBG(SCTP_DEBUG_ASCONF1,
   84|      0|			"asconf_success_response: couldn't get mbuf!\n");
   85|      0|		return (NULL);
   86|      0|	}
   87|  54.4k|	aph = mtod(m_reply, struct sctp_asconf_paramhdr *);
  ------------------
  |  |   96|  54.4k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  54.4k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
   88|  54.4k|	aph->correlation_id = id;
   89|  54.4k|	aph->ph.param_type = htons(SCTP_SUCCESS_REPORT);
   90|  54.4k|	aph->ph.param_length = sizeof(struct sctp_asconf_paramhdr);
   91|  54.4k|	SCTP_BUF_LEN(m_reply) = aph->ph.param_length;
  ------------------
  |  |  801|  54.4k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  54.4k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
   92|  54.4k|	aph->ph.param_length = htons(aph->ph.param_length);
   93|       |
   94|  54.4k|	return (m_reply);
   95|  54.4k|}
sctp_asconf.c:sctp_process_asconf_delete_ip:
  316|  17.4k|{
  317|  17.4k|	struct mbuf *m_reply = NULL;
  318|  17.4k|	union sctp_sockstore store;
  319|  17.4k|	struct sctp_paramhdr *ph;
  320|  17.4k|	uint16_t param_type, aparam_length;
  321|  17.4k|#if defined(INET) || defined(INET6)
  322|  17.4k|	uint16_t param_length;
  323|  17.4k|#endif
  324|  17.4k|	struct sockaddr *sa;
  325|  17.4k|	int zero_address = 0;
  326|  17.4k|	int result;
  327|  17.4k|#ifdef INET
  328|  17.4k|	struct sockaddr_in *sin;
  329|  17.4k|	struct sctp_ipv4addr_param *v4addr;
  330|  17.4k|#endif
  331|  17.4k|#ifdef INET6
  332|  17.4k|	struct sockaddr_in6 *sin6;
  333|  17.4k|	struct sctp_ipv6addr_param *v6addr;
  334|  17.4k|#endif
  335|       |
  336|  17.4k|	aparam_length = ntohs(aph->ph.param_length);
  337|  17.4k|	if (aparam_length < sizeof(struct sctp_asconf_paramhdr) + sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (337:6): [True: 953, False: 16.5k]
  ------------------
  338|    953|		return (NULL);
  339|    953|	}
  340|  16.5k|	ph = (struct sctp_paramhdr *)(aph + 1);
  341|  16.5k|	param_type = ntohs(ph->param_type);
  342|  16.5k|#if defined(INET) || defined(INET6)
  343|  16.5k|	param_length = ntohs(ph->param_length);
  344|  16.5k|	if (param_length + sizeof(struct sctp_asconf_paramhdr) != aparam_length) {
  ------------------
  |  Branch (344:6): [True: 1.98k, False: 14.5k]
  ------------------
  345|  1.98k|		return (NULL);
  346|  1.98k|	}
  347|  14.5k|#endif
  348|  14.5k|	sa = &store.sa;
  349|  14.5k|	switch (param_type) {
  350|      0|#ifdef INET
  351|  12.5k|	case SCTP_IPV4_ADDRESS:
  ------------------
  |  |  394|  12.5k|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
  |  Branch (351:2): [True: 12.5k, False: 2.05k]
  ------------------
  352|  12.5k|		if (param_length != sizeof(struct sctp_ipv4addr_param)) {
  ------------------
  |  Branch (352:7): [True: 95, False: 12.4k]
  ------------------
  353|       |			/* invalid param size */
  354|     95|			return (NULL);
  355|     95|		}
  356|  12.4k|		v4addr = (struct sctp_ipv4addr_param *)ph;
  357|  12.4k|		sin = &store.sin;
  358|  12.4k|		memset(sin, 0, sizeof(*sin));
  359|  12.4k|		sin->sin_family = AF_INET;
  360|       |#ifdef HAVE_SIN_LEN
  361|       |		sin->sin_len = sizeof(struct sockaddr_in);
  362|       |#endif
  363|  12.4k|		sin->sin_port = stcb->rport;
  364|  12.4k|		sin->sin_addr.s_addr = v4addr->addr;
  365|  12.4k|		if (sin->sin_addr.s_addr == INADDR_ANY)
  ------------------
  |  Branch (365:7): [True: 5.94k, False: 6.46k]
  ------------------
  366|  5.94k|			zero_address = 1;
  367|  12.4k|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  368|  12.4k|			"process_asconf_delete_ip: deleting ");
  369|  12.4k|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
  370|  12.4k|		break;
  371|      0|#endif
  372|      0|#ifdef INET6
  373|  1.52k|	case SCTP_IPV6_ADDRESS:
  ------------------
  |  |  395|  1.52k|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
  |  Branch (373:2): [True: 1.52k, False: 13.0k]
  ------------------
  374|  1.52k|		if (param_length != sizeof(struct sctp_ipv6addr_param)) {
  ------------------
  |  Branch (374:7): [True: 43, False: 1.48k]
  ------------------
  375|       |			/* invalid param size */
  376|     43|			return (NULL);
  377|     43|		}
  378|  1.48k|		v6addr = (struct sctp_ipv6addr_param *)ph;
  379|  1.48k|		sin6 = &store.sin6;
  380|  1.48k|		memset(sin6, 0, sizeof(*sin6));
  381|  1.48k|		sin6->sin6_family = AF_INET6;
  382|       |#ifdef HAVE_SIN6_LEN
  383|       |		sin6->sin6_len = sizeof(struct sockaddr_in6);
  384|       |#endif
  385|  1.48k|		sin6->sin6_port = stcb->rport;
  386|  1.48k|		memcpy(&sin6->sin6_addr, v6addr->addr,
  387|  1.48k|		    sizeof(struct in6_addr));
  388|  1.48k|		if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr))
  ------------------
  |  Branch (388:7): [True: 23, False: 1.46k]
  ------------------
  389|     23|			zero_address = 1;
  390|  1.48k|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  391|  1.48k|			"process_asconf_delete_ip: deleting ");
  392|  1.48k|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
  393|  1.48k|		break;
  394|      0|#endif
  395|    525|	default:
  ------------------
  |  Branch (395:2): [True: 525, False: 14.0k]
  ------------------
  396|    525|		m_reply = sctp_asconf_error_response(aph->correlation_id,
  397|    525|		    SCTP_CAUSE_UNRESOLVABLE_ADDR, (uint8_t *) aph,
  ------------------
  |  |  370|    525|#define SCTP_CAUSE_UNRESOLVABLE_ADDR	0x0005
  ------------------
  398|    525|		    aparam_length);
  399|    525|		return (m_reply);
  400|  14.5k|	}
  401|       |
  402|       |	/* make sure the source address is not being deleted */
  403|  13.8k|	if (sctp_cmpaddr(sa, src)) {
  ------------------
  |  Branch (403:6): [True: 0, False: 13.8k]
  ------------------
  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|  13.8k|	if (zero_address && SCTP_BASE_SYSCTL(sctp_nat_friendly)) {
  ------------------
  |  |  590|  5.96k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 5.96k, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (413:6): [True: 5.96k, False: 7.92k]
  ------------------
  414|  5.96k|		result = sctp_asconf_del_remote_addrs_except(stcb, src);
  415|       |
  416|  5.96k|		if (result) {
  ------------------
  |  Branch (416:7): [True: 0, False: 5.96k]
  ------------------
  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.96k|		} else if (response_required) {
  ------------------
  |  Branch (424:14): [True: 5.31k, False: 657]
  ------------------
  425|  5.31k|			m_reply =
  426|  5.31k|			    sctp_asconf_success_response(aph->correlation_id);
  427|  5.31k|		}
  428|  5.96k|		return (m_reply);
  429|  5.96k|	}
  430|       |
  431|       |	/* delete the address */
  432|  7.92k|	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.92k|	if (result == -1) {
  ------------------
  |  Branch (438:6): [True: 0, False: 7.92k]
  ------------------
  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.92k|	} else {
  445|  7.92k|		if (response_required) {
  ------------------
  |  Branch (445:7): [True: 6.77k, False: 1.15k]
  ------------------
  446|  6.77k|			m_reply = sctp_asconf_success_response(aph->correlation_id);
  447|  6.77k|		}
  448|       |		/* notify upper layer */
  449|  7.92k|		sctp_ulp_notify(SCTP_NOTIFY_ASCONF_DELETE_IP, stcb, 0, sa, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  715|  7.92k|#define SCTP_NOTIFY_ASCONF_DELETE_IP            13
  ------------------
              		sctp_ulp_notify(SCTP_NOTIFY_ASCONF_DELETE_IP, stcb, 0, sa, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  7.92k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  450|  7.92k|	}
  451|  7.92k|	return (m_reply);
  452|  13.8k|}
sctp_asconf.c:sctp_asconf_del_remote_addrs_except:
  285|  5.96k|{
  286|  5.96k|	struct sctp_nets *src_net, *net, *nnet;
  287|       |
  288|       |	/* make sure the source address exists as a destination net */
  289|  5.96k|	src_net = sctp_findnet(stcb, src);
  290|  5.96k|	if (src_net == NULL) {
  ------------------
  |  Branch (290:6): [True: 0, False: 5.96k]
  ------------------
  291|       |		/* not found */
  292|      0|		return (-1);
  293|      0|	}
  294|       |
  295|       |	/* delete all destination addresses except the source */
  296|  42.3k|	TAILQ_FOREACH_SAFE(net, &stcb->asoc.nets, sctp_next, nnet) {
  ------------------
  |  | 1129|  5.96k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  48.3k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 42.3k, False: 5.96k]
  |  |  |  Branch (1130:24): [True: 42.3k, False: 0]
  |  |  ------------------
  |  | 1131|  42.3k|              (var) = (tvar))
  ------------------
  297|  42.3k|		if (net != src_net) {
  ------------------
  |  Branch (297:7): [True: 36.3k, False: 5.96k]
  ------------------
  298|       |			/* delete this address */
  299|  36.3k|			SCTPDBG(SCTP_DEBUG_ASCONF1,
  300|  36.3k|				"asconf_del_remote_addrs_except: deleting ");
  301|  36.3k|			SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1,
  302|  36.3k|				     (struct sockaddr *)&net->ro._l_addr);
  303|       |			/* notify upper layer */
  304|  36.3k|			sctp_ulp_notify(SCTP_NOTIFY_ASCONF_DELETE_IP, stcb, 0,
  ------------------
  |  |  715|  36.3k|#define SCTP_NOTIFY_ASCONF_DELETE_IP            13
  ------------------
  305|  36.3k|			    (struct sockaddr *)&net->ro._l_addr, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  36.3k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  306|  36.3k|			sctp_remove_net(stcb, net);
  307|  36.3k|		}
  308|  42.3k|	}
  309|  5.96k|	return (0);
  310|  5.96k|}
sctp_asconf.c:sctp_process_asconf_set_primary:
  458|  10.5k|{
  459|  10.5k|	struct mbuf *m_reply = NULL;
  460|  10.5k|	union sctp_sockstore store;
  461|  10.5k|	struct sctp_paramhdr *ph;
  462|  10.5k|	uint16_t param_type, aparam_length;
  463|  10.5k|#if defined(INET) || defined(INET6)
  464|  10.5k|	uint16_t param_length;
  465|  10.5k|#endif
  466|  10.5k|	struct sockaddr *sa;
  467|  10.5k|	int zero_address = 0;
  468|  10.5k|#ifdef INET
  469|  10.5k|	struct sockaddr_in *sin;
  470|  10.5k|	struct sctp_ipv4addr_param *v4addr;
  471|  10.5k|#endif
  472|  10.5k|#ifdef INET6
  473|  10.5k|	struct sockaddr_in6 *sin6;
  474|  10.5k|	struct sctp_ipv6addr_param *v6addr;
  475|  10.5k|#endif
  476|       |
  477|  10.5k|	aparam_length = ntohs(aph->ph.param_length);
  478|  10.5k|	if (aparam_length < sizeof(struct sctp_asconf_paramhdr) + sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (478:6): [True: 437, False: 10.0k]
  ------------------
  479|    437|		return (NULL);
  480|    437|	}
  481|  10.0k|	ph = (struct sctp_paramhdr *)(aph + 1);
  482|  10.0k|	param_type = ntohs(ph->param_type);
  483|  10.0k|#if defined(INET) || defined(INET6)
  484|  10.0k|	param_length = ntohs(ph->param_length);
  485|  10.0k|	if (param_length + sizeof(struct sctp_asconf_paramhdr) != aparam_length) {
  ------------------
  |  Branch (485:6): [True: 1.62k, False: 8.44k]
  ------------------
  486|  1.62k|		return (NULL);
  487|  1.62k|	}
  488|  8.44k|#endif
  489|  8.44k|	sa = &store.sa;
  490|  8.44k|	switch (param_type) {
  491|      0|#ifdef INET
  492|  4.69k|	case SCTP_IPV4_ADDRESS:
  ------------------
  |  |  394|  4.69k|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
  |  Branch (492:2): [True: 4.69k, False: 3.74k]
  ------------------
  493|  4.69k|		if (param_length != sizeof(struct sctp_ipv4addr_param)) {
  ------------------
  |  Branch (493:7): [True: 12, False: 4.68k]
  ------------------
  494|       |			/* invalid param size */
  495|     12|			return (NULL);
  496|     12|		}
  497|  4.68k|		v4addr = (struct sctp_ipv4addr_param *)ph;
  498|  4.68k|		sin = &store.sin;
  499|  4.68k|		memset(sin, 0, sizeof(*sin));
  500|  4.68k|		sin->sin_family = AF_INET;
  501|       |#ifdef HAVE_SIN_LEN
  502|       |		sin->sin_len = sizeof(struct sockaddr_in);
  503|       |#endif
  504|  4.68k|		sin->sin_addr.s_addr = v4addr->addr;
  505|  4.68k|		if (sin->sin_addr.s_addr == INADDR_ANY)
  ------------------
  |  Branch (505:7): [True: 486, False: 4.20k]
  ------------------
  506|    486|			zero_address = 1;
  507|  4.68k|		SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_set_primary: ");
  508|  4.68k|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
  509|  4.68k|		break;
  510|      0|#endif
  511|      0|#ifdef INET6
  512|  1.60k|	case SCTP_IPV6_ADDRESS:
  ------------------
  |  |  395|  1.60k|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
  |  Branch (512:2): [True: 1.60k, False: 6.84k]
  ------------------
  513|  1.60k|		if (param_length != sizeof(struct sctp_ipv6addr_param)) {
  ------------------
  |  Branch (513:7): [True: 160, False: 1.44k]
  ------------------
  514|       |			/* invalid param size */
  515|    160|			return (NULL);
  516|    160|		}
  517|  1.44k|		v6addr = (struct sctp_ipv6addr_param *)ph;
  518|  1.44k|		sin6 = &store.sin6;
  519|  1.44k|		memset(sin6, 0, sizeof(*sin6));
  520|  1.44k|		sin6->sin6_family = AF_INET6;
  521|       |#ifdef HAVE_SIN6_LEN
  522|       |		sin6->sin6_len = sizeof(struct sockaddr_in6);
  523|       |#endif
  524|  1.44k|		memcpy((caddr_t)&sin6->sin6_addr, v6addr->addr,
  525|  1.44k|		    sizeof(struct in6_addr));
  526|  1.44k|		if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr))
  ------------------
  |  Branch (526:7): [True: 18, False: 1.42k]
  ------------------
  527|     18|			zero_address = 1;
  528|  1.44k|		SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_set_primary: ");
  529|  1.44k|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
  530|  1.44k|		break;
  531|      0|#endif
  532|  2.14k|	default:
  ------------------
  |  Branch (532:2): [True: 2.14k, False: 6.30k]
  ------------------
  533|  2.14k|		m_reply = sctp_asconf_error_response(aph->correlation_id,
  534|  2.14k|		    SCTP_CAUSE_UNRESOLVABLE_ADDR, (uint8_t *) aph,
  ------------------
  |  |  370|  2.14k|#define SCTP_CAUSE_UNRESOLVABLE_ADDR	0x0005
  ------------------
  535|  2.14k|		    aparam_length);
  536|  2.14k|		return (m_reply);
  537|  8.44k|	}
  538|       |
  539|       |	/* if 0.0.0.0/::0, use the source address instead */
  540|  6.13k|	if (zero_address && SCTP_BASE_SYSCTL(sctp_nat_friendly)) {
  ------------------
  |  |  590|    504|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 504, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (540:6): [True: 504, False: 5.63k]
  ------------------
  541|    504|		sa = src;
  542|    504|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  543|    504|			"process_asconf_set_primary: using source addr ");
  544|    504|		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, src);
  545|    504|	}
  546|       |	/* set the primary address */
  547|  6.13k|	if (sctp_set_primary_addr(stcb, sa, NULL) == 0) {
  ------------------
  |  Branch (547:6): [True: 1.68k, False: 4.45k]
  ------------------
  548|  1.68k|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  549|  1.68k|			"process_asconf_set_primary: primary address set\n");
  550|       |		/* notify upper layer */
  551|  1.68k|		sctp_ulp_notify(SCTP_NOTIFY_ASCONF_SET_PRIMARY, stcb, 0, sa, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  716|  1.68k|#define SCTP_NOTIFY_ASCONF_SET_PRIMARY          14
  ------------------
              		sctp_ulp_notify(SCTP_NOTIFY_ASCONF_SET_PRIMARY, stcb, 0, sa, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  1.68k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  552|  1.68k|		if ((stcb->asoc.primary_destination->dest_state & SCTP_ADDR_REACHABLE) &&
  ------------------
  |  |  481|  1.68k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (552:7): [True: 1.68k, False: 0]
  ------------------
  553|  1.68k|		    ((stcb->asoc.primary_destination->dest_state & SCTP_ADDR_PF) == 0) &&
  ------------------
  |  |  490|  1.68k|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (553:7): [True: 1.68k, False: 0]
  ------------------
  554|  1.68k|		    (stcb->asoc.alternate != NULL)) {
  ------------------
  |  Branch (554:7): [True: 2, False: 1.67k]
  ------------------
  555|      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|}
  ------------------
  556|      2|			stcb->asoc.alternate = NULL;
  557|      2|		}
  558|  1.68k|		if (response_required) {
  ------------------
  |  Branch (558:7): [True: 1.16k, False: 520]
  ------------------
  559|  1.16k|			m_reply = sctp_asconf_success_response(aph->correlation_id);
  560|  1.16k|		}
  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.68k|		if ((sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|  3.36k|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 1.68k]
  |  |  ------------------
  ------------------
  575|  1.68k|		                                 SCTP_MOBILITY_BASE) ||
  576|  1.68k|		    sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|  1.68k|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 1.68k]
  |  |  ------------------
  ------------------
  577|  1.68k|		                                SCTP_MOBILITY_FASTHANDOFF)) &&
  578|      0|		    sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|  1.68k|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  579|  1.68k|		                                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|  4.45k|	} else {
  598|       |		/* couldn't set the requested primary address! */
  599|  4.45k|		SCTPDBG(SCTP_DEBUG_ASCONF1,
  600|  4.45k|			"process_asconf_set_primary: set primary failed!\n");
  601|       |		/* must have been an invalid address, so report */
  602|  4.45k|		m_reply = sctp_asconf_error_response(aph->correlation_id,
  603|  4.45k|		    SCTP_CAUSE_UNRESOLVABLE_ADDR, (uint8_t *) aph,
  ------------------
  |  |  370|  4.45k|#define SCTP_CAUSE_UNRESOLVABLE_ADDR	0x0005
  ------------------
  604|  4.45k|		    aparam_length);
  605|  4.45k|	}
  606|       |
  607|  6.13k|	return (m_reply);
  608|  6.13k|}

sctp_clear_chunklist:
   53|  30.5k|{
   54|  30.5k|	memset(chklist, 0, sizeof(*chklist));
   55|       |	/* chklist->num_chunks = 0; */
   56|  30.5k|}
sctp_alloc_chunklist:
   60|  30.5k|{
   61|  30.5k|	sctp_auth_chklist_t *chklist;
   62|       |
   63|  30.5k|	SCTP_MALLOC(chklist, sctp_auth_chklist_t *, sizeof(*chklist),
  ------------------
  |  |  675|  30.5k|	do {								\
  |  |  676|  30.5k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  30.5k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  30.5k|    do {								\
  |  |  |  |  198|  30.5k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  61.1k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 30.5k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  30.5k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 30.5k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  30.5k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 30.5k]
  |  |  ------------------
  ------------------
   64|  30.5k|		    SCTP_M_AUTH_CL);
   65|  30.5k|	if (chklist == NULL) {
  ------------------
  |  Branch (65:6): [True: 0, False: 30.5k]
  ------------------
   66|      0|		SCTPDBG(SCTP_DEBUG_AUTH1, "sctp_alloc_chunklist: failed to get memory!\n");
   67|  30.5k|	} else {
   68|  30.5k|		sctp_clear_chunklist(chklist);
   69|  30.5k|	}
   70|  30.5k|	return (chklist);
   71|  30.5k|}
sctp_free_chunklist:
   75|  30.5k|{
   76|  30.5k|	if (list != NULL)
  ------------------
  |  Branch (76:6): [True: 30.5k, False: 0]
  ------------------
   77|  30.5k|		SCTP_FREE(list, SCTP_M_AUTH_CL);
  ------------------
  |  |  679|  30.5k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  30.5k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
   78|  30.5k|}
sctp_copy_chunklist:
   82|  11.1k|{
   83|  11.1k|	sctp_auth_chklist_t *new_list;
   84|       |
   85|  11.1k|	if (list == NULL)
  ------------------
  |  Branch (85:6): [True: 0, False: 11.1k]
  ------------------
   86|      0|		return (NULL);
   87|       |
   88|       |	/* get a new list */
   89|  11.1k|	new_list = sctp_alloc_chunklist();
   90|  11.1k|	if (new_list == NULL)
  ------------------
  |  Branch (90:6): [True: 0, False: 11.1k]
  ------------------
   91|      0|		return (NULL);
   92|       |	/* copy it */
   93|  11.1k|	memcpy(new_list, list, sizeof(*new_list));
   94|       |
   95|  11.1k|	return (new_list);
   96|  11.1k|}
sctp_auth_add_chunk:
  103|  48.2k|{
  104|  48.2k|	if (list == NULL)
  ------------------
  |  Branch (104:6): [True: 0, False: 48.2k]
  ------------------
  105|      0|		return (-1);
  106|       |
  107|       |	/* is chunk restricted? */
  108|  48.2k|	if ((chunk == SCTP_INITIATION) ||
  ------------------
  |  |  455|  48.2k|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (108:6): [True: 697, False: 47.5k]
  ------------------
  109|  47.5k|	    (chunk == SCTP_INITIATION_ACK) ||
  ------------------
  |  |  456|  47.5k|#define SCTP_INITIATION_ACK	0x02
  ------------------
  |  Branch (109:6): [True: 402, False: 47.1k]
  ------------------
  110|  47.1k|	    (chunk == SCTP_SHUTDOWN_COMPLETE) ||
  ------------------
  |  |  468|  47.1k|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
  |  Branch (110:6): [True: 368, False: 46.7k]
  ------------------
  111|  46.7k|	    (chunk == SCTP_AUTHENTICATION)) {
  ------------------
  |  |  470|  46.7k|#define SCTP_AUTHENTICATION     0x0f
  ------------------
  |  Branch (111:6): [True: 244, False: 46.5k]
  ------------------
  112|  1.71k|		return (-1);
  113|  1.71k|	}
  114|  46.5k|	if (list->chunks[chunk] == 0) {
  ------------------
  |  Branch (114:6): [True: 40.7k, False: 5.75k]
  ------------------
  115|  40.7k|		list->chunks[chunk] = 1;
  116|  40.7k|		list->num_chunks++;
  117|  40.7k|		SCTPDBG(SCTP_DEBUG_AUTH1,
  118|  40.7k|			"SCTP: added chunk %u (0x%02x) to Auth list\n",
  119|  40.7k|			chunk, chunk);
  120|  40.7k|	}
  121|  46.5k|	return (0);
  122|  48.2k|}
sctp_auth_get_chklist_size:
  145|  17.6k|{
  146|  17.6k|	if (list == NULL)
  ------------------
  |  Branch (146:6): [True: 0, False: 17.6k]
  ------------------
  147|      0|		return (0);
  148|  17.6k|	else
  149|  17.6k|		return (list->num_chunks);
  150|  17.6k|}
sctp_serialize_auth_chunks:
  158|  17.6k|{
  159|  17.6k|	int i, count = 0;
  160|       |
  161|  17.6k|	if (list == NULL)
  ------------------
  |  Branch (161:6): [True: 0, False: 17.6k]
  ------------------
  162|      0|		return (0);
  163|       |
  164|  4.54M|	for (i = 0; i < 256; i++) {
  ------------------
  |  Branch (164:14): [True: 4.52M, False: 17.6k]
  ------------------
  165|  4.52M|		if (list->chunks[i] != 0) {
  ------------------
  |  Branch (165:7): [True: 35.3k, False: 4.49M]
  ------------------
  166|  35.3k|			*ptr++ = i;
  167|  35.3k|			count++;
  168|  35.3k|		}
  169|  4.52M|	}
  170|  17.6k|	return (count);
  171|  17.6k|}
sctp_alloc_key:
  242|  20.7k|{
  243|  20.7k|	sctp_key_t *new_key;
  244|       |
  245|  20.7k|	SCTP_MALLOC(new_key, sctp_key_t *, sizeof(*new_key) + keylen,
  ------------------
  |  |  675|  20.7k|	do {								\
  |  |  676|  20.7k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  20.7k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  20.7k|    do {								\
  |  |  |  |  198|  20.7k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  41.5k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 20.7k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  20.7k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 20.7k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  20.7k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 20.7k]
  |  |  ------------------
  ------------------
  246|  20.7k|		    SCTP_M_AUTH_KY);
  247|  20.7k|	if (new_key == NULL) {
  ------------------
  |  Branch (247:6): [True: 0, False: 20.7k]
  ------------------
  248|       |		/* out of memory */
  249|      0|		return (NULL);
  250|      0|	}
  251|  20.7k|	new_key->keylen = keylen;
  252|  20.7k|	return (new_key);
  253|  20.7k|}
sctp_free_key:
  257|  55.5k|{
  258|  55.5k|	if (key != NULL)
  ------------------
  |  Branch (258:6): [True: 20.7k, False: 34.8k]
  ------------------
  259|  55.5k|		SCTP_FREE(key,SCTP_M_AUTH_KY);
  ------------------
  |  |  679|  20.7k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  20.7k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  260|  55.5k|}
sctp_compute_hashkey:
  400|    910|{
  401|    910|	uint32_t keylen;
  402|    910|	sctp_key_t *new_key;
  403|    910|	uint8_t *key_ptr;
  404|       |
  405|    910|	keylen = sctp_get_keylen(key1) + sctp_get_keylen(key2) +
  406|    910|	    sctp_get_keylen(shared);
  407|       |
  408|    910|	if (keylen > 0) {
  ------------------
  |  Branch (408:6): [True: 910, False: 0]
  ------------------
  409|       |		/* get space for the new key */
  410|    910|		new_key = sctp_alloc_key(keylen);
  411|    910|		if (new_key == NULL) {
  ------------------
  |  Branch (411:7): [True: 0, False: 910]
  ------------------
  412|       |			/* out of memory */
  413|      0|			return (NULL);
  414|      0|		}
  415|    910|		new_key->keylen = keylen;
  416|    910|		key_ptr = new_key->key;
  417|    910|	} else {
  418|       |		/* all keys empty/null?! */
  419|      0|		return (NULL);
  420|      0|	}
  421|       |
  422|       |	/* concatenate the keys */
  423|    910|	if (sctp_compare_key(key1, key2) <= 0) {
  ------------------
  |  Branch (423:6): [True: 906, False: 4]
  ------------------
  424|       |		/* key is shared + key1 + key2 */
  425|    906|		if (sctp_get_keylen(shared)) {
  ------------------
  |  Branch (425:7): [True: 0, False: 906]
  ------------------
  426|      0|			memcpy(key_ptr, shared->key, shared->keylen);
  427|      0|			key_ptr += shared->keylen;
  428|      0|		}
  429|    906|		if (sctp_get_keylen(key1)) {
  ------------------
  |  Branch (429:7): [True: 906, False: 0]
  ------------------
  430|    906|			memcpy(key_ptr, key1->key, key1->keylen);
  431|    906|			key_ptr += key1->keylen;
  432|    906|		}
  433|    906|		if (sctp_get_keylen(key2)) {
  ------------------
  |  Branch (433:7): [True: 906, False: 0]
  ------------------
  434|    906|			memcpy(key_ptr, key2->key, key2->keylen);
  435|    906|		}
  436|    906|	} else {
  437|       |		/* key is shared + key2 + key1 */
  438|      4|		if (sctp_get_keylen(shared)) {
  ------------------
  |  Branch (438:7): [True: 0, False: 4]
  ------------------
  439|      0|			memcpy(key_ptr, shared->key, shared->keylen);
  440|      0|			key_ptr += shared->keylen;
  441|      0|		}
  442|      4|		if (sctp_get_keylen(key2)) {
  ------------------
  |  Branch (442:7): [True: 4, False: 0]
  ------------------
  443|      4|			memcpy(key_ptr, key2->key, key2->keylen);
  444|      4|			key_ptr += key2->keylen;
  445|      4|		}
  446|      4|		if (sctp_get_keylen(key1)) {
  ------------------
  |  Branch (446:7): [True: 4, False: 0]
  ------------------
  447|      4|			memcpy(key_ptr, key1->key, key1->keylen);
  448|      4|		}
  449|      4|	}
  450|    910|	return (new_key);
  451|    910|}
sctp_alloc_sharedkey:
  455|  22.3k|{
  456|  22.3k|	sctp_sharedkey_t *new_key;
  457|       |
  458|  22.3k|	SCTP_MALLOC(new_key, sctp_sharedkey_t *, sizeof(*new_key),
  ------------------
  |  |  675|  22.3k|	do {								\
  |  |  676|  22.3k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  22.3k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  22.3k|    do {								\
  |  |  |  |  198|  22.3k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  44.6k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 22.3k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  22.3k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 22.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  22.3k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 22.3k]
  |  |  ------------------
  ------------------
  459|  22.3k|		    SCTP_M_AUTH_KY);
  460|  22.3k|	if (new_key == NULL) {
  ------------------
  |  Branch (460:6): [True: 0, False: 22.3k]
  ------------------
  461|       |		/* out of memory */
  462|      0|		return (NULL);
  463|      0|	}
  464|  22.3k|	new_key->keyid = 0;
  465|       |	new_key->key = NULL;
  466|  22.3k|	new_key->refcount = 1;
  467|  22.3k|	new_key->deactivated = 0;
  468|  22.3k|	return (new_key);
  469|  22.3k|}
sctp_free_sharedkey:
  473|  22.3k|{
  474|  22.3k|	if (skey == NULL)
  ------------------
  |  Branch (474:6): [True: 0, False: 22.3k]
  ------------------
  475|      0|		return;
  476|       |
  477|  22.3k|	if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&skey->refcount)) {
  ------------------
  |  |  115|  22.3k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  ------------------
  |  |  |  |  103|  22.3k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  ------------------
  |  |  |  Branch (115:49): [True: 22.3k, False: 0]
  |  |  ------------------
  ------------------
  478|  22.3k|		if (skey->key != NULL)
  ------------------
  |  Branch (478:7): [True: 0, False: 22.3k]
  ------------------
  479|      0|			sctp_free_key(skey->key);
  480|  22.3k|		SCTP_FREE(skey, SCTP_M_AUTH_KY);
  ------------------
  |  |  679|  22.3k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  22.3k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  481|  22.3k|	}
  482|  22.3k|}
sctp_find_sharedkey:
  486|    910|{
  487|    910|	sctp_sharedkey_t *skey;
  488|       |
  489|    910|	LIST_FOREACH(skey, shared_keys, next) {
  ------------------
  |  Branch (489:2): [True: 910, False: 0]
  ------------------
  490|    910|		if (skey->keyid == key_id)
  ------------------
  |  Branch (490:7): [True: 910, False: 0]
  ------------------
  491|    910|			return (skey);
  492|    910|	}
  493|      0|	return (NULL);
  494|    910|}
sctp_insert_sharedkey:
  499|  22.3k|{
  500|  22.3k|	sctp_sharedkey_t *skey;
  501|       |
  502|  22.3k|	if ((shared_keys == NULL) || (new_skey == NULL))
  ------------------
  |  Branch (502:6): [True: 0, False: 22.3k]
  |  Branch (502:31): [True: 0, False: 22.3k]
  ------------------
  503|      0|		return (EINVAL);
  504|       |
  505|       |	/* insert into an empty list? */
  506|  22.3k|	if (LIST_EMPTY(shared_keys)) {
  ------------------
  |  Branch (506:6): [True: 22.3k, False: 0]
  ------------------
  507|  22.3k|		LIST_INSERT_HEAD(shared_keys, new_skey, next);
  ------------------
  |  Branch (507:3): [True: 0, False: 22.3k]
  |  Branch (507:3): [Folded, False: 22.3k]
  ------------------
  508|  22.3k|		return (0);
  509|  22.3k|	}
  510|       |	/* insert into the existing list, ordered by key id */
  511|  22.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|  11.1k|{
  608|  11.1k|	sctp_sharedkey_t *skey, *new_skey;
  609|  11.1k|	int count = 0;
  610|       |
  611|  11.1k|	if ((src == NULL) || (dest == NULL))
  ------------------
  |  Branch (611:6): [True: 0, False: 11.1k]
  |  Branch (611:23): [True: 0, False: 11.1k]
  ------------------
  612|      0|		return (0);
  613|  11.1k|	LIST_FOREACH(skey, src, next) {
  ------------------
  |  Branch (613:2): [True: 11.1k, False: 11.1k]
  ------------------
  614|  11.1k|		new_skey = sctp_copy_sharedkey(skey);
  615|  11.1k|		if (new_skey != NULL) {
  ------------------
  |  Branch (615:7): [True: 11.1k, False: 0]
  ------------------
  616|  11.1k|			if (sctp_insert_sharedkey(dest, new_skey)) {
  ------------------
  |  Branch (616:8): [True: 0, False: 11.1k]
  ------------------
  617|      0|				sctp_free_sharedkey(new_skey);
  618|  11.1k|			} else {
  619|  11.1k|				count++;
  620|  11.1k|			}
  621|  11.1k|		}
  622|  11.1k|	}
  623|  11.1k|	return (count);
  624|  11.1k|}
sctp_alloc_hmaclist:
  628|  30.4k|{
  629|  30.4k|	sctp_hmaclist_t *new_list;
  630|  30.4k|	int alloc_size;
  631|       |
  632|  30.4k|	alloc_size = sizeof(*new_list) + num_hmacs * sizeof(new_list->hmac[0]);
  633|  30.4k|	SCTP_MALLOC(new_list, sctp_hmaclist_t *, alloc_size,
  ------------------
  |  |  675|  30.4k|	do {								\
  |  |  676|  30.4k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  30.4k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  30.4k|    do {								\
  |  |  |  |  198|  30.4k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  60.9k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 30.4k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  30.4k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 30.4k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  30.4k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 30.4k]
  |  |  ------------------
  ------------------
  634|  30.4k|		    SCTP_M_AUTH_HL);
  635|  30.4k|	if (new_list == NULL) {
  ------------------
  |  Branch (635:6): [True: 0, False: 30.4k]
  ------------------
  636|       |		/* out of memory */
  637|      0|		return (NULL);
  638|      0|	}
  639|  30.4k|	new_list->max_algo = num_hmacs;
  640|  30.4k|	new_list->num_algo = 0;
  641|  30.4k|	return (new_list);
  642|  30.4k|}
sctp_free_hmaclist:
  646|  30.4k|{
  647|  30.4k|	if (list != NULL) {
  ------------------
  |  Branch (647:6): [True: 30.4k, False: 0]
  ------------------
  648|  30.4k|		SCTP_FREE(list,SCTP_M_AUTH_HL);
  ------------------
  |  |  679|  30.4k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  30.4k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
  649|  30.4k|	}
  650|  30.4k|}
sctp_auth_add_hmacid:
  654|  29.6k|{
  655|  29.6k|	int i;
  656|  29.6k|	if (list == NULL)
  ------------------
  |  Branch (656:6): [True: 0, False: 29.6k]
  ------------------
  657|      0|		return (-1);
  658|  29.6k|	if (list->num_algo == list->max_algo) {
  ------------------
  |  Branch (658:6): [True: 0, False: 29.6k]
  ------------------
  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|  29.6k|	if (hmac_id != SCTP_AUTH_HMAC_ID_SHA1) {
  ------------------
  |  |  691|  29.6k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (667:6): [True: 10.2k, False: 19.4k]
  ------------------
  668|  10.2k|#endif
  669|  10.2k|		return (-1);
  670|  10.2k|	}
  671|       |	/* Now is it already in the list */
  672|  19.4k|	for (i = 0; i < list->num_algo; i++) {
  ------------------
  |  Branch (672:14): [True: 96, False: 19.3k]
  ------------------
  673|     96|		if (list->hmac[i] == hmac_id) {
  ------------------
  |  Branch (673:7): [True: 96, False: 0]
  ------------------
  674|       |			/* already in list */
  675|     96|			return (-1);
  676|     96|		}
  677|     96|	}
  678|  19.3k|	SCTPDBG(SCTP_DEBUG_AUTH1, "SCTP: add HMAC id %u to list\n", hmac_id);
  679|  19.3k|	list->hmac[list->num_algo++] = hmac_id;
  680|  19.3k|	return (0);
  681|  19.4k|}
sctp_copy_hmaclist:
  685|  11.1k|{
  686|  11.1k|	sctp_hmaclist_t *new_list;
  687|  11.1k|	int i;
  688|       |
  689|  11.1k|	if (list == NULL)
  ------------------
  |  Branch (689:6): [True: 0, False: 11.1k]
  ------------------
  690|      0|		return (NULL);
  691|       |	/* get a new list */
  692|  11.1k|	new_list = sctp_alloc_hmaclist(list->max_algo);
  693|  11.1k|	if (new_list == NULL)
  ------------------
  |  Branch (693:6): [True: 0, False: 11.1k]
  ------------------
  694|      0|		return (NULL);
  695|       |	/* copy it */
  696|  11.1k|	new_list->max_algo = list->max_algo;
  697|  11.1k|	new_list->num_algo = list->num_algo;
  698|  22.3k|	for (i = 0; i < list->num_algo; i++)
  ------------------
  |  Branch (698:14): [True: 11.1k, False: 11.1k]
  ------------------
  699|  11.1k|		new_list->hmac[i] = list->hmac[i];
  700|  11.1k|	return (new_list);
  701|  11.1k|}
sctp_default_supported_hmaclist:
  705|  11.1k|{
  706|  11.1k|	sctp_hmaclist_t *new_list;
  707|       |
  708|       |#if defined(SCTP_SUPPORT_HMAC_SHA256)
  709|       |	new_list = sctp_alloc_hmaclist(2);
  710|       |#else
  711|  11.1k|	new_list = sctp_alloc_hmaclist(1);
  712|  11.1k|#endif
  713|  11.1k|	if (new_list == NULL)
  ------------------
  |  Branch (713:6): [True: 0, False: 11.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|  11.1k|	(void)sctp_auth_add_hmacid(new_list, SCTP_AUTH_HMAC_ID_SHA1);
  ------------------
  |  |  691|  11.1k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  720|  11.1k|	return (new_list);
  721|  11.1k|}
sctp_negotiate_hmacid:
  729|  8.70k|{
  730|  8.70k|	int i, j;
  731|       |
  732|  8.70k|	if ((local == NULL) || (peer == NULL))
  ------------------
  |  Branch (732:6): [True: 0, False: 8.70k]
  |  Branch (732:25): [True: 563, False: 8.14k]
  ------------------
  733|    563|		return (SCTP_AUTH_HMAC_ID_RSVD);
  ------------------
  |  |  690|    563|#define SCTP_AUTH_HMAC_ID_RSVD		0x0000
  ------------------
  734|       |
  735|  8.14k|	for (i = 0; i < peer->num_algo; i++) {
  ------------------
  |  Branch (735:14): [True: 8.14k, False: 0]
  ------------------
  736|  8.14k|		for (j = 0; j < local->num_algo; j++) {
  ------------------
  |  Branch (736:15): [True: 8.14k, False: 0]
  ------------------
  737|  8.14k|			if (peer->hmac[i] == local->hmac[j]) {
  ------------------
  |  Branch (737:8): [True: 8.14k, False: 0]
  ------------------
  738|       |				/* found the "best" one */
  739|  8.14k|				SCTPDBG(SCTP_DEBUG_AUTH1,
  740|  8.14k|					"SCTP: negotiated peer HMAC id %u\n",
  741|  8.14k|					peer->hmac[i]);
  742|  8.14k|				return (peer->hmac[i]);
  743|  8.14k|			}
  744|  8.14k|		}
  745|  8.14k|	}
  746|       |	/* didn't find one! */
  747|      0|	return (SCTP_AUTH_HMAC_ID_RSVD);
  ------------------
  |  |  690|      0|#define SCTP_AUTH_HMAC_ID_RSVD		0x0000
  ------------------
  748|  8.14k|}
sctp_serialize_hmaclist:
  756|  28.8k|{
  757|  28.8k|	int i;
  758|  28.8k|	uint16_t hmac_id;
  759|       |
  760|  28.8k|	if (list == NULL)
  ------------------
  |  Branch (760:6): [True: 0, False: 28.8k]
  ------------------
  761|      0|		return (0);
  762|       |
  763|  57.6k|	for (i = 0; i < list->num_algo; i++) {
  ------------------
  |  Branch (763:14): [True: 28.8k, False: 28.8k]
  ------------------
  764|       |		hmac_id = htons(list->hmac[i]);
  765|  28.8k|		memcpy(ptr, &hmac_id, sizeof(hmac_id));
  766|  28.8k|		ptr += sizeof(hmac_id);
  767|  28.8k|	}
  768|  28.8k|	return (list->num_algo * sizeof(hmac_id));
  769|  28.8k|}
sctp_verify_hmac_param:
  773|  8.17k|{
  774|  8.17k|	uint32_t i;
  775|       |
  776|  16.9k|	for (i = 0; i < num_hmacs; i++) {
  ------------------
  |  Branch (776:14): [True: 16.8k, False: 24]
  ------------------
  777|  16.8k|		if (ntohs(hmacs->hmac_ids[i]) == SCTP_AUTH_HMAC_ID_SHA1) {
  ------------------
  |  |  691|  16.8k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (777:7): [True: 8.15k, False: 8.74k]
  ------------------
  778|  8.15k|			return (0);
  779|  8.15k|		}
  780|  16.8k|	}
  781|     24|	return (-1);
  782|  8.17k|}
sctp_free_authinfo:
  802|  11.1k|{
  803|  11.1k|	if (authinfo == NULL)
  ------------------
  |  Branch (803:6): [True: 0, False: 11.1k]
  ------------------
  804|      0|		return;
  805|       |
  806|  11.1k|	if (authinfo->random != NULL)
  ------------------
  |  Branch (806:6): [True: 11.1k, False: 0]
  ------------------
  807|  11.1k|		sctp_free_key(authinfo->random);
  808|  11.1k|	if (authinfo->peer_random != NULL)
  ------------------
  |  Branch (808:6): [True: 8.70k, False: 2.44k]
  ------------------
  809|  8.70k|		sctp_free_key(authinfo->peer_random);
  810|  11.1k|	if (authinfo->assoc_key != NULL)
  ------------------
  |  Branch (810:6): [True: 910, False: 10.2k]
  ------------------
  811|    910|		sctp_free_key(authinfo->assoc_key);
  812|  11.1k|	if (authinfo->recv_key != NULL)
  ------------------
  |  Branch (812:6): [True: 0, False: 11.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|  11.1k|}
sctp_get_auth_chunk_len:
  821|  1.07k|{
  822|  1.07k|	int size;
  823|       |
  824|  1.07k|	size = sizeof(struct sctp_auth_chunk) + sctp_get_hmac_digest_len(hmac_algo);
  825|  1.07k|	return (SCTP_SIZE32(size));
  ------------------
  |  |  383|  1.07k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  826|  1.07k|}
sctp_get_hmac_digest_len:
  830|  4.76k|{
  831|  4.76k|	switch (hmac_algo) {
  832|  4.70k|	case SCTP_AUTH_HMAC_ID_SHA1:
  ------------------
  |  |  691|  4.70k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (832:2): [True: 4.70k, False: 61]
  ------------------
  833|  4.70k|		return (SCTP_AUTH_DIGEST_LEN_SHA1);
  ------------------
  |  |   41|  4.70k|#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|     61|	default:
  ------------------
  |  Branch (838:2): [True: 61, False: 4.70k]
  ------------------
  839|       |		/* unknown HMAC algorithm: can't do anything */
  840|     61|		return (0);
  841|  4.76k|	} /* end switch */
  842|  4.76k|}
sctp_hmac_m:
  996|    921|{
  997|    921|	uint32_t digestlen;
  998|    921|	uint32_t blocklen;
  999|    921|	sctp_hash_context_t ctx;
 1000|    921|	uint8_t ipad[128], opad[128];	/* keyed hash inner/outer pads */
 1001|    921|	uint8_t temp[SCTP_AUTH_DIGEST_LEN_MAX];
 1002|    921|	uint32_t i;
 1003|    921|	struct mbuf *m_tmp;
 1004|       |
 1005|       |	/* sanity check the material and length */
 1006|    921|	if ((key == NULL) || (keylen == 0) || (m == NULL) || (digest == NULL)) {
  ------------------
  |  Branch (1006:6): [True: 0, False: 921]
  |  Branch (1006:23): [True: 0, False: 921]
  |  Branch (1006:40): [True: 0, False: 921]
  |  Branch (1006:55): [True: 0, False: 921]
  ------------------
 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|    921|	digestlen = sctp_get_hmac_digest_len(hmac_algo);
 1012|    921|	if (digestlen == 0)
  ------------------
  |  Branch (1012:6): [True: 0, False: 921]
  ------------------
 1013|      0|		return (0);
 1014|       |
 1015|       |	/* hash the key if it is longer than the hash block size */
 1016|    921|	blocklen = sctp_get_hmac_block_len(hmac_algo);
 1017|    921|	if (keylen > blocklen) {
  ------------------
  |  Branch (1017:6): [True: 0, False: 921]
  ------------------
 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|    921|	memset(ipad, 0, blocklen);
 1027|    921|	memset(opad, 0, blocklen);
 1028|    921|	memcpy(ipad, key, keylen);
 1029|    921|	memcpy(opad, key, keylen);
 1030|       |
 1031|       |	/* XOR the key with ipad and opad values */
 1032|  59.8k|	for (i = 0; i < blocklen; i++) {
  ------------------
  |  Branch (1032:14): [True: 58.9k, False: 921]
  ------------------
 1033|  58.9k|		ipad[i] ^= 0x36;
 1034|  58.9k|		opad[i] ^= 0x5c;
 1035|  58.9k|	}
 1036|       |
 1037|       |	/* perform inner hash */
 1038|    921|	sctp_hmac_init(hmac_algo, &ctx);
 1039|    921|	sctp_hmac_update(hmac_algo, &ctx, ipad, blocklen);
 1040|       |	/* find the correct starting mbuf and offset (get start of text) */
 1041|    921|	m_tmp = m;
 1042|  1.32k|	while ((m_tmp != NULL) && (m_offset >= (uint32_t) SCTP_BUF_LEN(m_tmp))) {
  ------------------
  |  |  801|  1.32k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  1.32k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (1042:9): [True: 1.32k, False: 0]
  |  Branch (1042:28): [True: 400, False: 921]
  ------------------
 1043|    400|		m_offset -= SCTP_BUF_LEN(m_tmp);
  ------------------
  |  |  801|    400|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    400|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 1044|    400|		m_tmp = SCTP_BUF_NEXT(m_tmp);
  ------------------
  |  |  802|    400|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    400|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 1045|    400|	}
 1046|       |	/* now use the rest of the mbuf chain for the text */
 1047|  15.6k|	while (m_tmp != NULL) {
  ------------------
  |  Branch (1047:9): [True: 14.6k, False: 921]
  ------------------
 1048|  14.6k|		if ((SCTP_BUF_NEXT(m_tmp) == NULL) && trailer) {
  ------------------
  |  |  802|  14.6k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  14.6k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (1048:7): [True: 921, False: 13.7k]
  |  Branch (1048:41): [True: 0, False: 921]
  ------------------
 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|  14.6k|		} else {
 1052|  14.6k|			sctp_hmac_update(hmac_algo, &ctx, mtod(m_tmp, uint8_t *) + m_offset,
  ------------------
  |  |   96|  14.6k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  14.6k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 1053|  14.6k|					 SCTP_BUF_LEN(m_tmp) - m_offset);
  ------------------
  |  |  801|  14.6k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  14.6k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 1054|  14.6k|		}
 1055|       |
 1056|       |		/* clear the offset since it's only for the first mbuf */
 1057|  14.6k|		m_offset = 0;
 1058|  14.6k|		m_tmp = SCTP_BUF_NEXT(m_tmp);
  ------------------
  |  |  802|  14.6k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  14.6k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 1059|  14.6k|	}
 1060|    921|	sctp_hmac_final(hmac_algo, &ctx, temp);
 1061|       |
 1062|       |	/* perform outer hash */
 1063|    921|	sctp_hmac_init(hmac_algo, &ctx);
 1064|    921|	sctp_hmac_update(hmac_algo, &ctx, opad, blocklen);
 1065|    921|	sctp_hmac_update(hmac_algo, &ctx, temp, digestlen);
 1066|    921|	sctp_hmac_final(hmac_algo, &ctx, digest);
 1067|       |
 1068|    921|	return (digestlen);
 1069|    921|}
sctp_compute_hmac_m:
 1113|    921|{
 1114|    921|	uint32_t digestlen;
 1115|    921|	uint32_t blocklen;
 1116|    921|	sctp_hash_context_t ctx;
 1117|    921|	uint8_t temp[SCTP_AUTH_DIGEST_LEN_MAX];
 1118|       |
 1119|       |	/* sanity check */
 1120|    921|	if ((key == NULL) || (m == NULL) || (digest == NULL)) {
  ------------------
  |  Branch (1120:6): [True: 0, False: 921]
  |  Branch (1120:23): [True: 0, False: 921]
  |  Branch (1120:38): [True: 0, False: 921]
  ------------------
 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|    921|	digestlen = sctp_get_hmac_digest_len(hmac_algo);
 1126|    921|	if (digestlen == 0)
  ------------------
  |  Branch (1126:6): [True: 0, False: 921]
  ------------------
 1127|      0|		return (0);
 1128|       |
 1129|       |	/* hash the key if it is longer than the hash block size */
 1130|    921|	blocklen = sctp_get_hmac_block_len(hmac_algo);
 1131|    921|	if (key->keylen > blocklen) {
  ------------------
  |  Branch (1131:6): [True: 910, False: 11]
  ------------------
 1132|    910|		sctp_hmac_init(hmac_algo, &ctx);
 1133|    910|		sctp_hmac_update(hmac_algo, &ctx, key->key, key->keylen);
 1134|    910|		sctp_hmac_final(hmac_algo, &ctx, temp);
 1135|       |		/* save the hashed key as the new key */
 1136|    910|		key->keylen = digestlen;
 1137|    910|		memcpy(key->key, temp, key->keylen);
 1138|    910|	}
 1139|    921|	return (sctp_hmac_m(hmac_algo, key->key, key->keylen, m, m_offset, digest, 0));
 1140|    921|}
sctp_clear_cachedkeys:
 1165|  17.4k|{
 1166|  17.4k|	if (stcb == NULL)
  ------------------
  |  Branch (1166:6): [True: 0, False: 17.4k]
  ------------------
 1167|      0|		return;
 1168|       |
 1169|  17.4k|	if (keyid == stcb->asoc.authinfo.assoc_keyid) {
  ------------------
  |  Branch (1169:6): [True: 17.4k, False: 0]
  ------------------
 1170|  17.4k|		sctp_free_key(stcb->asoc.authinfo.assoc_key);
 1171|  17.4k|		stcb->asoc.authinfo.assoc_key = NULL;
 1172|  17.4k|	}
 1173|  17.4k|	if (keyid == stcb->asoc.authinfo.recv_keyid) {
  ------------------
  |  Branch (1173:6): [True: 17.4k, False: 0]
  ------------------
 1174|  17.4k|		sctp_free_key(stcb->asoc.authinfo.recv_key);
 1175|       |		stcb->asoc.authinfo.recv_key = NULL;
 1176|  17.4k|	}
 1177|  17.4k|}
sctp_fill_hmac_digest_m:
 1523|    921|{
 1524|    921|	uint32_t digestlen;
 1525|    921|	sctp_sharedkey_t *skey;
 1526|    921|	sctp_key_t *key;
 1527|       |
 1528|    921|	if ((stcb == NULL) || (auth == NULL))
  ------------------
  |  Branch (1528:6): [True: 0, False: 921]
  |  Branch (1528:24): [True: 0, False: 921]
  ------------------
 1529|      0|		return;
 1530|       |
 1531|       |	/* zero the digest + chunk padding */
 1532|    921|	digestlen = sctp_get_hmac_digest_len(stcb->asoc.peer_hmac_id);
 1533|    921|	memset(auth->hmac, 0, SCTP_SIZE32(digestlen));
  ------------------
  |  |  383|    921|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 1534|       |
 1535|       |	/* is the desired key cached? */
 1536|    921|	if ((keyid != stcb->asoc.authinfo.assoc_keyid) ||
  ------------------
  |  Branch (1536:6): [True: 0, False: 921]
  ------------------
 1537|    921|	    (stcb->asoc.authinfo.assoc_key == NULL)) {
  ------------------
  |  Branch (1537:6): [True: 910, False: 11]
  ------------------
 1538|    910|		if (stcb->asoc.authinfo.assoc_key != NULL) {
  ------------------
  |  Branch (1538:7): [True: 0, False: 910]
  ------------------
 1539|       |			/* free the old cached key */
 1540|      0|			sctp_free_key(stcb->asoc.authinfo.assoc_key);
 1541|      0|		}
 1542|    910|		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|    910|		if (skey != NULL)
  ------------------
  |  Branch (1544:7): [True: 910, False: 0]
  ------------------
 1545|    910|			key = skey->key;
 1546|      0|		else
 1547|      0|			key = NULL;
 1548|       |		/* compute a new assoc key and cache it */
 1549|    910|		stcb->asoc.authinfo.assoc_key =
 1550|    910|		    sctp_compute_hashkey(stcb->asoc.authinfo.random,
 1551|    910|					 stcb->asoc.authinfo.peer_random, key);
 1552|    910|		stcb->asoc.authinfo.assoc_keyid = keyid;
 1553|    910|		SCTPDBG(SCTP_DEBUG_AUTH1, "caching key id %u\n",
 1554|    910|			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|    910|	}
 1561|       |
 1562|       |	/* set in the active key id */
 1563|    921|	auth->shared_key_id = htons(keyid);
 1564|       |
 1565|       |	/* compute and fill in the digest */
 1566|    921|	(void)sctp_compute_hmac_m(stcb->asoc.peer_hmac_id, stcb->asoc.authinfo.assoc_key,
 1567|    921|				  m, auth_offset, auth->hmac);
 1568|    921|}
sctp_handle_auth:
 1611|  2.55k|{
 1612|  2.55k|	uint16_t chunklen;
 1613|  2.55k|	uint16_t shared_key_id;
 1614|  2.55k|	uint16_t hmac_id;
 1615|  2.55k|	sctp_sharedkey_t *skey;
 1616|  2.55k|	uint32_t digestlen;
 1617|  2.55k|	uint8_t digest[SCTP_AUTH_DIGEST_LEN_MAX];
 1618|  2.55k|	uint8_t computed_digest[SCTP_AUTH_DIGEST_LEN_MAX];
 1619|       |
 1620|       |	/* auth is checked for NULL by caller */
 1621|  2.55k|	chunklen = ntohs(auth->ch.chunk_length);
 1622|  2.55k|	if (chunklen < sizeof(*auth)) {
  ------------------
  |  Branch (1622:6): [True: 0, False: 2.55k]
  ------------------
 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.55k|	SCTP_STAT_INCR(sctps_recvauth);
  ------------------
  |  | 1112|  2.55k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  2.55k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  2.55k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1627|       |
 1628|       |	/* get the auth params */
 1629|  2.55k|	shared_key_id = ntohs(auth->shared_key_id);
 1630|  2.55k|	hmac_id = ntohs(auth->hmac_id);
 1631|  2.55k|	SCTPDBG(SCTP_DEBUG_AUTH1,
 1632|  2.55k|		"SCTP AUTH Chunk: shared key %u, HMAC id %u\n",
 1633|  2.55k|		shared_key_id, hmac_id);
 1634|       |
 1635|  2.55k|#if defined(__Userspace__) && defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
 1636|  2.55k|	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|  11.1k|{
 1935|  11.1k|	uint16_t chunks_len = 0;
 1936|  11.1k|	uint16_t hmacs_len = 0;
 1937|  11.1k|	uint16_t random_len = SCTP_AUTH_RANDOM_SIZE_DEFAULT;
  ------------------
  |  |   46|  11.1k|#define SCTP_AUTH_RANDOM_SIZE_DEFAULT	32
  ------------------
 1938|  11.1k|	sctp_key_t *new_key;
 1939|  11.1k|	uint16_t keylen;
 1940|       |
 1941|       |	/* initialize hmac list from endpoint */
 1942|  11.1k|	stcb->asoc.local_hmacs = sctp_copy_hmaclist(inp->sctp_ep.local_hmacs);
 1943|  11.1k|	if (stcb->asoc.local_hmacs != NULL) {
  ------------------
  |  Branch (1943:6): [True: 11.1k, False: 0]
  ------------------
 1944|  11.1k|		hmacs_len = stcb->asoc.local_hmacs->num_algo *
 1945|  11.1k|		    sizeof(stcb->asoc.local_hmacs->hmac[0]);
 1946|  11.1k|	}
 1947|       |	/* initialize auth chunks list from endpoint */
 1948|  11.1k|	stcb->asoc.local_auth_chunks =
 1949|  11.1k|	    sctp_copy_chunklist(inp->sctp_ep.local_auth_chunks);
 1950|  11.1k|	if (stcb->asoc.local_auth_chunks != NULL) {
  ------------------
  |  Branch (1950:6): [True: 11.1k, False: 0]
  ------------------
 1951|  11.1k|		int i;
 1952|  2.86M|		for (i = 0; i < 256; i++) {
  ------------------
  |  Branch (1952:15): [True: 2.85M, False: 11.1k]
  ------------------
 1953|  2.85M|			if (stcb->asoc.local_auth_chunks->chunks[i])
  ------------------
  |  Branch (1953:8): [True: 22.3k, False: 2.83M]
  ------------------
 1954|  22.3k|				chunks_len++;
 1955|  2.85M|		}
 1956|  11.1k|	}
 1957|       |	/* copy defaults from the endpoint */
 1958|  11.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|  11.1k|	(void)sctp_copy_skeylist(&inp->sctp_ep.shared_keys,
 1962|  11.1k|				 &stcb->asoc.shared_keys);
 1963|       |
 1964|       |	/* now set the concatenated key (random + chunks + hmacs) */
 1965|       |	/* key includes parameter headers */
 1966|  11.1k|	keylen = (3 * sizeof(struct sctp_paramhdr)) + random_len + chunks_len +
 1967|  11.1k|	    hmacs_len;
 1968|  11.1k|	new_key = sctp_alloc_key(keylen);
 1969|  11.1k|	if (new_key != NULL) {
  ------------------
  |  Branch (1969:6): [True: 11.1k, False: 0]
  ------------------
 1970|  11.1k|		struct sctp_paramhdr *ph;
 1971|  11.1k|		int plen;
 1972|       |		/* generate and copy in the RANDOM */
 1973|  11.1k|		ph = (struct sctp_paramhdr *)new_key->key;
 1974|  11.1k|		ph->param_type = htons(SCTP_RANDOM);
 1975|  11.1k|		plen = sizeof(*ph) + random_len;
 1976|  11.1k|		ph->param_length = htons(plen);
 1977|  11.1k|		SCTP_READ_RANDOM(new_key->key + sizeof(*ph), random_len);
  ------------------
  |  |  986|  11.1k|#define SCTP_READ_RANDOM(buf, len)	read_random(buf, len)
  ------------------
 1978|  11.1k|		keylen = plen;
 1979|       |
 1980|       |		/* append in the AUTH chunks */
 1981|       |		/* NOTE: currently we always have chunks to list */
 1982|  11.1k|		ph = (struct sctp_paramhdr *)(new_key->key + keylen);
 1983|  11.1k|		ph->param_type = htons(SCTP_CHUNK_LIST);
 1984|  11.1k|		plen = sizeof(*ph) + chunks_len;
 1985|  11.1k|		ph->param_length = htons(plen);
 1986|  11.1k|		keylen += sizeof(*ph);
 1987|  11.1k|		if (stcb->asoc.local_auth_chunks) {
  ------------------
  |  Branch (1987:7): [True: 11.1k, False: 0]
  ------------------
 1988|  11.1k|			int i;
 1989|  2.86M|			for (i = 0; i < 256; i++) {
  ------------------
  |  Branch (1989:16): [True: 2.85M, False: 11.1k]
  ------------------
 1990|  2.85M|				if (stcb->asoc.local_auth_chunks->chunks[i])
  ------------------
  |  Branch (1990:9): [True: 22.3k, False: 2.83M]
  ------------------
 1991|  22.3k|					new_key->key[keylen++] = i;
 1992|  2.85M|			}
 1993|  11.1k|		}
 1994|       |
 1995|       |		/* append in the HMACs */
 1996|  11.1k|		ph = (struct sctp_paramhdr *)(new_key->key + keylen);
 1997|  11.1k|		ph->param_type = htons(SCTP_HMAC_LIST);
 1998|  11.1k|		plen = sizeof(*ph) + hmacs_len;
 1999|  11.1k|		ph->param_length = htons(plen);
 2000|  11.1k|		keylen += sizeof(*ph);
 2001|  11.1k|		(void)sctp_serialize_hmaclist(stcb->asoc.local_hmacs,
 2002|  11.1k|					new_key->key + keylen);
 2003|  11.1k|	}
 2004|  11.1k|	if (stcb->asoc.authinfo.random != NULL)
  ------------------
  |  Branch (2004:6): [True: 0, False: 11.1k]
  ------------------
 2005|      0|	    sctp_free_key(stcb->asoc.authinfo.random);
 2006|  11.1k|	stcb->asoc.authinfo.random = new_key;
 2007|  11.1k|	stcb->asoc.authinfo.random_len = random_len;
 2008|  11.1k|}
sctp_auth.c:sctp_get_keylen:
  302|  7.28k|{
  303|  7.28k|	if (key != NULL)
  ------------------
  |  Branch (303:6): [True: 5.46k, False: 1.82k]
  ------------------
  304|  5.46k|		return (key->keylen);
  305|  1.82k|	else
  306|  1.82k|		return (0);
  307|  7.28k|}
sctp_auth.c:sctp_compare_key:
  349|    910|{
  350|    910|	uint32_t maxlen;
  351|    910|	uint32_t i;
  352|    910|	uint32_t key1len, key2len;
  353|    910|	uint8_t *key_1, *key_2;
  354|    910|	uint8_t val1, val2;
  355|       |
  356|       |	/* sanity/length check */
  357|    910|	key1len = sctp_get_keylen(key1);
  358|    910|	key2len = sctp_get_keylen(key2);
  359|    910|	if ((key1len == 0) && (key2len == 0))
  ------------------
  |  Branch (359:6): [True: 0, False: 910]
  |  Branch (359:24): [True: 0, False: 0]
  ------------------
  360|      0|		return (0);
  361|    910|	else if (key1len == 0)
  ------------------
  |  Branch (361:11): [True: 0, False: 910]
  ------------------
  362|      0|		return (-1);
  363|    910|	else if (key2len == 0)
  ------------------
  |  Branch (363:11): [True: 0, False: 910]
  ------------------
  364|      0|		return (1);
  365|       |
  366|    910|	if (key1len < key2len) {
  ------------------
  |  Branch (366:6): [True: 904, False: 6]
  ------------------
  367|    904|		maxlen = key2len;
  368|    904|	} else {
  369|      6|		maxlen = key1len;
  370|      6|	}
  371|    910|	key_1 = key1->key;
  372|    910|	key_2 = key2->key;
  373|       |	/* check for numeric equality */
  374|    991|	for (i = 0; i < maxlen; i++) {
  ------------------
  |  Branch (374:14): [True: 991, False: 0]
  ------------------
  375|       |		/* left-pad with zeros */
  376|    991|		val1 = (i < (maxlen - key1len)) ? 0 : *(key_1++);
  ------------------
  |  Branch (376:10): [True: 904, False: 87]
  ------------------
  377|    991|		val2 = (i < (maxlen - key2len)) ? 0 : *(key_2++);
  ------------------
  |  Branch (377:10): [True: 1, False: 990]
  ------------------
  378|    991|		if (val1 > val2) {
  ------------------
  |  Branch (378:7): [True: 4, False: 987]
  ------------------
  379|      4|			return (1);
  380|    987|		} else if (val1 < val2) {
  ------------------
  |  Branch (380:14): [True: 906, False: 81]
  ------------------
  381|    906|			return (-1);
  382|    906|		}
  383|    991|	}
  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|  11.1k|{
  590|  11.1k|	sctp_sharedkey_t *new_skey;
  591|       |
  592|  11.1k|	if (skey == NULL)
  ------------------
  |  Branch (592:6): [True: 0, False: 11.1k]
  ------------------
  593|      0|		return (NULL);
  594|  11.1k|	new_skey = sctp_alloc_sharedkey();
  595|  11.1k|	if (new_skey == NULL)
  ------------------
  |  Branch (595:6): [True: 0, False: 11.1k]
  ------------------
  596|      0|		return (NULL);
  597|  11.1k|	if (skey->key != NULL)
  ------------------
  |  Branch (597:6): [True: 0, False: 11.1k]
  ------------------
  598|      0|		new_skey->key = sctp_set_key(skey->key->key, skey->key->keylen);
  599|  11.1k|	else
  600|  11.1k|		new_skey->key = NULL;
  601|  11.1k|	new_skey->keyid = skey->keyid;
  602|  11.1k|	return (new_skey);
  603|  11.1k|}
sctp_auth.c:sctp_get_hmac_block_len:
  846|  1.84k|{
  847|  1.84k|	switch (hmac_algo) {
  848|  1.84k|	case SCTP_AUTH_HMAC_ID_SHA1:
  ------------------
  |  |  691|  1.84k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (848:2): [True: 1.84k, False: 0]
  ------------------
  849|  1.84k|		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.84k]
  ------------------
  855|      0|	default:
  ------------------
  |  Branch (855:2): [True: 0, False: 1.84k]
  ------------------
  856|       |		/* unknown HMAC algorithm: can't do anything */
  857|      0|		return (0);
  858|  1.84k|	} /* end switch */
  859|  1.84k|}
sctp_auth.c:sctp_hmac_init:
  866|  2.75k|{
  867|  2.75k|	switch (hmac_algo) {
  868|  2.75k|	case SCTP_AUTH_HMAC_ID_SHA1:
  ------------------
  |  |  691|  2.75k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (868:2): [True: 2.75k, False: 0]
  ------------------
  869|  2.75k|		SCTP_SHA1_INIT(&ctx->sha1);
  ------------------
  |  |  989|  2.75k|#define SCTP_SHA1_INIT		sctp_sha1_init
  ------------------
  870|  2.75k|		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.75k]
  ------------------
  877|      0|	default:
  ------------------
  |  Branch (877:2): [True: 0, False: 2.75k]
  ------------------
  878|       |		/* unknown HMAC algorithm: can't do anything */
  879|      0|		return;
  880|  2.75k|	} /* end switch */
  881|  2.75k|}
sctp_auth.c:sctp_hmac_update:
  886|  18.3k|{
  887|  18.3k|	switch (hmac_algo) {
  888|  18.3k|	case SCTP_AUTH_HMAC_ID_SHA1:
  ------------------
  |  |  691|  18.3k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (888:2): [True: 18.3k, False: 0]
  ------------------
  889|  18.3k|		SCTP_SHA1_UPDATE(&ctx->sha1, text, textlen);
  ------------------
  |  |  990|  18.3k|#define SCTP_SHA1_UPDATE	sctp_sha1_update
  ------------------
  890|  18.3k|		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: 18.3k]
  ------------------
  897|      0|	default:
  ------------------
  |  Branch (897:2): [True: 0, False: 18.3k]
  ------------------
  898|       |		/* unknown HMAC algorithm: can't do anything */
  899|      0|		return;
  900|  18.3k|	} /* end switch */
  901|  18.3k|}
sctp_auth.c:sctp_hmac_final:
  906|  2.75k|{
  907|  2.75k|	switch (hmac_algo) {
  908|  2.75k|	case SCTP_AUTH_HMAC_ID_SHA1:
  ------------------
  |  |  691|  2.75k|#define SCTP_AUTH_HMAC_ID_SHA1		0x0001	/* default, mandatory */
  ------------------
  |  Branch (908:2): [True: 2.75k, False: 0]
  ------------------
  909|  2.75k|		SCTP_SHA1_FINAL(digest, &ctx->sha1);
  ------------------
  |  |  991|  2.75k|#define SCTP_SHA1_FINAL(x,y)	sctp_sha1_final((unsigned char *)x, y)
  ------------------
  910|  2.75k|		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.75k]
  ------------------
  917|      0|	default:
  ------------------
  |  Branch (917:2): [True: 0, False: 2.75k]
  ------------------
  918|       |		/* unknown HMAC algorithm: can't do anything */
  919|      0|		return;
  920|  2.75k|	} /* end switch */
  921|  2.75k|}

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|  1.09M|{
  768|  1.09M|	struct mbuf *m = NULL;
  769|  1.09M|#if defined(__FreeBSD__) || defined(__Userspace__)
  770|  1.09M|#if defined(__Userspace__)
  771|  1.09M|	m = m_getm2(NULL, space_needed, how, type, want_header ? M_PKTHDR : 0, allonebuf);
  ------------------
  |  |  234|  97.5k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (771:45): [True: 97.5k, False: 997k]
  ------------------
  772|       |#else
  773|       |	m = m_getm2(NULL, space_needed, how, type, want_header ? M_PKTHDR : 0);
  774|       |#endif
  775|  1.09M|	if (m == NULL) {
  ------------------
  |  Branch (775:6): [True: 0, False: 1.09M]
  ------------------
  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|  1.09M|	return (m);
  837|  1.09M|}
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|   142k|uint32_t sctp_get_tick_count(void) {
   69|   142k|	uint32_t ret;
   70|       |
   71|   142k|	SCTP_TIMERQ_LOCK();
  ------------------
  |  |   58|   142k|#define SCTP_TIMERQ_LOCK()          KASSERT(pthread_mutex_lock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|   142k|	do {                         \
  |  |  |  |  113|   142k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 142k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   142k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 142k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   72|   142k|	ret = ticks;
   73|   142k|	SCTP_TIMERQ_UNLOCK();
  ------------------
  |  |   59|   142k|#define SCTP_TIMERQ_UNLOCK()        KASSERT(pthread_mutex_unlock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|   142k|	do {                         \
  |  |  |  |  113|   142k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 142k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   142k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 142k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   74|   142k|	return ret;
   75|   142k|}
sctp_os_timer_init:
   86|   238k|{
   87|   238k|	memset(c, 0, sizeof(*c));
   88|   238k|}
sctp_os_timer_start:
   93|   142k|{
   94|   142k|	int ret = 0;
   95|       |
   96|       |	/* paranoia */
   97|   142k|	if ((c == NULL) || (ftn == NULL))
  ------------------
  |  Branch (97:6): [True: 0, False: 142k]
  |  Branch (97:21): [True: 0, False: 142k]
  ------------------
   98|      0|		return (ret);
   99|       |
  100|   142k|	SCTP_TIMERQ_LOCK();
  ------------------
  |  |   58|   142k|#define SCTP_TIMERQ_LOCK()          KASSERT(pthread_mutex_lock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|   142k|	do {                         \
  |  |  |  |  113|   142k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 142k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   142k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 142k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  101|       |	/* check to see if we're rescheduling a timer */
  102|   142k|	if (c->c_flags & SCTP_CALLOUT_PENDING) {
  ------------------
  |  |   83|   142k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  ------------------
  |  Branch (102:6): [True: 0, False: 142k]
  ------------------
  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|   142k|	if (to_ticks == 0)
  ------------------
  |  Branch (120:6): [True: 0, False: 142k]
  ------------------
  121|      0|		to_ticks = 1;
  122|       |
  123|   142k|	c->c_arg = arg;
  124|   142k|	c->c_flags = (SCTP_CALLOUT_ACTIVE | SCTP_CALLOUT_PENDING);
  ------------------
  |  |   82|   142k|#define	SCTP_CALLOUT_ACTIVE	0x0002	/* callout is currently active */
  ------------------
              	c->c_flags = (SCTP_CALLOUT_ACTIVE | SCTP_CALLOUT_PENDING);
  ------------------
  |  |   83|   142k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  ------------------
  125|   142k|	c->c_func = ftn;
  126|   142k|	c->c_time = ticks + to_ticks;
  127|   142k|	TAILQ_INSERT_TAIL(&SCTP_BASE_INFO(callqueue), c, tqe);
  ------------------
  |  Branch (127:2): [Folded, False: 142k]
  ------------------
  128|   142k|	SCTP_TIMERQ_UNLOCK();
  ------------------
  |  |   59|   142k|#define SCTP_TIMERQ_UNLOCK()        KASSERT(pthread_mutex_unlock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|   142k|	do {                         \
  |  |  |  |  113|   142k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 142k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   142k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 142k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  129|   142k|	return (ret);
  130|   142k|}
sctp_os_timer_stop:
  134|   403k|{
  135|   403k|	SCTP_TIMERQ_LOCK();
  ------------------
  |  |   58|   403k|#define SCTP_TIMERQ_LOCK()          KASSERT(pthread_mutex_lock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|   403k|	do {                         \
  |  |  |  |  113|   403k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 403k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   403k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 403k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  136|       |	/*
  137|       |	 * Don't attempt to delete a callout that's not on the queue.
  138|       |	 */
  139|   403k|	if ((c->c_flags & SCTP_CALLOUT_PENDING) == 0) {
  ------------------
  |  |   83|   403k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  ------------------
  |  Branch (139:6): [True: 264k, False: 139k]
  ------------------
  140|   264k|		c->c_flags &= ~SCTP_CALLOUT_ACTIVE;
  ------------------
  |  |   82|   264k|#define	SCTP_CALLOUT_ACTIVE	0x0002	/* callout is currently active */
  ------------------
  141|   264k|		SCTP_TIMERQ_UNLOCK();
  ------------------
  |  |   59|   264k|#define SCTP_TIMERQ_UNLOCK()        KASSERT(pthread_mutex_unlock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|   264k|	do {                         \
  |  |  |  |  113|   264k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 264k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   264k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 264k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  142|   264k|		return (0);
  143|   264k|	}
  144|   139k|	c->c_flags &= ~(SCTP_CALLOUT_ACTIVE | SCTP_CALLOUT_PENDING);
  ------------------
  |  |   82|   139k|#define	SCTP_CALLOUT_ACTIVE	0x0002	/* callout is currently active */
  ------------------
              	c->c_flags &= ~(SCTP_CALLOUT_ACTIVE | SCTP_CALLOUT_PENDING);
  ------------------
  |  |   83|   139k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  ------------------
  145|   139k|	if (c == sctp_os_timer_next) {
  ------------------
  |  Branch (145:6): [True: 0, False: 139k]
  ------------------
  146|      0|		sctp_os_timer_next = TAILQ_NEXT(c, tqe);
  147|      0|	}
  148|   139k|	TAILQ_REMOVE(&SCTP_BASE_INFO(callqueue), c, tqe);
  ------------------
  |  Branch (148:2): [True: 93.4k, False: 46.1k]
  |  Branch (148:2): [Folded, False: 139k]
  ------------------
  149|   139k|	SCTP_TIMERQ_UNLOCK();
  ------------------
  |  |   59|   139k|#define SCTP_TIMERQ_UNLOCK()        KASSERT(pthread_mutex_unlock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|   139k|	do {                         \
  |  |  |  |  113|   139k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 139k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   139k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 139k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  150|   139k|	return (1);
  151|   139k|}
sctp_handle_tick:
  155|    622|{
  156|    622|	sctp_os_timer_t *c;
  157|    622|	void (*c_func)(void *);
  158|    622|	void *c_arg;
  159|       |
  160|    622|	SCTP_TIMERQ_LOCK();
  ------------------
  |  |   58|    622|#define SCTP_TIMERQ_LOCK()          KASSERT(pthread_mutex_lock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|    622|	do {                         \
  |  |  |  |  113|    622|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 622]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    622|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 622]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  161|       |	/* update our tick count */
  162|    622|	ticks += elapsed_ticks;
  163|    622|	c = TAILQ_FIRST(&SCTP_BASE_INFO(callqueue));
  164|  10.0k|	while (c) {
  ------------------
  |  Branch (164:9): [True: 9.42k, False: 622]
  ------------------
  165|  9.42k|		if (SCTP_UINT32_GE(ticks, c->c_time)) {
  ------------------
  |  |  885|  9.42k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  ------------------
  |  |  |  |  883|  18.8k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 6.57k, False: 2.85k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 6.57k]
  |  |  |  |  ------------------
  |  |  |  |  884|  18.8k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 9.42k]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (885:55): [True: 2.85k, False: 6.57k]
  |  |  ------------------
  ------------------
  166|  2.85k|			sctp_os_timer_next = TAILQ_NEXT(c, tqe);
  167|  2.85k|			TAILQ_REMOVE(&SCTP_BASE_INFO(callqueue), c, tqe);
  ------------------
  |  Branch (167:4): [True: 2.84k, False: 10]
  |  Branch (167:4): [Folded, False: 2.85k]
  ------------------
  168|  2.85k|			c_func = c->c_func;
  169|  2.85k|			c_arg = c->c_arg;
  170|  2.85k|			c->c_flags &= ~SCTP_CALLOUT_PENDING;
  ------------------
  |  |   83|  2.85k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  ------------------
  171|  2.85k|			SCTP_TIMERQ_UNLOCK();
  ------------------
  |  |   59|  2.85k|#define SCTP_TIMERQ_UNLOCK()        KASSERT(pthread_mutex_unlock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  2.85k|	do {                         \
  |  |  |  |  113|  2.85k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.85k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.85k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.85k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  172|  2.85k|			c_func(c_arg);
  173|  2.85k|			SCTP_TIMERQ_LOCK();
  ------------------
  |  |   58|  2.85k|#define SCTP_TIMERQ_LOCK()          KASSERT(pthread_mutex_lock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  2.85k|	do {                         \
  |  |  |  |  113|  2.85k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.85k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.85k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.85k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  174|  2.85k|			c = sctp_os_timer_next;
  175|  6.57k|		} else {
  176|  6.57k|			c = TAILQ_NEXT(c, tqe);
  177|  6.57k|		}
  178|  9.42k|	}
  179|    622|	sctp_os_timer_next = NULL;
  180|    622|	SCTP_TIMERQ_UNLOCK();
  ------------------
  |  |   59|    622|#define SCTP_TIMERQ_UNLOCK()        KASSERT(pthread_mutex_unlock(&SCTP_BASE_VAR(timer_mtx)) == 0, ("%s: timer_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|    622|	do {                         \
  |  |  |  |  113|    622|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 622]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    622|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 622]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  181|    622|}
user_sctp_timer_iterate:
  197|      1|{
  198|      1|	sctp_userspace_set_threadname("SCTP timer");
  199|    623|	for (;;) {
  200|       |#if defined(_WIN32)
  201|       |		Sleep(TIMEOUT_INTERVAL);
  202|       |#else
  203|    623|		struct timespec amount, remaining;
  204|       |
  205|    623|		remaining.tv_sec = 0;
  206|    623|		remaining.tv_nsec = TIMEOUT_INTERVAL * 1000 * 1000;
  ------------------
  |  |  193|    623|#define TIMEOUT_INTERVAL 10
  ------------------
  207|    623|		do {
  208|    623|			amount = remaining;
  209|    623|		} while (nanosleep(&amount, &remaining) == -1);
  ------------------
  |  Branch (209:12): [True: 0, False: 623]
  ------------------
  210|    623|#endif
  211|    623|		if (atomic_cmpset_int(&SCTP_BASE_VAR(timer_thread_should_exit), 1, 1)) {
  ------------------
  |  |  113|    623|#define atomic_cmpset_int(dst, exp, src) __sync_bool_compare_and_swap(dst, exp, src)
  |  |  ------------------
  |  |  |  Branch (113:42): [True: 0, False: 623]
  |  |  ------------------
  ------------------
  212|      0|			break;
  213|      0|		}
  214|    623|		sctp_handle_tick(sctp_msecs_to_ticks(TIMEOUT_INTERVAL));
  ------------------
  |  |  193|    623|#define TIMEOUT_INTERVAL 10
  ------------------
  215|    623|	}
  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|  53.5k|{
   82|  53.5k|	struct sctp_association *assoc;
   83|  53.5k|	uint32_t cwnd_in_mtu;
   84|       |
   85|  53.5k|	assoc = &stcb->asoc;
   86|  53.5k|	cwnd_in_mtu = SCTP_BASE_SYSCTL(sctp_initial_cwnd);
  ------------------
  |  |  590|  53.5k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
   87|  53.5k|	if (cwnd_in_mtu == 0) {
  ------------------
  |  Branch (87:6): [True: 0, False: 53.5k]
  ------------------
   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|  53.5k|	} else {
   91|       |		/*
   92|       |		 * We take the minimum of the burst limit and the
   93|       |		 * initial congestion window.
   94|       |		 */
   95|  53.5k|		if ((assoc->max_burst > 0) && (cwnd_in_mtu > assoc->max_burst))
  ------------------
  |  Branch (95:7): [True: 53.5k, False: 0]
  |  Branch (95:33): [True: 0, False: 53.5k]
  ------------------
   96|      0|			cwnd_in_mtu = assoc->max_burst;
   97|  53.5k|		net->cwnd = (net->mtu - sizeof(struct sctphdr)) * cwnd_in_mtu;
   98|  53.5k|	}
   99|  53.5k|	if ((stcb->asoc.sctp_cmt_on_off == SCTP_CMT_RPV1) ||
  ------------------
  |  |  313|  53.5k|#define SCTP_CMT_RPV1           2
  ------------------
  |  Branch (99:6): [True: 0, False: 53.5k]
  ------------------
  100|  53.5k|	    (stcb->asoc.sctp_cmt_on_off == SCTP_CMT_RPV2)) {
  ------------------
  |  |  314|  53.5k|#define SCTP_CMT_RPV2           3
  ------------------
  |  Branch (100:6): [True: 0, False: 53.5k]
  ------------------
  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|  53.5k|	sctp_enforce_cwnd_limit(assoc, net);
  108|  53.5k|	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|  53.5k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) &
  ------------------
  |  |  590|  53.5k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (114:6): [True: 0, False: 53.5k]
  ------------------
  115|  53.5k|	    (SCTP_CWND_MONITOR_ENABLE|SCTP_CWND_LOGGING_ENABLE)) {
  ------------------
  |  |  644|  53.5k|#define SCTP_CWND_MONITOR_ENABLE			0x00000002
  ------------------
              	    (SCTP_CWND_MONITOR_ENABLE|SCTP_CWND_LOGGING_ENABLE)) {
  ------------------
  |  |  645|  53.5k|#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|  53.5k|}
sctp_cc_functions.c:sctp_enforce_cwnd_limit:
   68|  53.5k|{
   69|  53.5k|	if ((assoc->max_cwnd > 0) &&
  ------------------
  |  Branch (69:6): [True: 0, False: 53.5k]
  ------------------
   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|  53.5k|}

sctp_set_rwnd:
   77|  17.2k|{
   78|  17.2k|	asoc->my_rwnd = sctp_calc_rwnd(stcb, asoc);
   79|  17.2k|}
sctp_calc_rwnd:
   84|  25.2k|{
   85|  25.2k|	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|  25.2k|	if (stcb->sctp_socket == NULL) {
  ------------------
  |  Branch (93:6): [True: 0, False: 25.2k]
  ------------------
   94|      0|		return (calc);
   95|      0|	}
   96|       |
   97|  25.2k|	KASSERT(asoc->cnt_on_reasm_queue > 0 || asoc->size_on_reasm_queue == 0,
  ------------------
  |  |  112|  25.2k|	do {                         \
  |  |  113|  47.3k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 3.10k, False: 22.1k]
  |  |  |  Branch (113:9): [True: 22.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|  25.2k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 25.2k]
  |  |  ------------------
  ------------------
   98|  25.2k|	        ("size_on_reasm_queue is %u", asoc->size_on_reasm_queue));
   99|  25.2k|	KASSERT(asoc->cnt_on_all_streams > 0 || asoc->size_on_all_streams == 0,
  ------------------
  |  |  112|  25.2k|	do {                         \
  |  |  113|  48.6k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 1.86k, False: 23.3k]
  |  |  |  Branch (113:9): [True: 23.3k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.2k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 25.2k]
  |  |  ------------------
  ------------------
  100|  25.2k|	        ("size_on_all_streams is %u", asoc->size_on_all_streams));
  101|  25.2k|	if (stcb->asoc.sb_cc == 0 &&
  ------------------
  |  Branch (101:6): [True: 8.82k, False: 16.4k]
  ------------------
  102|  8.82k|	    asoc->cnt_on_reasm_queue == 0 &&
  ------------------
  |  Branch (102:6): [True: 8.45k, False: 370]
  ------------------
  103|  8.45k|	    asoc->cnt_on_all_streams == 0) {
  ------------------
  |  Branch (103:6): [True: 8.32k, False: 123]
  ------------------
  104|       |		/* Full rwnd granted */
  105|  8.32k|		calc = max(SCTP_SB_LIMIT_RCV(stcb->sctp_socket), SCTP_MINIMAL_RWND);
  ------------------
  |  |   67|  8.32k|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  ------------------
  |  |  |  Branch (67:19): [True: 8.32k, False: 0]
  |  |  ------------------
  ------------------
  106|  8.32k|		return (calc);
  107|  8.32k|	}
  108|       |	/* get actual space */
  109|  16.9k|	calc = (uint32_t) sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv);
  ------------------
  |  |   89|  16.9k|#define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|  16.9k|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|  16.9k|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 16.9k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|  16.2k|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|  16.2k|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 16.2k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (89:41): [True: 16.2k, False: 666]
  |  |  ------------------
  ------------------
  110|       |	/*
  111|       |	 * take out what has NOT been put on socket queue and we yet hold
  112|       |	 * for putting up.
  113|       |	 */
  114|  16.9k|	calc = sctp_sbspace_sub(calc, (uint32_t)(asoc->size_on_reasm_queue +
  ------------------
  |  |   93|  16.9k|#define sctp_sbspace_sub(a,b) (((a) > (b)) ? ((a) - (b)) : 0)
  |  |  ------------------
  |  |  |  Branch (93:32): [True: 16.2k, False: 679]
  |  |  ------------------
  ------------------
  115|  16.9k|	                                         asoc->cnt_on_reasm_queue * MSIZE));
  116|  16.9k|	calc = sctp_sbspace_sub(calc, (uint32_t)(asoc->size_on_all_streams +
  ------------------
  |  |   93|  16.9k|#define sctp_sbspace_sub(a,b) (((a) > (b)) ? ((a) - (b)) : 0)
  |  |  ------------------
  |  |  |  Branch (93:32): [True: 16.2k, False: 682]
  |  |  ------------------
  ------------------
  117|  16.9k|	                                         asoc->cnt_on_all_streams * MSIZE));
  118|  16.9k|	if (calc == 0) {
  ------------------
  |  Branch (118:6): [True: 682, False: 16.2k]
  ------------------
  119|       |		/* out of space */
  120|    682|		return (calc);
  121|    682|	}
  122|       |
  123|       |	/* what is the overhead of all these rwnd's */
  124|  16.2k|	calc = sctp_sbspace_sub(calc, stcb->asoc.my_rwnd_control_len);
  ------------------
  |  |   93|  16.2k|#define sctp_sbspace_sub(a,b) (((a) > (b)) ? ((a) - (b)) : 0)
  |  |  ------------------
  |  |  |  Branch (93:32): [True: 10.6k, False: 5.59k]
  |  |  ------------------
  ------------------
  125|       |	/* If the window gets too small due to ctrl-stuff, reduce it
  126|       |	 * to 1, even it is 0. SWS engaged
  127|       |	 */
  128|  16.2k|	if (calc < stcb->asoc.my_rwnd_control_len) {
  ------------------
  |  Branch (128:6): [True: 6.86k, False: 9.36k]
  ------------------
  129|  6.86k|		calc = 1;
  130|  6.86k|	}
  131|  16.2k|	return (calc);
  132|  16.9k|}
sctp_build_readq_entry:
  144|   645k|{
  145|   645k|	struct sctp_queued_to_read *read_queue_e = NULL;
  146|       |
  147|   645k|	sctp_alloc_a_readq(stcb, read_queue_e);
  ------------------
  |  |  118|   645k|#define sctp_alloc_a_readq(_stcb, _readq) { \
  |  |  119|   645k|	(_readq) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_readq), struct sctp_queued_to_read); \
  |  |  ------------------
  |  |  |  |  703|   645k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  120|   645k|	if ((_readq)) { \
  |  |  ------------------
  |  |  |  Branch (120:6): [True: 645k, False: 0]
  |  |  ------------------
  |  |  121|   645k|	     SCTP_INCR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  682|   645k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|   645k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  122|   645k|	} \
  |  |  123|   645k|}
  ------------------
  148|   645k|	if (read_queue_e == NULL) {
  ------------------
  |  Branch (148:6): [True: 0, False: 645k]
  ------------------
  149|      0|		goto failed_build;
  150|      0|	}
  151|   645k|	memset(read_queue_e, 0, sizeof(struct sctp_queued_to_read));
  152|   645k|	read_queue_e->sinfo_stream = sid;
  153|   645k|	read_queue_e->sinfo_flags = (flags << 8);
  154|   645k|	read_queue_e->sinfo_ppid = ppid;
  155|   645k|	read_queue_e->sinfo_context = context;
  156|   645k|	read_queue_e->sinfo_tsn = tsn;
  157|   645k|	read_queue_e->sinfo_cumtsn = tsn;
  158|   645k|	read_queue_e->sinfo_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|   645k|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
  159|   645k|	read_queue_e->mid = mid;
  160|   645k|	read_queue_e->top_fsn = read_queue_e->fsn_included = 0xffffffff;
  161|   645k|	TAILQ_INIT(&read_queue_e->reasm);
  ------------------
  |  Branch (161:2): [Folded, False: 645k]
  ------------------
  162|   645k|	read_queue_e->whoFrom = net;
  163|   645k|	atomic_add_int(&net->ref_count, 1);
  ------------------
  |  |   94|   645k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  164|   645k|	read_queue_e->data = dm;
  165|   645k|	read_queue_e->stcb = stcb;
  166|   645k|	read_queue_e->port_from = stcb->rport;
  167|   645k|	if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|   645k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (167:6): [True: 0, False: 645k]
  ------------------
  168|      0|		read_queue_e->do_not_ref_stcb = 1;
  169|      0|	}
  170|   645k|failed_build:
  171|   645k|	return (read_queue_e);
  172|   645k|}
sctp_slide_mapping_arrays:
 2403|  18.6k|{
 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.6k|	struct sctp_association *asoc;
 2419|  18.6k|	int at;
 2420|  18.6k|	uint8_t val;
 2421|  18.6k|	int slide_from, slide_end, lgap, distance;
 2422|  18.6k|	uint32_t old_cumack, old_base, old_highest, highest_tsn;
 2423|       |
 2424|  18.6k|	asoc = &stcb->asoc;
 2425|       |
 2426|  18.6k|	old_cumack = asoc->cumulative_tsn;
 2427|  18.6k|	old_base = asoc->mapping_array_base_tsn;
 2428|  18.6k|	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.6k|	at = 0;
 2434|  20.3k|	for (slide_from = 0; slide_from < stcb->asoc.mapping_array_size; slide_from++) {
  ------------------
  |  Branch (2434:23): [True: 20.3k, False: 14]
  ------------------
 2435|  20.3k|		val = asoc->nr_mapping_array[slide_from] | asoc->mapping_array[slide_from];
 2436|  20.3k|		if (val == 0xff) {
  ------------------
  |  Branch (2436:7): [True: 1.68k, False: 18.6k]
  ------------------
 2437|  1.68k|			at += 8;
 2438|  18.6k|		} else {
 2439|       |			/* there is a 0 bit */
 2440|  18.6k|			at += sctp_map_lookup_tab[val];
 2441|  18.6k|			break;
 2442|  18.6k|		}
 2443|  20.3k|	}
 2444|  18.6k|	asoc->cumulative_tsn = asoc->mapping_array_base_tsn + (at-1);
 2445|       |
 2446|  18.6k|	if (SCTP_TSN_GT(asoc->cumulative_tsn, asoc->highest_tsn_inside_map) &&
  ------------------
  |  |  889|  18.6k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  37.3k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 2.76k, False: 15.9k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 2.76k]
  |  |  |  |  ------------------
  |  |  |  |  884|  37.3k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 4.99k, False: 13.6k]
  |  |  |  |  |  Branch (884:43): [True: 4.18k, False: 802]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2447|  4.18k|            SCTP_TSN_GT(asoc->cumulative_tsn, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|  4.18k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  4.18k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 80, False: 4.10k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 80]
  |  |  |  |  ------------------
  |  |  |  |  884|  4.18k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 4.18k]
  |  |  |  |  |  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.6k|	if (SCTP_TSN_GT(asoc->highest_tsn_inside_nr_map, asoc->highest_tsn_inside_map)) {
  ------------------
  |  |  889|  18.6k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  18.6k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 2.19k, False: 16.4k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 2.19k]
  |  |  |  |  ------------------
  |  |  |  |  884|  18.6k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 5.85k, False: 12.8k]
  |  |  |  |  |  Branch (884:43): [True: 5.85k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2463|  5.85k|		highest_tsn = asoc->highest_tsn_inside_nr_map;
 2464|  12.8k|	} else {
 2465|  12.8k|		highest_tsn = asoc->highest_tsn_inside_map;
 2466|  12.8k|	}
 2467|  18.6k|	if ((asoc->cumulative_tsn == highest_tsn) && (at >= 8)) {
  ------------------
  |  Branch (2467:6): [True: 13.9k, False: 4.69k]
  |  Branch (2467:47): [True: 283, False: 13.6k]
  ------------------
 2468|       |		/* The complete array was completed by a single FR */
 2469|       |		/* highest becomes the cum-ack */
 2470|    283|		int clr;
 2471|    283|#ifdef INVARIANTS
 2472|    283|		unsigned int i;
 2473|    283|#endif
 2474|       |
 2475|       |		/* clear the array */
 2476|    283|		clr = ((at+7) >> 3);
 2477|    283|		if (clr > asoc->mapping_array_size) {
  ------------------
  |  Branch (2477:7): [True: 0, False: 283]
  ------------------
 2478|      0|			clr = asoc->mapping_array_size;
 2479|      0|		}
 2480|    283|		memset(asoc->mapping_array, 0, clr);
 2481|    283|		memset(asoc->nr_mapping_array, 0, clr);
 2482|    283|#ifdef INVARIANTS
 2483|  4.81k|		for (i = 0; i < asoc->mapping_array_size; i++) {
  ------------------
  |  Branch (2483:15): [True: 4.52k, False: 283]
  ------------------
 2484|  4.52k|			if ((asoc->mapping_array[i]) || (asoc->nr_mapping_array[i])) {
  ------------------
  |  Branch (2484:8): [True: 0, False: 4.52k]
  |  Branch (2484:36): [True: 0, False: 4.52k]
  ------------------
 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.52k|		}
 2489|    283|#endif
 2490|    283|		asoc->mapping_array_base_tsn = asoc->cumulative_tsn + 1;
 2491|    283|		asoc->highest_tsn_inside_nr_map = asoc->highest_tsn_inside_map = asoc->cumulative_tsn;
 2492|  18.3k|	} else if (at >= 8) {
  ------------------
  |  Branch (2492:13): [True: 17, False: 18.3k]
  ------------------
 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.58k|			for (ii = 0; ii < distance; ii++) {
  ------------------
  |  Branch (2544:17): [True: 1.56k, False: 17]
  ------------------
 2545|  1.56k|				asoc->mapping_array[ii] = asoc->mapping_array[slide_from + ii];
 2546|  1.56k|				asoc->nr_mapping_array[ii] = asoc->nr_mapping_array[slide_from + ii];
 2547|  1.56k|			}
 2548|    547|			for (ii = distance; ii < asoc->mapping_array_size; ii++) {
  ------------------
  |  Branch (2548:24): [True: 530, False: 17]
  ------------------
 2549|    530|				asoc->mapping_array[ii] = 0;
 2550|    530|				asoc->nr_mapping_array[ii] = 0;
 2551|    530|			}
 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.6k|}
sctp_sack_check:
 2570|  5.29k|{
 2571|  5.29k|	struct sctp_association *asoc;
 2572|  5.29k|	uint32_t highest_tsn;
 2573|  5.29k|	int is_a_gap;
 2574|       |
 2575|  5.29k|	sctp_slide_mapping_arrays(stcb);
 2576|  5.29k|	asoc = &stcb->asoc;
 2577|  5.29k|	if (SCTP_TSN_GT(asoc->highest_tsn_inside_nr_map, asoc->highest_tsn_inside_map)) {
  ------------------
  |  |  889|  5.29k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  5.29k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 1.05k, False: 4.24k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 1.05k]
  |  |  |  |  ------------------
  |  |  |  |  884|  5.29k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 979, False: 4.31k]
  |  |  |  |  |  Branch (884:43): [True: 979, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2578|    979|		highest_tsn = asoc->highest_tsn_inside_nr_map;
 2579|  4.31k|	} else {
 2580|  4.31k|		highest_tsn = asoc->highest_tsn_inside_map;
 2581|  4.31k|	}
 2582|       |	/* Is there a gap now? */
 2583|  5.29k|	is_a_gap = SCTP_TSN_GT(highest_tsn, stcb->asoc.cumulative_tsn);
  ------------------
  |  |  889|  5.29k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  5.29k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 73, False: 5.22k]
  |  |  |  |  |  Branch (883:43): [True: 73, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  5.29k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 1.74k, False: 3.47k]
  |  |  |  |  |  Branch (884:43): [True: 1.74k, 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|  5.29k|	if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) {
  ------------------
  |  |  472|  5.29k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  5.29k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) {
  ------------------
  |  |  460|  5.29k|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (2589:6): [True: 0, False: 5.29k]
  ------------------
 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|  5.29k|	} else {
 2606|       |		/*
 2607|       |		 * CMT DAC algorithm: increase number of packets
 2608|       |		 * received since last ack
 2609|       |		 */
 2610|  5.29k|		stcb->asoc.cmt_dac_pkts_rcvd++;
 2611|       |
 2612|  5.29k|		if ((stcb->asoc.send_sack == 1) ||      /* We need to send a SACK */
  ------------------
  |  Branch (2612:7): [True: 5.03k, False: 261]
  ------------------
 2613|    261|		    ((was_a_gap) && (is_a_gap == 0)) ||	/* was a gap, but no
  ------------------
  |  Branch (2613:8): [True: 0, False: 261]
  |  Branch (2613:23): [True: 0, False: 0]
  ------------------
 2614|       |		                                         * longer is one */
 2615|    261|		    (stcb->asoc.numduptsns) ||          /* we have dup's */
  ------------------
  |  Branch (2615:7): [True: 0, False: 261]
  ------------------
 2616|    261|		    (is_a_gap) ||                       /* is still a gap */
  ------------------
  |  Branch (2616:7): [True: 160, False: 101]
  ------------------
 2617|    101|		    (stcb->asoc.delayed_ack == 0) ||    /* Delayed sack disabled */
  ------------------
  |  Branch (2617:7): [True: 0, False: 101]
  ------------------
 2618|  5.19k|		    (stcb->asoc.data_pkts_seen >= stcb->asoc.sack_freq)) {	/* hit limit of pkts */
  ------------------
  |  Branch (2618:7): [True: 0, False: 101]
  ------------------
 2619|  5.19k|			if ((stcb->asoc.sctp_cmt_on_off > 0) &&
  ------------------
  |  Branch (2619:8): [True: 0, False: 5.19k]
  ------------------
 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|  5.19k|			} 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|  5.19k|				sctp_timer_stop(SCTP_TIMER_TYPE_RECV, stcb->sctp_ep, stcb, NULL,
  ------------------
  |  |  534|  5.19k|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
 2646|  5.19k|				                SCTP_FROM_SCTP_INDATA + SCTP_LOC_20);
  ------------------
  |  |  757|  5.19k|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              				                SCTP_FROM_SCTP_INDATA + SCTP_LOC_20);
  ------------------
  |  |  788|  5.19k|#define SCTP_LOC_20 0x00000014
  ------------------
 2647|  5.19k|				sctp_send_sack(stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  5.19k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2648|  5.19k|			}
 2649|  5.19k|		} else {
 2650|    101|			if (!SCTP_OS_TIMER_PENDING(&stcb->asoc.dack_timer.timer)) {
  ------------------
  |  |  102|    101|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|    101|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  ------------------
  |  Branch (2650:8): [True: 101, False: 0]
  ------------------
 2651|    101|				sctp_timer_start(SCTP_TIMER_TYPE_RECV,
  ------------------
  |  |  534|    101|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
 2652|       |				                 stcb->sctp_ep, stcb, NULL);
 2653|    101|			}
 2654|    101|		}
 2655|  5.29k|	}
 2656|  5.29k|}
sctp_process_data:
 2662|  5.22k|{
 2663|  5.22k|	struct sctp_chunkhdr *ch, chunk_buf;
 2664|  5.22k|	struct sctp_association *asoc;
 2665|  5.22k|	int num_chunks = 0;	/* number of control chunks processed */
 2666|  5.22k|	int stop_proc = 0;
 2667|  5.22k|	int break_flag, last_chunk;
 2668|  5.22k|	int abort_flag = 0, was_a_gap;
 2669|  5.22k|	struct mbuf *m;
 2670|  5.22k|	uint32_t highest_tsn;
 2671|  5.22k|	uint16_t chk_length;
 2672|       |
 2673|       |	/* set the rwnd */
 2674|  5.22k|	sctp_set_rwnd(stcb, &stcb->asoc);
 2675|       |
 2676|  5.22k|	m = *mm;
 2677|  5.22k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.22k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.22k|	do {                         \
  |  |  |  |  113|  5.22k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.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|  5.22k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.22k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2678|  5.22k|	asoc = &stcb->asoc;
 2679|  5.22k|	if (SCTP_TSN_GT(asoc->highest_tsn_inside_nr_map, asoc->highest_tsn_inside_map)) {
  ------------------
  |  |  889|  5.22k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  5.22k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 5.22k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  5.22k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 66, False: 5.16k]
  |  |  |  |  |  Branch (884:43): [True: 66, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2680|     66|		highest_tsn = asoc->highest_tsn_inside_nr_map;
 2681|  5.16k|	} else {
 2682|  5.16k|		highest_tsn = asoc->highest_tsn_inside_map;
 2683|  5.16k|	}
 2684|  5.22k|	was_a_gap = SCTP_TSN_GT(highest_tsn, stcb->asoc.cumulative_tsn);
  ------------------
  |  |  889|  5.22k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  5.22k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 5.22k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  5.22k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 5.22k]
  |  |  |  |  |  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|  5.22k|	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|  5.22k|	if (SCTP_BUF_LEN(m) < (long)MLEN && SCTP_BUF_NEXT(m) == NULL) {
  ------------------
  |  |  801|  5.22k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  5.22k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
              	if (SCTP_BUF_LEN(m) < (long)MLEN && SCTP_BUF_NEXT(m) == NULL) {
  ------------------
  |  |  138|  10.4k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|  5.22k|#define MSIZE 256
  |  |  ------------------
  ------------------
              	if (SCTP_BUF_LEN(m) < (long)MLEN && SCTP_BUF_NEXT(m) == NULL) {
  ------------------
  |  |  802|  4.78k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  4.78k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (2699:6): [True: 4.78k, False: 444]
  |  Branch (2699:38): [True: 2.21k, False: 2.57k]
  ------------------
 2700|       |		/* we only handle mbufs that are singletons.. not chains */
 2701|  2.21k|		m = sctp_get_mbuf_for_msg(SCTP_BUF_LEN(m), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  801|  2.21k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.21k|#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.21k|#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.21k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 2702|  2.21k|		if (m) {
  ------------------
  |  Branch (2702:7): [True: 2.21k, False: 0]
  ------------------
 2703|       |			/* ok lets see if we can copy the data up */
 2704|  2.21k|			caddr_t *from, *to;
 2705|       |			/* get the pointers and copy */
 2706|  2.21k|			to = mtod(m, caddr_t *);
  ------------------
  |  |   96|  2.21k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.21k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 2707|  2.21k|			from = mtod((*mm), caddr_t *);
  ------------------
  |  |   96|  2.21k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.21k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 2708|  2.21k|			memcpy(to, from, SCTP_BUF_LEN((*mm)));
  ------------------
  |  |  801|  2.21k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.21k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2709|       |			/* copy the length and free up the old */
 2710|  2.21k|			SCTP_BUF_LEN(m) = SCTP_BUF_LEN((*mm));
  ------------------
  |  |  801|  2.21k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.21k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
              			SCTP_BUF_LEN(m) = SCTP_BUF_LEN((*mm));
  ------------------
  |  |  801|  2.21k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.21k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2711|  2.21k|			sctp_m_freem(*mm);
  ------------------
  |  |   52|  2.21k|#define sctp_m_freem m_freem
  ------------------
 2712|       |			/* success, back copy */
 2713|  2.21k|			*mm = m;
 2714|  2.21k|		} else {
 2715|       |			/* We are in trouble in the mbuf world .. yikes */
 2716|      0|			m = *mm;
 2717|      0|		}
 2718|  2.21k|	}
 2719|       |	/* get pointer to the first chunk header */
 2720|  5.22k|	ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, *offset,
 2721|  5.22k|	                                           sizeof(struct sctp_chunkhdr),
 2722|  5.22k|	                                           (uint8_t *)&chunk_buf);
 2723|  5.22k|	if (ch == NULL) {
  ------------------
  |  Branch (2723:6): [True: 0, False: 5.22k]
  ------------------
 2724|      0|		return (1);
 2725|      0|	}
 2726|       |	/*
 2727|       |	 * process all DATA chunks...
 2728|       |	 */
 2729|  5.22k|	*high_tsn = asoc->cumulative_tsn;
 2730|  5.22k|	break_flag = 0;
 2731|  5.22k|	asoc->data_pkts_seen++;
 2732|  23.4k|	while (stop_proc == 0) {
  ------------------
  |  Branch (2732:9): [True: 19.0k, False: 4.40k]
  ------------------
 2733|       |		/* validate chunk length */
 2734|  19.0k|		chk_length = ntohs(ch->chunk_length);
 2735|  19.0k|		if (length - *offset < chk_length) {
  ------------------
  |  Branch (2735:7): [True: 531, False: 18.5k]
  ------------------
 2736|       |			/* all done, mutulated chunk */
 2737|    531|			stop_proc = 1;
 2738|    531|			continue;
 2739|    531|		}
 2740|  18.5k|		if ((asoc->idata_supported == 1) &&
  ------------------
  |  Branch (2740:7): [True: 7.88k, False: 10.6k]
  ------------------
 2741|  7.88k|		    (ch->chunk_type == SCTP_DATA)) {
  ------------------
  |  |  454|  7.88k|#define SCTP_DATA		0x00
  ------------------
  |  Branch (2741:7): [True: 191, False: 7.69k]
  ------------------
 2742|    191|			struct mbuf *op_err;
 2743|    191|			char msg[SCTP_DIAG_INFO_LEN];
 2744|       |
 2745|    191|			SCTP_SNPRINTF(msg, sizeof(msg), "%s", "DATA chunk received when I-DATA was negotiated");
  ------------------
  |  |  820|    191|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 191]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 2746|    191|			op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|    191|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 2747|    191|			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_21;
  ------------------
  |  |  757|    191|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_21;
  ------------------
  |  |  789|    191|#define SCTP_LOC_21 0x00000015
  ------------------
 2748|    191|			sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    191|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2749|    191|			return (2);
 2750|    191|		}
 2751|  18.3k|		if ((asoc->idata_supported == 0) &&
  ------------------
  |  Branch (2751:7): [True: 10.6k, False: 7.69k]
  ------------------
 2752|  10.6k|		    (ch->chunk_type == SCTP_IDATA)) {
  ------------------
  |  |  474|  10.6k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (2752:7): [True: 2, False: 10.6k]
  ------------------
 2753|      2|			struct mbuf *op_err;
 2754|      2|			char msg[SCTP_DIAG_INFO_LEN];
 2755|       |
 2756|      2|			SCTP_SNPRINTF(msg, sizeof(msg), "%s", "I-DATA chunk received when DATA was negotiated");
  ------------------
  |  |  820|      2|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 2]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 2757|      2|			op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|      2|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 2758|      2|			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_22;
  ------------------
  |  |  757|      2|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_22;
  ------------------
  |  |  790|      2|#define SCTP_LOC_22 0x00000016
  ------------------
 2759|      2|			sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      2|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2760|      2|			return (2);
 2761|      2|		}
 2762|  18.3k|		if ((ch->chunk_type == SCTP_DATA) ||
  ------------------
  |  |  454|  18.3k|#define SCTP_DATA		0x00
  ------------------
  |  Branch (2762:7): [True: 9.87k, False: 8.46k]
  ------------------
 2763|  13.8k|		    (ch->chunk_type == SCTP_IDATA)) {
  ------------------
  |  |  474|  8.46k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (2763:7): [True: 3.97k, False: 4.48k]
  ------------------
 2764|  13.8k|			uint16_t clen;
 2765|       |
 2766|  13.8k|			if (ch->chunk_type == SCTP_DATA) {
  ------------------
  |  |  454|  13.8k|#define SCTP_DATA		0x00
  ------------------
  |  Branch (2766:8): [True: 9.87k, False: 3.97k]
  ------------------
 2767|  9.87k|				clen = sizeof(struct sctp_data_chunk);
 2768|  9.87k|			} else {
 2769|  3.97k|				clen = sizeof(struct sctp_idata_chunk);
 2770|  3.97k|			}
 2771|  13.8k|			if (chk_length < clen) {
  ------------------
  |  Branch (2771:8): [True: 98, False: 13.7k]
  ------------------
 2772|       |				/*
 2773|       |				 * Need to send an abort since we had a
 2774|       |				 * invalid data chunk.
 2775|       |				 */
 2776|     98|				struct mbuf *op_err;
 2777|     98|				char msg[SCTP_DIAG_INFO_LEN];
 2778|       |
 2779|     98|				SCTP_SNPRINTF(msg, sizeof(msg), "%s chunk of length %u",
  ------------------
  |  |  820|    196|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 98]
  |  |  |  Branch (820:21): [True: 82, False: 16]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 2780|     98|				              ch->chunk_type == SCTP_DATA ? "DATA" : "I-DATA",
 2781|     98|				              chk_length);
 2782|     98|				op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     98|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 2783|     98|				stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_23;
  ------------------
  |  |  757|     98|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              				stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_23;
  ------------------
  |  |  791|     98|#define SCTP_LOC_23 0x00000017
  ------------------
 2784|     98|				sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     98|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2785|     98|				return (2);
 2786|     98|			}
 2787|       |#ifdef SCTP_AUDITING_ENABLED
 2788|       |			sctp_audit_log(0xB1, 0);
 2789|       |#endif
 2790|  13.7k|			if (SCTP_SIZE32(chk_length) == (length - *offset)) {
  ------------------
  |  |  383|  13.7k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (2790:8): [True: 2.24k, False: 11.4k]
  ------------------
 2791|  2.24k|				last_chunk = 1;
 2792|  11.4k|			} else {
 2793|  11.4k|				last_chunk = 0;
 2794|  11.4k|			}
 2795|  13.7k|			if (sctp_process_a_data_chunk(stcb, asoc, mm, *offset,
  ------------------
  |  Branch (2795:8): [True: 6.50k, False: 7.24k]
  ------------------
 2796|  13.7k|						      chk_length, net, high_tsn, &abort_flag, &break_flag,
 2797|  13.7k|						      last_chunk, ch->chunk_type)) {
 2798|  6.50k|				num_chunks++;
 2799|  6.50k|			}
 2800|  13.7k|			if (abort_flag)
  ------------------
  |  Branch (2800:8): [True: 450, False: 13.2k]
  ------------------
 2801|    450|				return (2);
 2802|       |
 2803|  13.2k|			if (break_flag) {
  ------------------
  |  Branch (2803:8): [True: 20, False: 13.2k]
  ------------------
 2804|       |				/*
 2805|       |				 * Set because of out of rwnd space and no
 2806|       |				 * drop rep space left.
 2807|       |				 */
 2808|     20|				stop_proc = 1;
 2809|     20|				continue;
 2810|     20|			}
 2811|  13.2k|		} else {
 2812|       |			/* not a data chunk in the data region */
 2813|  4.48k|			switch (ch->chunk_type) {
 2814|      3|			case SCTP_INITIATION:
  ------------------
  |  |  455|      3|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (2814:4): [True: 3, False: 4.48k]
  ------------------
 2815|      4|			case SCTP_INITIATION_ACK:
  ------------------
  |  |  456|      4|#define SCTP_INITIATION_ACK	0x02
  ------------------
  |  Branch (2815:4): [True: 1, False: 4.48k]
  ------------------
 2816|      6|			case SCTP_SELECTIVE_ACK:
  ------------------
  |  |  457|      6|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (2816:4): [True: 2, False: 4.48k]
  ------------------
 2817|      8|			case SCTP_NR_SELECTIVE_ACK:
  ------------------
  |  |  472|      8|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (2817:4): [True: 2, False: 4.48k]
  ------------------
 2818|     22|			case SCTP_HEARTBEAT_REQUEST:
  ------------------
  |  |  458|     22|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
  |  Branch (2818:4): [True: 14, False: 4.47k]
  ------------------
 2819|     24|			case SCTP_HEARTBEAT_ACK:
  ------------------
  |  |  459|     24|#define SCTP_HEARTBEAT_ACK	0x05
  ------------------
  |  Branch (2819:4): [True: 2, False: 4.48k]
  ------------------
 2820|     25|			case SCTP_ABORT_ASSOCIATION:
  ------------------
  |  |  460|     25|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
  |  Branch (2820:4): [True: 1, False: 4.48k]
  ------------------
 2821|     29|			case SCTP_SHUTDOWN:
  ------------------
  |  |  461|     29|#define SCTP_SHUTDOWN		0x07
  ------------------
  |  Branch (2821:4): [True: 4, False: 4.48k]
  ------------------
 2822|     32|			case SCTP_SHUTDOWN_ACK:
  ------------------
  |  |  462|     32|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
  |  Branch (2822:4): [True: 3, False: 4.48k]
  ------------------
 2823|     40|			case SCTP_OPERATION_ERROR:
  ------------------
  |  |  463|     40|#define SCTP_OPERATION_ERROR	0x09
  ------------------
  |  Branch (2823:4): [True: 8, False: 4.48k]
  ------------------
 2824|     41|			case SCTP_COOKIE_ECHO:
  ------------------
  |  |  464|     41|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (2824:4): [True: 1, False: 4.48k]
  ------------------
 2825|     45|			case SCTP_COOKIE_ACK:
  ------------------
  |  |  465|     45|#define SCTP_COOKIE_ACK		0x0b
  ------------------
  |  Branch (2825:4): [True: 4, False: 4.48k]
  ------------------
 2826|     46|			case SCTP_ECN_ECHO:
  ------------------
  |  |  466|     46|#define SCTP_ECN_ECHO		0x0c
  ------------------
  |  Branch (2826:4): [True: 1, False: 4.48k]
  ------------------
 2827|     47|			case SCTP_ECN_CWR:
  ------------------
  |  |  467|     47|#define SCTP_ECN_CWR		0x0d
  ------------------
  |  Branch (2827:4): [True: 1, False: 4.48k]
  ------------------
 2828|     49|			case SCTP_SHUTDOWN_COMPLETE:
  ------------------
  |  |  468|     49|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
  |  Branch (2828:4): [True: 2, False: 4.48k]
  ------------------
 2829|     51|			case SCTP_AUTHENTICATION:
  ------------------
  |  |  470|     51|#define SCTP_AUTHENTICATION     0x0f
  ------------------
  |  Branch (2829:4): [True: 2, False: 4.48k]
  ------------------
 2830|     53|			case SCTP_ASCONF_ACK:
  ------------------
  |  |  477|     53|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (2830:4): [True: 2, False: 4.48k]
  ------------------
 2831|     54|			case SCTP_PACKET_DROPPED:
  ------------------
  |  |  479|     54|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (2831:4): [True: 1, False: 4.48k]
  ------------------
 2832|     55|			case SCTP_STREAM_RESET:
  ------------------
  |  |  481|     55|#define SCTP_STREAM_RESET       0x82
  ------------------
  |  Branch (2832:4): [True: 1, False: 4.48k]
  ------------------
 2833|     57|			case SCTP_FORWARD_CUM_TSN:
  ------------------
  |  |  487|     57|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (2833:4): [True: 2, False: 4.48k]
  ------------------
 2834|     60|			case SCTP_ASCONF:
  ------------------
  |  |  489|     60|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (2834:4): [True: 3, False: 4.48k]
  ------------------
 2835|     60|			{
 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|     60|				struct mbuf *op_err;
 2846|     60|				char msg[SCTP_DIAG_INFO_LEN];
 2847|       |
 2848|     60|				SCTP_SNPRINTF(msg, sizeof(msg), "DATA chunk followed by chunk of type %2.2x",
  ------------------
  |  |  820|     60|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 60]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 2849|     60|				              ch->chunk_type);
 2850|     60|				op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     60|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 2851|     60|				sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     60|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2852|     60|				return (2);
 2853|     57|			}
 2854|  4.42k|			default:
  ------------------
  |  Branch (2854:4): [True: 4.42k, False: 60]
  ------------------
 2855|       |				/*
 2856|       |				 * Unknown chunk type: use bit rules after
 2857|       |				 * checking length
 2858|       |				 */
 2859|  4.42k|				if (chk_length < sizeof(struct sctp_chunkhdr)) {
  ------------------
  |  Branch (2859:9): [True: 20, False: 4.40k]
  ------------------
 2860|       |					/*
 2861|       |					 * Need to send an abort since we had a
 2862|       |					 * invalid chunk.
 2863|       |					 */
 2864|     20|					struct mbuf *op_err;
 2865|     20|					char msg[SCTP_DIAG_INFO_LEN];
 2866|       |
 2867|     20|					SCTP_SNPRINTF(msg, sizeof(msg), "Chunk of length %u", chk_length);
  ------------------
  |  |  820|     20|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 20]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 2868|     20|					op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     20|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 2869|     20|					stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_24;
  ------------------
  |  |  757|     20|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              					stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_24;
  ------------------
  |  |  792|     20|#define SCTP_LOC_24 0x00000018
  ------------------
 2870|     20|					sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     20|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2871|     20|					return (2);
 2872|     20|				}
 2873|  4.40k|				if (ch->chunk_type & 0x40) {
  ------------------
  |  Branch (2873:9): [True: 4.25k, False: 151]
  ------------------
 2874|       |					/* Add a error report to the queue */
 2875|  4.25k|					struct mbuf *op_err;
 2876|  4.25k|					struct sctp_gen_error_cause *cause;
 2877|       |
 2878|  4.25k|					op_err = sctp_get_mbuf_for_msg(sizeof(struct sctp_gen_error_cause),
 2879|  4.25k|					                               0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  4.25k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              					                               0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  4.25k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 2880|  4.25k|					if (op_err != NULL) {
  ------------------
  |  Branch (2880:10): [True: 4.25k, False: 0]
  ------------------
 2881|  4.25k|						cause  = mtod(op_err, struct sctp_gen_error_cause *);
  ------------------
  |  |   96|  4.25k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  4.25k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 2882|  4.25k|						cause->code = htons(SCTP_CAUSE_UNRECOG_CHUNK);
 2883|  4.25k|						cause->length = htons((uint16_t)(chk_length + sizeof(struct sctp_gen_error_cause)));
 2884|  4.25k|						SCTP_BUF_LEN(op_err) = sizeof(struct sctp_gen_error_cause);
  ------------------
  |  |  801|  4.25k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  4.25k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2885|  4.25k|						SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(m, *offset, chk_length, M_NOWAIT);
  ------------------
  |  |  802|  4.25k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  4.25k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
              						SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(m, *offset, chk_length, M_NOWAIT);
  ------------------
  |  |  770|  4.25k|#define SCTP_M_COPYM	m_copym
  ------------------
              						SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(m, *offset, chk_length, M_NOWAIT);
  ------------------
  |  |   60|  4.25k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 2886|  4.25k|						if (SCTP_BUF_NEXT(op_err) != NULL) {
  ------------------
  |  |  802|  4.25k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  4.25k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (2886:11): [True: 4.25k, False: 0]
  ------------------
 2887|  4.25k|							sctp_queue_op_err(stcb, op_err);
 2888|  4.25k|						} else {
 2889|      0|							sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 2890|      0|						}
 2891|  4.25k|					}
 2892|  4.25k|				}
 2893|  4.40k|				if ((ch->chunk_type & 0x80) == 0) {
  ------------------
  |  Branch (2893:9): [True: 8, False: 4.40k]
  ------------------
 2894|       |					/* discard the rest of this packet */
 2895|      8|					stop_proc = 1;
 2896|      8|				}	/* else skip this bad chunk and
 2897|       |					 * continue... */
 2898|  4.40k|				break;
 2899|  4.48k|			}	/* switch of chunk type */
 2900|  4.48k|		}
 2901|  17.6k|		*offset += SCTP_SIZE32(chk_length);
  ------------------
  |  |  383|  17.6k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 2902|  17.6k|		if ((*offset >= length) || stop_proc) {
  ------------------
  |  Branch (2902:7): [True: 3.77k, False: 13.9k]
  |  Branch (2902:30): [True: 5, False: 13.9k]
  ------------------
 2903|       |			/* no more data left in the mbuf chain */
 2904|  3.77k|			stop_proc = 1;
 2905|  3.77k|			continue;
 2906|  3.77k|		}
 2907|  13.9k|		ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, *offset,
 2908|  13.9k|		                                           sizeof(struct sctp_chunkhdr),
 2909|  13.9k|		                                           (uint8_t *)&chunk_buf);
 2910|  13.9k|		if (ch == NULL) {
  ------------------
  |  Branch (2910:7): [True: 80, False: 13.8k]
  ------------------
 2911|     80|			*offset = length;
 2912|     80|			stop_proc = 1;
 2913|     80|			continue;
 2914|     80|		}
 2915|  13.9k|	}
 2916|  4.40k|	if (break_flag) {
  ------------------
  |  Branch (2916:6): [True: 20, False: 4.38k]
  ------------------
 2917|       |		/*
 2918|       |		 * we need to report rwnd overrun drops.
 2919|       |		 */
 2920|     20|		sctp_send_packet_dropped(stcb, net, *mm, length, iphlen, 0);
 2921|     20|	}
 2922|  4.40k|	if (num_chunks) {
  ------------------
  |  Branch (2922:6): [True: 1.70k, False: 2.70k]
  ------------------
 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.70k|		SCTP_STAT_INCR(sctps_recvpktwithdata);
  ------------------
  |  | 1112|  1.70k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  1.70k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.70k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2928|  1.70k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|  1.70k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|  1.70k|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (2928:7): [True: 0, False: 1.70k]
  ------------------
 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.70k|		stcb->asoc.overall_error_count = 0;
 2936|  1.70k|		(void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_last_rcvd);
  ------------------
  |  |  991|  1.70k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 2937|  1.70k|	}
 2938|       |	/* now service all of the reassm queue if needed */
 2939|  4.40k|	if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) {
  ------------------
  |  |  472|  4.40k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  4.40k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) {
  ------------------
  |  |  460|  4.40k|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (2939:6): [True: 0, False: 4.40k]
  ------------------
 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.40k|	sctp_sack_check(stcb, was_a_gap);
 2945|  4.40k|	return (0);
 2946|  5.22k|}
sctp_express_handle_sack:
 3913|  1.07k|{
 3914|  1.07k|	struct sctp_nets *net;
 3915|  1.07k|	struct sctp_association *asoc;
 3916|  1.07k|	struct sctp_tmit_chunk *tp1, *tp2;
 3917|  1.07k|	uint32_t old_rwnd;
 3918|  1.07k|	int win_probe_recovery = 0;
 3919|  1.07k|	int win_probe_recovered = 0;
 3920|  1.07k|	int j, done_once = 0;
 3921|  1.07k|	int rto_ok = 1;
 3922|  1.07k|	uint32_t send_s;
 3923|       |
 3924|  1.07k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_SACK_ARRIVALS_ENABLE) {
  ------------------
  |  |  590|  1.07k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_SACK_ARRIVALS_ENABLE) {
  ------------------
  |  |  662|  1.07k|#define SCTP_LOG_SACK_ARRIVALS_ENABLE			0x00200000
  ------------------
  |  Branch (3924:6): [True: 0, False: 1.07k]
  ------------------
 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.07k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  1.07k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.07k|	do {                         \
  |  |  |  |  113|  1.07k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.07k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.07k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.07k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 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.07k|	asoc = &stcb->asoc;
 3937|  1.07k|	old_rwnd = asoc->peers_rwnd;
 3938|  1.07k|	if (SCTP_TSN_GT(asoc->last_acked_seq, cumack)) {
  ------------------
  |  |  889|  1.07k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  1.07k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 391, False: 682]
  |  |  |  |  |  Branch (883:43): [True: 276, False: 115]
  |  |  |  |  ------------------
  |  |  |  |  884|  1.07k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 682, False: 115]
  |  |  |  |  |  Branch (884:43): [True: 644, False: 38]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3939|       |		/* old ack */
 3940|    920|		return;
 3941|    920|	} else if (asoc->last_acked_seq == cumack) {
  ------------------
  |  Branch (3941:13): [True: 0, False: 153]
  ------------------
 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.07k|	TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (3956:2): [True: 452, False: 153]
  ------------------
 3957|    452|		if (SCTP_TSN_GT(cumack, net->cwr_window_tsn)) {
  ------------------
  |  |  889|    452|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    452|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 76, False: 376]
  |  |  |  |  |  Branch (883:43): [True: 76, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|    452|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 376, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 376, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3958|       |			/* Drag along the window_tsn for cwr's */
 3959|    452|			net->cwr_window_tsn = cumack;
 3960|    452|		}
 3961|    452|		net->prev_cwnd = net->cwnd;
 3962|    452|		net->net_ack = 0;
 3963|    452|		net->net_ack2 = 0;
 3964|       |
 3965|       |		/*
 3966|       |		 * CMT: Reset CUC and Fast recovery algo variables before
 3967|       |		 * SACK processing
 3968|       |		 */
 3969|    452|		net->new_pseudo_cumack = 0;
 3970|    452|		net->will_exit_fast_recovery = 0;
 3971|    452|		if (stcb->asoc.cc_functions.sctp_cwnd_prepare_net_for_sack) {
  ------------------
  |  Branch (3971:7): [True: 0, False: 452]
  ------------------
 3972|      0|			(*stcb->asoc.cc_functions.sctp_cwnd_prepare_net_for_sack)(stcb, net);
 3973|      0|		}
 3974|    452|	}
 3975|    153|	if (!TAILQ_EMPTY(&asoc->sent_queue)) {
  ------------------
  |  Branch (3975:6): [True: 68, False: 85]
  ------------------
 3976|     68|		tp1 = TAILQ_LAST(&asoc->sent_queue,
 3977|     68|				 sctpchunk_listhead);
 3978|     68|		send_s = tp1->rec.data.tsn + 1;
 3979|     85|	} else {
 3980|     85|		send_s = asoc->sending_seq;
 3981|     85|	}
 3982|    153|	if (SCTP_TSN_GE(cumack, send_s)) {
  ------------------
  |  |  890|    153|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|    153|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|    306|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 38, False: 115]
  |  |  |  |  |  |  |  Branch (883:43): [True: 38, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|    306|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 115, False: 0]
  |  |  |  |  |  |  |  Branch (884:43): [True: 115, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3983|    153|		struct mbuf *op_err;
 3984|    153|		char msg[SCTP_DIAG_INFO_LEN];
 3985|       |
 3986|    153|		*abort_now = 1;
 3987|       |		/* XXX */
 3988|    153|		SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|    153|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 153]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 3989|    153|		              "Cum ack %8.8x greater or equal than TSN %8.8x",
 3990|    153|		              cumack, send_s);
 3991|    153|		op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|    153|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 3992|    153|		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_25;
  ------------------
  |  |  757|    153|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_25;
  ------------------
  |  |  793|    153|#define SCTP_LOC_25 0x00000019
  ------------------
 3993|    153|		sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    153|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3994|    153|		return;
 3995|    153|	}
 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.38k|{
 4433|  1.38k|	struct sctp_association *asoc;
 4434|  1.38k|	struct sctp_tmit_chunk *tp1, *tp2;
 4435|  1.38k|	uint32_t last_tsn, biggest_tsn_acked, biggest_tsn_newly_acked, this_sack_lowest_newack;
 4436|  1.38k|	uint16_t wake_him = 0;
 4437|  1.38k|	uint32_t send_s = 0;
 4438|  1.38k|	long j;
 4439|  1.38k|	int accum_moved = 0;
 4440|  1.38k|	int will_exit_fast_recovery = 0;
 4441|  1.38k|	uint32_t a_rwnd, old_rwnd;
 4442|  1.38k|	int win_probe_recovery = 0;
 4443|  1.38k|	int win_probe_recovered = 0;
 4444|  1.38k|	struct sctp_nets *net = NULL;
 4445|  1.38k|	int done_once;
 4446|  1.38k|	int rto_ok = 1;
 4447|  1.38k|	uint8_t reneged_all = 0;
 4448|  1.38k|	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.38k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  1.38k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.38k|	do {                         \
  |  |  |  |  113|  1.38k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.38k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.38k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.38k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4471|       |	/* CMT DAC algo */
 4472|  1.38k|	this_sack_lowest_newack = 0;
 4473|  1.38k|	SCTP_STAT_INCR(sctps_slowpath_sack);
  ------------------
  |  | 1112|  1.38k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  1.38k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.38k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4474|  1.38k|	last_tsn = cum_ack;
 4475|  1.38k|	cmt_dac_flag = flags & SCTP_SACK_CMT_DAC;
  ------------------
  |  |  521|  1.38k|#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.38k|	a_rwnd = rwnd;
 4484|       |
 4485|  1.38k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_SACK_ARRIVALS_ENABLE) {
  ------------------
  |  |  590|  1.38k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_SACK_ARRIVALS_ENABLE) {
  ------------------
  |  |  662|  1.38k|#define SCTP_LOG_SACK_ARRIVALS_ENABLE			0x00200000
  ------------------
  |  Branch (4485:6): [True: 0, False: 1.38k]
  ------------------
 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.38k|	old_rwnd = stcb->asoc.peers_rwnd;
 4491|  1.38k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|  1.38k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|  1.38k|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (4491:6): [True: 0, False: 1.38k]
  ------------------
 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.38k|	stcb->asoc.overall_error_count = 0;
 4499|  1.38k|	asoc = &stcb->asoc;
 4500|  1.38k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SACK_LOGGING_ENABLE) {
  ------------------
  |  |  590|  1.38k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SACK_LOGGING_ENABLE) {
  ------------------
  |  |  655|  1.38k|#define SCTP_SACK_LOGGING_ENABLE			0x00004000
  ------------------
  |  Branch (4500:6): [True: 0, False: 1.38k]
  ------------------
 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.38k|	if ((num_dup) && (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FR_LOGGING_ENABLE)) {
  ------------------
  |  |  590|    732|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if ((num_dup) && (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FR_LOGGING_ENABLE)) {
  ------------------
  |  |  647|    732|#define SCTP_FR_LOGGING_ENABLE				0x00000040
  ------------------
  |  Branch (4508:6): [True: 732, False: 653]
  |  Branch (4508:19): [True: 0, False: 732]
  ------------------
 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.38k|	if (!TAILQ_EMPTY(&asoc->sent_queue)) {
  ------------------
  |  Branch (4522:6): [True: 469, False: 916]
  ------------------
 4523|    469|		tp1 = TAILQ_LAST(&asoc->sent_queue,
 4524|    469|				 sctpchunk_listhead);
 4525|    469|		send_s = tp1->rec.data.tsn + 1;
 4526|    916|	} else {
 4527|    916|		tp1 = NULL;
 4528|    916|		send_s = asoc->sending_seq;
 4529|    916|	}
 4530|  1.38k|	if (SCTP_TSN_GE(cum_ack, send_s)) {
  ------------------
  |  |  890|  1.38k|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|  1.38k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  2.77k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 122, False: 1.26k]
  |  |  |  |  |  |  |  Branch (883:43): [True: 10, False: 112]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  2.77k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 1.26k, False: 112]
  |  |  |  |  |  |  |  Branch (884:43): [True: 46, False: 1.21k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 1.32k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4531|     56|		struct mbuf *op_err;
 4532|     56|		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|     56|		SCTP_PRINTF("NEW cum_ack:%x send_s:%x is smaller or equal\n",
  ------------------
  |  |  548|     56|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|     56|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 56]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 4539|     56|			    cum_ack, send_s);
 4540|     56|		if (tp1) {
  ------------------
  |  Branch (4540:7): [True: 3, False: 53]
  ------------------
 4541|      3|			SCTP_PRINTF("Got send_s from tsn:%x + 1 of tp1: %p\n",
  ------------------
  |  |  548|      3|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|      3|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 4542|      3|				    tp1->rec.data.tsn, (void *)tp1);
 4543|      3|		}
 4544|     56|	hopeless_peer:
 4545|     56|		*abort_now = 1;
 4546|       |		/* XXX */
 4547|     56|		SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|     56|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 56]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 4548|     56|		              "Cum ack %8.8x greater or equal than TSN %8.8x",
 4549|     56|		              cum_ack, send_s);
 4550|     56|		op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     56|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 4551|     56|		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_29;
  ------------------
  |  |  757|     56|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_29;
  ------------------
  |  |  797|     56|#define SCTP_LOC_29 0x0000001d
  ------------------
 4552|     56|		sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     56|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 4553|     56|		return;
 4554|     56|	}
 4555|       |	/**********************/
 4556|       |	/* 1) check the range */
 4557|       |	/**********************/
 4558|  1.32k|	if (SCTP_TSN_GT(asoc->last_acked_seq, last_tsn)) {
  ------------------
  |  |  889|  1.32k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  1.32k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 1.21k, False: 112]
  |  |  |  |  |  Branch (883:43): [True: 1.21k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  1.32k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 112, False: 0]
  |  |  |  |  |  Branch (884:43): [True: 112, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4559|       |		/* acking something behind */
 4560|  1.32k|		return;
 4561|  1.32k|	}
 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.04k|{
 5287|       |	/* Copy cum-ack */
 5288|  1.04k|	uint32_t cum_ack, a_rwnd;
 5289|       |
 5290|  1.04k|	cum_ack = ntohl(cp->cumulative_tsn_ack);
 5291|       |	/* Arrange so a_rwnd does NOT change */
 5292|  1.04k|	a_rwnd = stcb->asoc.peers_rwnd + stcb->asoc.total_flight;
 5293|       |
 5294|       |	/* Now call the express sack handling */
 5295|  1.04k|	sctp_express_handle_sack(stcb, cum_ack, a_rwnd, abort_flag, 0);
 5296|  1.04k|}
sctp_handle_forward_tsn:
 5554|  3.94k|{
 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.94k|	struct sctp_association *asoc;
 5569|  3.94k|	uint32_t new_cum_tsn, gap;
 5570|  3.94k|	unsigned int i, fwd_sz, m_size;
 5571|  3.94k|	struct sctp_stream_in *strm;
 5572|  3.94k|	struct sctp_queued_to_read *control, *ncontrol;
 5573|       |
 5574|  3.94k|	asoc = &stcb->asoc;
 5575|  3.94k|	if ((fwd_sz = ntohs(fwd->ch.chunk_length)) < sizeof(struct sctp_forward_tsn_chunk)) {
  ------------------
  |  Branch (5575:6): [True: 0, False: 3.94k]
  ------------------
 5576|      0|		SCTPDBG(SCTP_DEBUG_INDATA1,
 5577|      0|			"Bad size too small/big fwd-tsn\n");
 5578|      0|		return;
 5579|      0|	}
 5580|  3.94k|	m_size = (stcb->asoc.mapping_array_size << 3);
 5581|       |	/*************************************************************/
 5582|       |	/* 1. Here we update local cumTSN and shift the bitmap array */
 5583|       |	/*************************************************************/
 5584|  3.94k|	new_cum_tsn = ntohl(fwd->new_cumulative_tsn);
 5585|       |
 5586|  3.94k|	if (SCTP_TSN_GE(asoc->cumulative_tsn, new_cum_tsn)) {
  ------------------
  |  |  890|  3.94k|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|  3.94k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  7.89k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 2.45k, False: 1.48k]
  |  |  |  |  |  |  |  Branch (883:43): [True: 1.04k, False: 1.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  7.89k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 976, False: 1.92k]
  |  |  |  |  |  |  |  Branch (884:43): [True: 922, False: 54]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 511, False: 1.47k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5587|       |		/* Already got there ... */
 5588|  2.47k|		return;
 5589|  2.47k|	}
 5590|       |	/*
 5591|       |	 * now we know the new TSN is more advanced, let's find the actual
 5592|       |	 * gap
 5593|       |	 */
 5594|  1.47k|	SCTP_CALC_TSN_TO_GAP(gap, new_cum_tsn, asoc->mapping_array_base_tsn);
  ------------------
  |  |  899|  1.47k|#define SCTP_CALC_TSN_TO_GAP(gap, tsn, mapping_tsn) do { \
  |  |  900|  1.47k|	                if (tsn >= mapping_tsn) { \
  |  |  ------------------
  |  |  |  Branch (900:22): [True: 1.44k, False: 25]
  |  |  ------------------
  |  |  901|  1.44k|						gap = tsn - mapping_tsn; \
  |  |  902|  1.44k|					} else { \
  |  |  903|     25|						gap = (MAX_TSN - mapping_tsn) + tsn + 1; \
  |  |  ------------------
  |  |  |  |  310|     25|#define MAX_TSN	0xffffffff
  |  |  ------------------
  |  |  904|     25|					} \
  |  |  905|  1.47k|                  } while (0)
  |  |  ------------------
  |  |  |  Branch (905:28): [Folded, False: 1.47k]
  |  |  ------------------
  ------------------
 5595|  1.47k|	asoc->cumulative_tsn = new_cum_tsn;
 5596|  1.47k|	if (gap >= m_size) {
  ------------------
  |  Branch (5596:6): [True: 796, False: 674]
  ------------------
 5597|    796|		if ((long)gap > sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv)) {
  ------------------
  |  |   89|    796|#define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|    796|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    796|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 796, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|    794|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    794|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 794, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (89:41): [True: 794, False: 2]
  |  |  ------------------
  ------------------
  |  Branch (5597:7): [True: 89, False: 707]
  ------------------
 5598|     89|			struct mbuf *op_err;
 5599|     89|			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|     89|			*abort_flag = 1;
 5606|     89|			SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|     89|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 89]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 5607|     89|			              "New cum ack %8.8x too high, highest TSN %8.8x",
 5608|     89|			              new_cum_tsn, asoc->highest_tsn_inside_map);
 5609|     89|			op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     89|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 5610|     89|			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_37;
  ------------------
  |  |  757|     89|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_37;
  ------------------
  |  |  805|     89|#define SCTP_LOC_37 0x00000025
  ------------------
 5611|     89|			sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     89|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 5612|     89|			return;
 5613|     89|		}
 5614|    707|		SCTP_STAT_INCR(sctps_fwdtsn_map_over);
  ------------------
  |  | 1112|    707|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    707|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    707|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5615|       |
 5616|    707|		memset(stcb->asoc.mapping_array, 0, stcb->asoc.mapping_array_size);
 5617|    707|		asoc->mapping_array_base_tsn = new_cum_tsn + 1;
 5618|    707|		asoc->highest_tsn_inside_map = new_cum_tsn;
 5619|       |
 5620|    707|		memset(stcb->asoc.nr_mapping_array, 0, stcb->asoc.mapping_array_size);
 5621|    707|		asoc->highest_tsn_inside_nr_map = new_cum_tsn;
 5622|       |
 5623|    707|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  590|    707|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  649|    707|#define SCTP_MAP_LOGGING_ENABLE				0x00000100
  ------------------
  |  Branch (5623:7): [True: 0, False: 707]
  ------------------
 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|    707|	} else {
 5627|    674|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    674|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    674|	do {                         \
  |  |  |  |  113|    674|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 674]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    674|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 674]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5628|  16.2k|		for (i = 0; i <= gap; i++) {
  ------------------
  |  Branch (5628:15): [True: 15.5k, False: 674]
  ------------------
 5629|  15.5k|			if (!SCTP_IS_TSN_PRESENT(asoc->mapping_array, i) &&
  ------------------
  |  |  896|  31.0k|#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
  ------------------
  |  Branch (5629:8): [True: 15.5k, False: 0]
  ------------------
 5630|  15.5k|			    !SCTP_IS_TSN_PRESENT(asoc->nr_mapping_array, i)) {
  ------------------
  |  |  896|  15.5k|#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
  ------------------
  |  Branch (5630:8): [True: 15.4k, False: 66]
  ------------------
 5631|  15.4k|				SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, i);
  ------------------
  |  |  897|  15.4k|#define SCTP_SET_TSN_PRESENT(arry, gap) (arry[(gap >> 3)] |= (0x01 << ((gap & 0x07))))
  ------------------
 5632|  15.4k|				if (SCTP_TSN_GT(asoc->mapping_array_base_tsn + i, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|  15.4k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  15.4k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 15.4k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  15.4k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 15.3k, False: 107]
  |  |  |  |  |  Branch (884:43): [True: 15.3k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5633|  15.3k|					asoc->highest_tsn_inside_nr_map = asoc->mapping_array_base_tsn + i;
 5634|  15.3k|				}
 5635|  15.4k|			}
 5636|  15.5k|		}
 5637|    674|	}
 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.38k|	if (asoc->idata_supported == 0) {
  ------------------
  |  Branch (5643:6): [True: 694, False: 687]
  ------------------
 5644|    694|		uint16_t sid;
 5645|       |
 5646|       |		/* Flush all the un-ordered data based on cum-tsn */
 5647|    694|		SCTP_INP_READ_LOCK(stcb->sctp_ep);
  ------------------
  |  |  346|    694|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    694|	do {                         \
  |  |  |  |  113|    694|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 694]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    694|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 694]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5648|   126k|		for (sid = 0; sid < asoc->streamincnt; sid++) {
  ------------------
  |  Branch (5648:17): [True: 125k, False: 694]
  ------------------
 5649|   125k|			strm = &asoc->strmin[sid];
 5650|   125k|			if (!TAILQ_EMPTY(&strm->uno_inqueue)) {
  ------------------
  |  Branch (5650:8): [True: 0, False: 125k]
  ------------------
 5651|      0|				sctp_flush_reassm_for_str_seq(stcb, asoc, strm, TAILQ_FIRST(&strm->uno_inqueue), 0, new_cum_tsn);
 5652|      0|			}
 5653|   125k|		}
 5654|    694|		SCTP_INP_READ_UNLOCK(stcb->sctp_ep);
  ------------------
  |  |  348|    694|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    694|	do {                         \
  |  |  |  |  113|    694|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 694]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    694|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 694]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5655|    694|	}
 5656|       |	/*******************************************************/
 5657|       |	/* 3. Update the PR-stream re-ordering queues and fix  */
 5658|       |	/*    delivery issues as needed.                       */
 5659|       |	/*******************************************************/
 5660|  1.38k|	fwd_sz -= sizeof(*fwd);
 5661|  1.38k|	if (m && fwd_sz) {
  ------------------
  |  Branch (5661:6): [True: 1.31k, False: 64]
  |  Branch (5661:11): [True: 794, False: 523]
  ------------------
 5662|       |		/* New method. */
 5663|    794|		unsigned int num_str;
 5664|    794|		uint32_t mid;
 5665|    794|		uint16_t sid;
 5666|    794|		uint16_t ordered, flags;
 5667|    794|		struct sctp_strseq *stseq, strseqbuf;
 5668|    794|		struct sctp_strseq_mid *stseq_m, strseqbuf_m;
 5669|    794|		offset += sizeof(*fwd);
 5670|       |
 5671|    794|		SCTP_INP_READ_LOCK(stcb->sctp_ep);
  ------------------
  |  |  346|    794|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    794|	do {                         \
  |  |  |  |  113|    794|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 794]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    794|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 794]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5672|    794|		if (asoc->idata_supported) {
  ------------------
  |  Branch (5672:7): [True: 450, False: 344]
  ------------------
 5673|    450|			num_str = fwd_sz / sizeof(struct sctp_strseq_mid);
 5674|    450|		} else {
 5675|    344|			num_str = fwd_sz / sizeof(struct sctp_strseq);
 5676|    344|		}
 5677|  7.21k|		for (i = 0; i < num_str; i++) {
  ------------------
  |  Branch (5677:15): [True: 6.63k, False: 582]
  ------------------
 5678|  6.63k|			if (asoc->idata_supported) {
  ------------------
  |  Branch (5678:8): [True: 1.70k, False: 4.92k]
  ------------------
 5679|  1.70k|				stseq_m = (struct sctp_strseq_mid *)sctp_m_getptr(m, offset,
 5680|  1.70k|									    sizeof(struct sctp_strseq_mid),
 5681|  1.70k|									    (uint8_t *)&strseqbuf_m);
 5682|  1.70k|				offset += sizeof(struct sctp_strseq_mid);
 5683|  1.70k|				if (stseq_m == NULL) {
  ------------------
  |  Branch (5683:9): [True: 0, False: 1.70k]
  ------------------
 5684|      0|					break;
 5685|      0|				}
 5686|  1.70k|				sid = ntohs(stseq_m->sid);
 5687|  1.70k|				mid = ntohl(stseq_m->mid);
 5688|  1.70k|				flags = ntohs(stseq_m->flags);
 5689|  1.70k|				if (flags & PR_SCTP_UNORDERED_FLAG) {
  ------------------
  |  |  343|  1.70k|#define PR_SCTP_UNORDERED_FLAG 0x0001
  ------------------
  |  Branch (5689:9): [True: 449, False: 1.25k]
  ------------------
 5690|    449|					ordered = 0;
 5691|  1.25k|				} else {
 5692|  1.25k|					ordered = 1;
 5693|  1.25k|				}
 5694|  4.92k|			} else {
 5695|  4.92k|				stseq = (struct sctp_strseq *)sctp_m_getptr(m, offset,
 5696|  4.92k|									    sizeof(struct sctp_strseq),
 5697|  4.92k|									    (uint8_t *)&strseqbuf);
 5698|  4.92k|				offset += sizeof(struct sctp_strseq);
 5699|  4.92k|				if (stseq == NULL) {
  ------------------
  |  Branch (5699:9): [True: 0, False: 4.92k]
  ------------------
 5700|      0|					break;
 5701|      0|				}
 5702|  4.92k|				sid = ntohs(stseq->sid);
 5703|  4.92k|				mid = (uint32_t)ntohs(stseq->ssn);
 5704|  4.92k|				ordered = 1;
 5705|  4.92k|			}
 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|  6.63k|			if (sid >= asoc->streamincnt) {
  ------------------
  |  Branch (5715:8): [True: 212, False: 6.41k]
  ------------------
 5716|       |				/* screwed up streams, stop!  */
 5717|    212|				break;
 5718|    212|			}
 5719|  6.41k|			if ((asoc->str_of_pdapi == sid) &&
  ------------------
  |  Branch (5719:8): [True: 5.17k, False: 1.24k]
  ------------------
 5720|  5.17k|			    (asoc->ssn_of_pdapi == mid)) {
  ------------------
  |  Branch (5720:8): [True: 1.34k, False: 3.83k]
  ------------------
 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.34k|				asoc->fragmented_delivery_inprogress = 0;
 5726|  1.34k|			}
 5727|  6.41k|			strm = &asoc->strmin[sid];
 5728|  6.41k|			if (ordered) {
  ------------------
  |  Branch (5728:8): [True: 5.98k, False: 438]
  ------------------
 5729|  5.98k|				TAILQ_FOREACH_SAFE(control, &strm->inqueue, next_instrm, ncontrol) {
  ------------------
  |  | 1129|  5.98k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  5.98k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 5.98k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  5.98k|              (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|  5.98k|			} else {
 5735|    438|				if (asoc->idata_supported) {
  ------------------
  |  Branch (5735:9): [True: 438, False: 0]
  ------------------
 5736|    438|					TAILQ_FOREACH_SAFE(control, &strm->uno_inqueue, next_instrm, ncontrol) {
  ------------------
  |  | 1129|    438|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    438|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 438]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|    438|              (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|    438|				} 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|    438|			}
 5747|  15.0M|			TAILQ_FOREACH(control, &stcb->sctp_ep->read_queue, next) {
  ------------------
  |  Branch (5747:4): [True: 15.0M, False: 5.35k]
  ------------------
 5748|  15.0M|				if ((control->sinfo_stream == sid) &&
  ------------------
  |  Branch (5748:9): [True: 14.0M, False: 940k]
  ------------------
 5749|  14.0M|				    (SCTP_MID_EQ(asoc->idata_supported, control->mid, mid))) {
  ------------------
  |  |  893|  14.0M|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:31): [True: 1.46k, False: 14.0M]
  |  |  ------------------
  ------------------
  |  Branch (5749:9): [True: 885, False: 14.0M]
  ------------------
 5750|    885|					control->pdapi_aborted = 1;
 5751|    885|					control->end_added = 1;
 5752|    885|					if (control->on_strm_q == SCTP_ON_ORDERED) {
  ------------------
  |  |  553|    885|#define SCTP_ON_ORDERED 1
  ------------------
  |  Branch (5752:10): [True: 0, False: 885]
  ------------------
 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|    885|					} else if (control->on_strm_q == SCTP_ON_UNORDERED) {
  ------------------
  |  |  554|    885|#define SCTP_ON_UNORDERED 2
  ------------------
  |  Branch (5764:17): [True: 0, False: 885]
  ------------------
 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|    885|					} else if (control->on_strm_q) {
  ------------------
  |  Branch (5767:17): [True: 0, False: 885]
  ------------------
 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|    885|					control->on_strm_q = 0;
 5773|    885|					sctp_ulp_notify(SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION,
  ------------------
  |  |  717|    885|#define SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION 15
  ------------------
 5774|    885|					                stcb,
 5775|    885|					                SCTP_PARTIAL_DELIVERY_ABORTED,
  ------------------
  |  |  451|    885|#define SCTP_PARTIAL_DELIVERY_ABORTED	0x0001
  ------------------
 5776|    885|					                (void *)control,
 5777|    885|					                SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    885|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 5778|    885|					break;
 5779|  15.0M|				} else if ((control->sinfo_stream == sid) &&
  ------------------
  |  Branch (5779:16): [True: 14.0M, False: 940k]
  ------------------
 5780|  14.0M|					   SCTP_MID_GT(asoc->idata_supported, control->mid, mid)) {
  ------------------
  |  |  891|  14.0M|#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.04k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 1.04k, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 133, False: 911]
  |  |  |  |  ------------------
  |  |  |  |  884|  1.04k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 911]
  |  |  |  |  |  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|  14.0M|#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (880:32): [True: 14.0M, False: 0]
  |  |  |  |  |  Branch (880:43): [True: 49, False: 14.0M]
  |  |  |  |  ------------------
  |  |  |  |  881|  14.0M|                              ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (881:32): [True: 0, False: 14.0M]
  |  |  |  |  |  Branch (881:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (891:30): [True: 182, False: 14.0M]
  |  |  |  Branch (891:31): [True: 1.04k, False: 14.0M]
  |  |  ------------------
  ------------------
 5781|       |					/* We are past our victim SSN */
 5782|    182|					break;
 5783|    182|				}
 5784|  15.0M|			}
 5785|  6.41k|			if (SCTP_MID_GT(asoc->idata_supported, mid, strm->last_mid_delivered)) {
  ------------------
  |  |  891|  6.41k|#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.64k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 1.00k, False: 642]
  |  |  |  |  |  Branch (883:43): [True: 371, False: 632]
  |  |  |  |  ------------------
  |  |  |  |  884|  1.64k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 250, False: 1.02k]
  |  |  |  |  |  Branch (884:43): [True: 127, 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|  4.77k|#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (880:32): [True: 3.52k, False: 1.24k]
  |  |  |  |  |  Branch (880:43): [True: 368, False: 3.15k]
  |  |  |  |  ------------------
  |  |  |  |  881|  4.77k|                              ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (881:32): [True: 414, False: 3.99k]
  |  |  |  |  |  Branch (881:43): [True: 175, False: 239]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (891:30): [True: 1.04k, False: 5.37k]
  |  |  |  Branch (891:31): [True: 1.64k, False: 4.77k]
  |  |  ------------------
  ------------------
 5786|       |				/* Update the sequence number */
 5787|  1.04k|				strm->last_mid_delivered = mid;
 5788|  1.04k|			}
 5789|       |			/* now kick the stream the new way */
 5790|       |			/*sa_ignore NO_NULL_CHK*/
 5791|  6.41k|			sctp_kick_prsctp_reorder_queue(stcb, strm);
 5792|  6.41k|		}
 5793|    794|		SCTP_INP_READ_UNLOCK(stcb->sctp_ep);
  ------------------
  |  |  348|    794|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    794|	do {                         \
  |  |  |  |  113|    794|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 794]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    794|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 794]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5794|    794|	}
 5795|       |	/*
 5796|       |	 * Now slide thing forward.
 5797|       |	 */
 5798|  1.38k|	sctp_slide_mapping_arrays(stcb);
 5799|  1.38k|}
sctp_indata.c:sctp_process_a_data_chunk:
 1689|  13.7k|{
 1690|  13.7k|	struct sctp_tmit_chunk *chk = NULL; /* make gcc happy */
 1691|  13.7k|	struct sctp_stream_in *strm;
 1692|  13.7k|	uint32_t tsn, fsn, gap, mid;
 1693|  13.7k|	struct mbuf *dmbuf;
 1694|  13.7k|	int the_len;
 1695|  13.7k|	int need_reasm_check = 0;
 1696|  13.7k|	uint16_t sid;
 1697|  13.7k|	struct mbuf *op_err;
 1698|  13.7k|	char msg[SCTP_DIAG_INFO_LEN];
 1699|  13.7k|	struct sctp_queued_to_read *control, *ncontrol;
 1700|  13.7k|	uint32_t ppid;
 1701|  13.7k|	uint8_t chk_flags;
 1702|  13.7k|	struct sctp_stream_reset_list *liste;
 1703|  13.7k|	int ordered;
 1704|  13.7k|	size_t clen;
 1705|  13.7k|	int created_control = 0;
 1706|       |
 1707|  13.7k|	if (chk_type == SCTP_IDATA) {
  ------------------
  |  |  474|  13.7k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (1707:6): [True: 3.95k, False: 9.78k]
  ------------------
 1708|  3.95k|		struct sctp_idata_chunk *chunk, chunk_buf;
 1709|       |
 1710|  3.95k|		chunk = (struct sctp_idata_chunk *)sctp_m_getptr(*m, offset,
 1711|  3.95k|		                                                 sizeof(struct sctp_idata_chunk), (uint8_t *)&chunk_buf);
 1712|  3.95k|		chk_flags = chunk->ch.chunk_flags;
 1713|  3.95k|		clen = sizeof(struct sctp_idata_chunk);
 1714|  3.95k|		tsn = ntohl(chunk->dp.tsn);
 1715|  3.95k|		sid = ntohs(chunk->dp.sid);
 1716|  3.95k|		mid = ntohl(chunk->dp.mid);
 1717|  3.95k|		if (chk_flags & SCTP_DATA_FIRST_FRAG) {
  ------------------
  |  |  513|  3.95k|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (1717:7): [True: 2.51k, False: 1.44k]
  ------------------
 1718|  2.51k|			fsn = 0;
 1719|  2.51k|			ppid = chunk->dp.ppid_fsn.ppid;
 1720|  2.51k|		} else {
 1721|  1.44k|			fsn = ntohl(chunk->dp.ppid_fsn.fsn);
 1722|  1.44k|			ppid = 0xffffffff; /* Use as an invalid value. */
 1723|  1.44k|		}
 1724|  9.78k|	} else {
 1725|  9.78k|		struct sctp_data_chunk *chunk, chunk_buf;
 1726|       |
 1727|  9.78k|		chunk = (struct sctp_data_chunk *)sctp_m_getptr(*m, offset,
 1728|  9.78k|		                                                sizeof(struct sctp_data_chunk), (uint8_t *)&chunk_buf);
 1729|  9.78k|		chk_flags = chunk->ch.chunk_flags;
 1730|  9.78k|		clen = sizeof(struct sctp_data_chunk);
 1731|  9.78k|		tsn = ntohl(chunk->dp.tsn);
 1732|  9.78k|		sid = ntohs(chunk->dp.sid);
 1733|  9.78k|		mid = (uint32_t)(ntohs(chunk->dp.ssn));
 1734|  9.78k|		fsn = tsn;
 1735|  9.78k|		ppid = chunk->dp.ppid;
 1736|  9.78k|	}
 1737|  13.7k|	if ((size_t)chk_length == clen) {
  ------------------
  |  Branch (1737:6): [True: 7, False: 13.7k]
  ------------------
 1738|       |		/*
 1739|       |		 * Need to send an abort since we had a
 1740|       |		 * empty data chunk.
 1741|       |		 */
 1742|      7|		op_err = sctp_generate_no_user_data_cause(tsn);
 1743|      7|		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_16;
  ------------------
  |  |  757|      7|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_16;
  ------------------
  |  |  784|      7|#define SCTP_LOC_16 0x00000010
  ------------------
 1744|      7|		sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      7|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1745|      7|		*abort_flag = 1;
 1746|      7|		return (0);
 1747|      7|	}
 1748|  13.7k|	if ((chk_flags & SCTP_DATA_SACK_IMMEDIATELY) == SCTP_DATA_SACK_IMMEDIATELY) {
  ------------------
  |  |  516|  13.7k|#define SCTP_DATA_SACK_IMMEDIATELY 0x08
  ------------------
              	if ((chk_flags & SCTP_DATA_SACK_IMMEDIATELY) == SCTP_DATA_SACK_IMMEDIATELY) {
  ------------------
  |  |  516|  13.7k|#define SCTP_DATA_SACK_IMMEDIATELY 0x08
  ------------------
  |  Branch (1748:6): [True: 5.72k, False: 8.01k]
  ------------------
 1749|  5.72k|		asoc->send_sack = 1;
 1750|  5.72k|	}
 1751|  13.7k|	ordered = ((chk_flags & SCTP_DATA_UNORDERED) == 0);
  ------------------
  |  |  515|  13.7k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
 1752|  13.7k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  590|  13.7k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  649|  13.7k|#define SCTP_MAP_LOGGING_ENABLE				0x00000100
  ------------------
  |  Branch (1752:6): [True: 0, False: 13.7k]
  ------------------
 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.7k|	if (stcb == NULL) {
  ------------------
  |  Branch (1755:6): [True: 0, False: 13.7k]
  ------------------
 1756|      0|		return (0);
 1757|      0|	}
 1758|  13.7k|	SCTP_LTRACE_CHK(stcb->sctp_ep, stcb, chk_type, tsn);
 1759|  13.7k|	if (SCTP_TSN_GE(asoc->cumulative_tsn, tsn)) {
  ------------------
  |  |  890|  13.7k|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|  13.7k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  27.4k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 9.52k, False: 4.21k]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 9.52k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  27.4k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 3.66k, False: 10.0k]
  |  |  |  |  |  |  |  Branch (884:43): [True: 2.13k, False: 1.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 548, False: 11.0k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1760|       |		/* It is a duplicate */
 1761|  2.67k|		SCTP_STAT_INCR(sctps_recvdupdata);
  ------------------
  |  | 1112|  2.67k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  2.67k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  2.67k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1762|  2.67k|		if (asoc->numduptsns < SCTP_MAX_DUP_TSNS) {
  ------------------
  |  |  561|  2.67k|#define SCTP_MAX_DUP_TSNS	20
  ------------------
  |  Branch (1762:7): [True: 1.83k, False: 846]
  ------------------
 1763|       |			/* Record a dup for the next outbound sack */
 1764|  1.83k|			asoc->dup_tsns[asoc->numduptsns] = tsn;
 1765|  1.83k|			asoc->numduptsns++;
 1766|  1.83k|		}
 1767|  2.67k|		asoc->send_sack = 1;
 1768|  2.67k|		return (0);
 1769|  2.67k|	}
 1770|       |	/* Calculate the number of TSN's between the base and this TSN */
 1771|  11.0k|	SCTP_CALC_TSN_TO_GAP(gap, tsn, asoc->mapping_array_base_tsn);
  ------------------
  |  |  899|  11.0k|#define SCTP_CALC_TSN_TO_GAP(gap, tsn, mapping_tsn) do { \
  |  |  900|  11.0k|	                if (tsn >= mapping_tsn) { \
  |  |  ------------------
  |  |  |  Branch (900:22): [True: 9.52k, False: 1.53k]
  |  |  ------------------
  |  |  901|  9.52k|						gap = tsn - mapping_tsn; \
  |  |  902|  9.52k|					} else { \
  |  |  903|  1.53k|						gap = (MAX_TSN - mapping_tsn) + tsn + 1; \
  |  |  ------------------
  |  |  |  |  310|  1.53k|#define MAX_TSN	0xffffffff
  |  |  ------------------
  |  |  904|  1.53k|					} \
  |  |  905|  11.0k|                  } while (0)
  |  |  ------------------
  |  |  |  Branch (905:28): [Folded, False: 11.0k]
  |  |  ------------------
  ------------------
 1772|  11.0k|	if (gap >= (SCTP_MAPPING_ARRAY << 3)) {
  ------------------
  |  |  506|  11.0k|#define SCTP_MAPPING_ARRAY	512
  ------------------
  |  Branch (1772:6): [True: 1.84k, False: 9.21k]
  ------------------
 1773|       |		/* Can't hold the bit in the mapping at max array, toss it */
 1774|  1.84k|		return (0);
 1775|  1.84k|	}
 1776|  9.21k|	if (gap >= (uint32_t) (asoc->mapping_array_size << 3)) {
  ------------------
  |  Branch (1776:6): [True: 2.22k, False: 6.98k]
  ------------------
 1777|  2.22k|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  2.22k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  2.22k|	do {                         \
  |  |  |  |  113|  2.22k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.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|  2.22k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.22k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1778|  2.22k|		if (sctp_expand_mapping_array(asoc, gap)) {
  ------------------
  |  Branch (1778:7): [True: 0, False: 2.22k]
  ------------------
 1779|       |			/* Can't expand, drop it */
 1780|      0|			return (0);
 1781|      0|		}
 1782|  2.22k|	}
 1783|  9.21k|	if (SCTP_TSN_GT(tsn, *high_tsn)) {
  ------------------
  |  |  889|  9.21k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  9.21k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 4.78k, False: 4.42k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 4.78k]
  |  |  |  |  ------------------
  |  |  |  |  884|  9.21k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 3.46k, False: 5.74k]
  |  |  |  |  |  Branch (884:43): [True: 3.46k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1784|  3.46k|		*high_tsn = tsn;
 1785|  3.46k|	}
 1786|       |	/* See if we have received this one already */
 1787|  9.21k|	if (SCTP_IS_TSN_PRESENT(asoc->mapping_array, gap) ||
  ------------------
  |  |  896|  18.4k|#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
  |  |  ------------------
  |  |  |  Branch (896:40): [True: 986, False: 8.22k]
  |  |  ------------------
  ------------------
 1788|  8.22k|	    SCTP_IS_TSN_PRESENT(asoc->nr_mapping_array, gap)) {
  ------------------
  |  |  896|  8.22k|#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
  |  |  ------------------
  |  |  |  Branch (896:40): [True: 916, False: 7.30k]
  |  |  ------------------
  ------------------
 1789|  1.90k|		SCTP_STAT_INCR(sctps_recvdupdata);
  ------------------
  |  | 1112|  1.90k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  1.90k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.90k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1790|  1.90k|		if (asoc->numduptsns < SCTP_MAX_DUP_TSNS) {
  ------------------
  |  |  561|  1.90k|#define SCTP_MAX_DUP_TSNS	20
  ------------------
  |  Branch (1790:7): [True: 884, False: 1.01k]
  ------------------
 1791|       |			/* Record a dup for the next outbound sack */
 1792|    884|			asoc->dup_tsns[asoc->numduptsns] = tsn;
 1793|    884|			asoc->numduptsns++;
 1794|    884|		}
 1795|  1.90k|		asoc->send_sack = 1;
 1796|  1.90k|		return (0);
 1797|  1.90k|	}
 1798|       |	/*
 1799|       |	 * Check to see about the GONE flag, duplicates would cause a sack
 1800|       |	 * to be sent up above
 1801|       |	 */
 1802|  7.30k|	if (((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
  ------------------
  |  |  546|  7.30k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (1802:7): [True: 0, False: 7.30k]
  ------------------
 1803|  7.30k|	     (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|  7.30k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (1803:7): [True: 0, False: 7.30k]
  ------------------
 1804|  7.30k|	     (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET))) {
  ------------------
  |  |  464|  7.30k|#define SCTP_STATE_CLOSED_SOCKET	0x0100
  ------------------
  |  Branch (1804:7): [True: 0, False: 7.30k]
  ------------------
 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|  7.30k|	if (sid >= asoc->streamincnt) {
  ------------------
  |  Branch (1821:6): [True: 342, False: 6.96k]
  ------------------
 1822|    342|		struct sctp_error_invalid_stream *cause;
 1823|       |
 1824|    342|		op_err = sctp_get_mbuf_for_msg(sizeof(struct sctp_error_invalid_stream),
 1825|    342|		                               0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    342|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		                               0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    342|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 1826|    342|		if (op_err != NULL) {
  ------------------
  |  Branch (1826:7): [True: 342, False: 0]
  ------------------
 1827|       |			/* add some space up front so prepend will work well */
 1828|    342|			SCTP_BUF_RESV_UF(op_err, sizeof(struct sctp_chunkhdr));
  ------------------
  |  |  804|    342|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    342|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 1829|    342|			cause = mtod(op_err, struct sctp_error_invalid_stream *);
  ------------------
  |  |   96|    342|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    342|#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|    342|			SCTP_BUF_LEN(op_err) = sizeof(struct sctp_error_invalid_stream);
  ------------------
  |  |  801|    342|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    342|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 1836|    342|			cause->cause.code = htons(SCTP_CAUSE_INVALID_STREAM);
 1837|    342|			cause->cause.length = htons(sizeof(struct sctp_error_invalid_stream));
 1838|    342|			cause->stream_id = htons(sid);
 1839|    342|			cause->reserved = htons(0);
 1840|    342|			sctp_queue_op_err(stcb, op_err);
 1841|    342|		}
 1842|    342|		SCTP_STAT_INCR(sctps_badsid);
  ------------------
  |  | 1112|    342|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    342|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    342|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1843|    342|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    342|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    342|	do {                         \
  |  |  |  |  113|    342|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 342]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    342|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 342]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1844|    342|		SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, gap);
  ------------------
  |  |  897|    342|#define SCTP_SET_TSN_PRESENT(arry, gap) (arry[(gap >> 3)] |= (0x01 << ((gap & 0x07))))
  ------------------
 1845|    342|		if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|    342|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    342|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 99, False: 243]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 99]
  |  |  |  |  ------------------
  |  |  |  |  884|    342|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 243, False: 99]
  |  |  |  |  |  Branch (884:43): [True: 243, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1846|    243|			asoc->highest_tsn_inside_nr_map = tsn;
 1847|    243|		}
 1848|    342|		if (tsn == (asoc->cumulative_tsn + 1)) {
  ------------------
  |  Branch (1848:7): [True: 20, False: 322]
  ------------------
 1849|       |			/* Update cum-ack */
 1850|     20|			asoc->cumulative_tsn = tsn;
 1851|     20|		}
 1852|    342|		return (0);
 1853|    342|	}
 1854|       |	/*
 1855|       |	 * If its a fragmented message, lets see if we can
 1856|       |	 * find the control on the reassembly queues.
 1857|       |	 */
 1858|  6.96k|	if ((chk_type == SCTP_IDATA) &&
  ------------------
  |  |  474|  6.96k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (1858:6): [True: 2.36k, False: 4.60k]
  ------------------
 1859|  2.36k|	    ((chk_flags & SCTP_DATA_FIRST_FRAG) == 0) &&
  ------------------
  |  |  513|  2.36k|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (1859:6): [True: 1.14k, False: 1.21k]
  ------------------
 1860|  1.14k|	    (fsn == 0)) {
  ------------------
  |  Branch (1860:6): [True: 2, False: 1.14k]
  ------------------
 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|      2|		SCTP_SNPRINTF(msg, sizeof(msg), "FSN zero for MID=%8.8x, but flags=%2.2x", mid, chk_flags);
  ------------------
  |  |  820|      2|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 2]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 1868|      2|		goto err_out;
 1869|      2|	}
 1870|  6.96k|	control = sctp_find_reasm_entry(&asoc->strmin[sid], mid, ordered, asoc->idata_supported);
 1871|  6.96k|	SCTPDBG(SCTP_DEBUG_XXX, "chunk_flags:0x%x look for control on queues %p\n",
 1872|  6.96k|		chk_flags, control);
 1873|  6.96k|	if ((chk_flags & SCTP_DATA_NOT_FRAG) != SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  6.96k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              	if ((chk_flags & SCTP_DATA_NOT_FRAG) != SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  6.96k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (1873:6): [True: 5.42k, False: 1.53k]
  ------------------
 1874|       |		/* See if we can find the re-assembly entity */
 1875|  5.42k|		if (control != NULL) {
  ------------------
  |  Branch (1875:7): [True: 2.28k, False: 3.14k]
  ------------------
 1876|       |			/* We found something, does it belong? */
 1877|  2.28k|			if (ordered && (mid != control->mid)) {
  ------------------
  |  Branch (1877:8): [True: 505, False: 1.77k]
  |  Branch (1877:19): [True: 0, False: 505]
  ------------------
 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|      5|			err_out:
 1880|      5|				op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|      5|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 1881|      5|				stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_17;
  ------------------
  |  |  757|      5|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              				stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_17;
  ------------------
  |  |  785|      5|#define SCTP_LOC_17 0x00000011
  ------------------
 1882|      5|				sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      5|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1883|      5|				*abort_flag = 1;
 1884|      5|				return (0);
 1885|      0|			}
 1886|  2.28k|			if (ordered && ((control->sinfo_flags >> 8) & SCTP_DATA_UNORDERED)) {
  ------------------
  |  |  515|    505|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (1886:8): [True: 505, False: 1.77k]
  |  Branch (1886:19): [True: 0, False: 505]
  ------------------
 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.28k|			if (!ordered && (((control->sinfo_flags >> 8) & SCTP_DATA_UNORDERED) == 0)) {
  ------------------
  |  |  515|  1.77k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (1893:8): [True: 1.77k, False: 505]
  |  Branch (1893:20): [True: 0, False: 1.77k]
  ------------------
 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.28k|		}
 1901|  5.42k|	} 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.53k|		if (control != NULL) {
  ------------------
  |  Branch (1907:7): [True: 77, False: 1.46k]
  ------------------
 1908|     77|			if (ordered || asoc->idata_supported) {
  ------------------
  |  Branch (1908:8): [True: 1, False: 76]
  |  Branch (1908:19): [True: 1, False: 75]
  ------------------
 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|     75|			} else {
 1914|     75|				if ((control->first_frag_seen) &&
  ------------------
  |  Branch (1914:9): [True: 42, False: 33]
  ------------------
 1915|     42|				    (tsn == control->fsn_included + 1) &&
  ------------------
  |  Branch (1915:9): [True: 2, False: 40]
  ------------------
 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|     74|				} else {
 1922|     74|					control = NULL;
 1923|     74|				}
 1924|     75|			}
 1925|     77|		}
 1926|  1.53k|	}
 1927|       |	/* now do the tests */
 1928|  6.96k|	if (((asoc->cnt_on_all_streams +
  ------------------
  |  Branch (1928:6): [True: 0, False: 6.96k]
  ------------------
 1929|  6.96k|	      asoc->cnt_on_reasm_queue +
 1930|  6.96k|	      asoc->cnt_msg_on_sb) >= SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue)) ||
  ------------------
  |  |  590|  6.96k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 1931|  6.96k|	    (((int)asoc->my_rwnd) <= 0)) {
  ------------------
  |  Branch (1931:6): [True: 121, False: 6.84k]
  ------------------
 1932|       |		/*
 1933|       |		 * When we have NO room in the rwnd we check to make sure
 1934|       |		 * the reader is doing its job...
 1935|       |		 */
 1936|    121|		if (SCTP_SBAVAIL(&stcb->sctp_socket->so_rcv) > 0) {
  ------------------
  |  |  968|    121|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
  |  Branch (1936:7): [True: 121, 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|    121|			sctp_sorwakeup(stcb->sctp_ep, stcb->sctp_socket);
  ------------------
  |  | 1032|    121|#define sctp_sorwakeup(inp, so) \
  |  | 1033|    121|do { \
  |  | 1034|    121|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|    242|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1034:6): [True: 0, False: 121]
  |  |  ------------------
  |  | 1035|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEINPUT); \
  |  |  ------------------
  |  |  |  |  543|      0|#define SCTP_PCB_FLAGS_WAKEINPUT	0x02000000
  |  |  ------------------
  |  | 1036|    121|	} else { \
  |  | 1037|    121|		sorwakeup(so); \
  |  |  ------------------
  |  |  |  |  519|    121|#define	sorwakeup(so) do {						\
  |  |  |  |  520|    121|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  517|    121|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|    121|	do {                         \
  |  |  |  |  |  |  |  |  113|    121|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 121]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|    121|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 121]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  521|    121|	sorwakeup_locked(so);						\
  |  |  |  |  ------------------
  |  |  |  |  |  |  511|    121|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  |  |  512|    121|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  514|    121|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|    121|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|    121|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 121]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|    121|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 121]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  513|    121|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  499|    121|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|    121|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  204|    121|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  205|    121|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (499:23): [True: 121, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  500|    121|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|    121|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  208|    121|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|    121|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  514|    121|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  |  |  515|    121|	else								\
  |  |  |  |  |  |  516|    121|		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|    121|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (517:10): [Folded, False: 121]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  522|    121|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (522:10): [Folded, False: 121]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1038|    121|	} \
  |  | 1039|    121|} while (0)
  |  |  ------------------
  |  |  |  Branch (1039:10): [Folded, False: 121]
  |  |  ------------------
  ------------------
 1954|       |#if defined(__APPLE__) && !defined(__Userspace__)
 1955|       |			SCTP_SOCKET_UNLOCK(so, 1);
 1956|       |#endif
 1957|    121|		}
 1958|       |		/* now is it in the mapping array of what we have accepted? */
 1959|    121|		if (chk_type == SCTP_DATA) {
  ------------------
  |  |  454|    121|#define SCTP_DATA		0x00
  ------------------
  |  Branch (1959:7): [True: 119, False: 2]
  ------------------
 1960|    119|			if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_map) &&
  ------------------
  |  |  889|    119|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    238|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 63, False: 56]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 63]
  |  |  |  |  ------------------
  |  |  |  |  884|    238|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 56, False: 63]
  |  |  |  |  |  Branch (884:43): [True: 56, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1961|     56|			    SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|     56|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|     56|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 38, False: 18]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 38]
  |  |  |  |  ------------------
  |  |  |  |  884|     56|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 18, False: 38]
  |  |  |  |  |  Branch (884:43): [True: 18, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1962|       |				/* Nope not in the valid range dump it */
 1963|     20|			dump_packet:
 1964|     20|				sctp_set_rwnd(stcb, asoc);
 1965|     20|				if ((asoc->cnt_on_all_streams +
  ------------------
  |  Branch (1965:9): [True: 0, False: 20]
  ------------------
 1966|     20|				     asoc->cnt_on_reasm_queue +
 1967|     20|				     asoc->cnt_msg_on_sb) >= SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue)) {
  ------------------
  |  |  590|     20|#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|     20|				} else {
 1970|     20|					SCTP_STAT_INCR(sctps_datadroprwnd);
  ------------------
  |  | 1112|     20|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|     20|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     20|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1971|     20|				}
 1972|     20|				*break_flag = 1;
 1973|     20|				return (0);
 1974|     18|			}
 1975|    119|		} 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|    121|	}
 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.94k|	if ((chk_flags & SCTP_DATA_FIRST_FRAG) &&
  ------------------
  |  |  513|  6.94k|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (2007:6): [True: 4.09k, False: 2.85k]
  ------------------
 2008|  4.09k|	    (TAILQ_EMPTY(&asoc->resetHead)) &&
  ------------------
  |  Branch (2008:6): [True: 3.20k, False: 884]
  ------------------
 2009|  3.20k|	    (chk_flags & SCTP_DATA_UNORDERED) == 0 &&
  ------------------
  |  |  515|  3.20k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (2009:6): [True: 1.12k, False: 2.07k]
  ------------------
 2010|  1.12k|	    SCTP_MID_GE(asoc->idata_supported, asoc->strmin[sid].last_mid_delivered, mid)) {
  ------------------
  |  |  892|  1.12k|#define SCTP_MID_GE(i, a, b) (((i) == 1) ? SCTP_UINT32_GE(a, b) : SCTP_UINT16_GE((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  885|    585|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  1.17k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 83, False: 502]
  |  |  |  |  |  |  |  Branch (883:43): [True: 2, False: 81]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  1.17k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 501, False: 82]
  |  |  |  |  |  |  |  Branch (884:43): [True: 34, False: 467]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 1, False: 548]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define SCTP_MID_GE(i, a, b) (((i) == 1) ? SCTP_UINT32_GE(a, b) : SCTP_UINT16_GE((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  882|    543|#define SCTP_UINT16_GE(a, b) (SCTP_UINT16_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  880|  1.08k|#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (880:32): [True: 49, False: 494]
  |  |  |  |  |  |  |  Branch (880:43): [True: 3, False: 46]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  881|  1.08k|                              ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (881:32): [True: 493, False: 47]
  |  |  |  |  |  |  |  Branch (881:43): [True: 15, False: 478]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (882:55): [True: 1, False: 524]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (892:30): [True: 56, False: 1.07k]
  |  |  |  Branch (892:31): [True: 585, False: 543]
  |  |  ------------------
  ------------------
 2011|       |		/* The incoming sseq is behind where we last delivered? */
 2012|     56|		SCTPDBG(SCTP_DEBUG_INDATA1, "EVIL/Broken-Dup S-SEQ: %u delivered: %u from peer, Abort!\n",
 2013|     56|			mid, asoc->strmin[sid].last_mid_delivered);
 2014|       |
 2015|     56|		if (asoc->idata_supported) {
  ------------------
  |  Branch (2015:7): [True: 37, False: 19]
  ------------------
 2016|     37|			SCTP_SNPRINTF(msg, sizeof(msg), "Delivered MID=%8.8x, got TSN=%8.8x, SID=%4.4x, MID=%8.8x",
  ------------------
  |  |  820|     37|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 37]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 2017|     37|			              asoc->strmin[sid].last_mid_delivered,
 2018|     37|			              tsn,
 2019|     37|			              sid,
 2020|     37|			              mid);
 2021|     37|		} else {
 2022|     19|			SCTP_SNPRINTF(msg, sizeof(msg), "Delivered SSN=%4.4x, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
  ------------------
  |  |  820|     19|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 19]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 2023|     19|			              (uint16_t)asoc->strmin[sid].last_mid_delivered,
 2024|     19|			              tsn,
 2025|     19|			              sid,
 2026|     19|			              (uint16_t)mid);
 2027|     19|		}
 2028|     56|		op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     56|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 2029|     56|		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_18;
  ------------------
  |  |  757|     56|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_18;
  ------------------
  |  |  786|     56|#define SCTP_LOC_18 0x00000012
  ------------------
 2030|     56|		sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     56|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2031|     56|		*abort_flag = 1;
 2032|     56|		return (0);
 2033|     56|	}
 2034|  6.88k|	if (chk_type == SCTP_IDATA) {
  ------------------
  |  |  474|  6.88k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (2034:6): [True: 2.31k, False: 4.56k]
  ------------------
 2035|  2.31k|		the_len = (chk_length - sizeof(struct sctp_idata_chunk));
 2036|  4.56k|	} else {
 2037|  4.56k|		the_len = (chk_length - sizeof(struct sctp_data_chunk));
 2038|  4.56k|	}
 2039|  6.88k|	if (last_chunk == 0) {
  ------------------
  |  Branch (2039:6): [True: 6.71k, False: 169]
  ------------------
 2040|  6.71k|		if (chk_type == SCTP_IDATA) {
  ------------------
  |  |  474|  6.71k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (2040:7): [True: 2.29k, False: 4.41k]
  ------------------
 2041|  2.29k|			dmbuf = SCTP_M_COPYM(*m,
  ------------------
  |  |  770|  2.29k|#define SCTP_M_COPYM	m_copym
  ------------------
 2042|  2.29k|					     (offset + sizeof(struct sctp_idata_chunk)),
 2043|  2.29k|					     the_len, M_NOWAIT);
  ------------------
  |  |   60|  2.29k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 2044|  4.41k|		} else {
 2045|  4.41k|			dmbuf = SCTP_M_COPYM(*m,
  ------------------
  |  |  770|  4.41k|#define SCTP_M_COPYM	m_copym
  ------------------
 2046|  4.41k|					     (offset + sizeof(struct sctp_data_chunk)),
 2047|  4.41k|					     the_len, M_NOWAIT);
  ------------------
  |  |   60|  4.41k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 2048|  4.41k|		}
 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.71k|	} else {
 2055|       |		/* We can steal the last chunk */
 2056|    169|		int l_len;
 2057|    169|		dmbuf = *m;
 2058|       |		/* lop off the top part */
 2059|    169|		if (chk_type == SCTP_IDATA) {
  ------------------
  |  |  474|    169|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (2059:7): [True: 19, False: 150]
  ------------------
 2060|     19|			m_adj(dmbuf, (offset + sizeof(struct sctp_idata_chunk)));
 2061|    150|		} else {
 2062|    150|			m_adj(dmbuf, (offset + sizeof(struct sctp_data_chunk)));
 2063|    150|		}
 2064|    169|		if (SCTP_BUF_NEXT(dmbuf) == NULL) {
  ------------------
  |  |  802|    169|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    169|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (2064:7): [True: 48, False: 121]
  ------------------
 2065|     48|			l_len = SCTP_BUF_LEN(dmbuf);
  ------------------
  |  |  801|     48|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     48|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2066|    121|		} else {
 2067|       |			/* need to count up the size hopefully
 2068|       |			 * does not hit this to often :-0
 2069|       |			 */
 2070|    121|			struct mbuf *lat;
 2071|       |
 2072|    121|			l_len = 0;
 2073|  1.16k|			for (lat = dmbuf; lat; lat = SCTP_BUF_NEXT(lat)) {
  ------------------
  |  |  802|  1.04k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  1.04k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (2073:22): [True: 1.04k, False: 121]
  ------------------
 2074|  1.04k|				l_len += SCTP_BUF_LEN(lat);
  ------------------
  |  |  801|  1.04k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  1.04k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2075|  1.04k|			}
 2076|    121|		}
 2077|    169|		if (l_len > the_len) {
  ------------------
  |  Branch (2077:7): [True: 113, False: 56]
  ------------------
 2078|       |			/* Trim the end round bytes off  too */
 2079|    113|			m_adj(dmbuf, -(l_len - the_len));
 2080|    113|		}
 2081|    169|	}
 2082|  6.88k|	if (dmbuf == NULL) {
  ------------------
  |  Branch (2082:6): [True: 0, False: 6.88k]
  ------------------
 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.88k|	if (control == NULL) {
  ------------------
  |  Branch (2091:6): [True: 4.60k, False: 2.27k]
  ------------------
 2092|  4.60k|		sctp_alloc_a_readq(stcb, control);
  ------------------
  |  |  118|  4.60k|#define sctp_alloc_a_readq(_stcb, _readq) { \
  |  |  119|  4.60k|	(_readq) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_readq), struct sctp_queued_to_read); \
  |  |  ------------------
  |  |  |  |  703|  4.60k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  120|  4.60k|	if ((_readq)) { \
  |  |  ------------------
  |  |  |  Branch (120:6): [True: 4.60k, False: 0]
  |  |  ------------------
  |  |  121|  4.60k|	     SCTP_INCR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  682|  4.60k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  4.60k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  122|  4.60k|	} \
  |  |  123|  4.60k|}
  ------------------
 2093|  4.60k|		sctp_build_readq_entry_mac(control, stcb, asoc->context, net, tsn,
  ------------------
  |  |   48|  4.60k|#define sctp_build_readq_entry_mac(_ctl, in_it, context, net, tsn, ppid, sid, flags, dm, tfsn, mid) do { \
  |  |   49|  4.60k|	if (_ctl) { \
  |  |  ------------------
  |  |  |  Branch (49:6): [True: 4.60k, False: 0]
  |  |  ------------------
  |  |   50|  4.60k|		atomic_add_int(&((net)->ref_count), 1); \
  |  |  ------------------
  |  |  |  |   94|  4.60k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |   51|  4.60k|		memset(_ctl, 0, sizeof(struct sctp_queued_to_read)); \
  |  |   52|  4.60k|		(_ctl)->sinfo_stream = sid; \
  |  |   53|  4.60k|		TAILQ_INIT(&_ctl->reasm); \
  |  |   54|  4.60k|		(_ctl)->top_fsn = tfsn; \
  |  |   55|  4.60k|		(_ctl)->mid = mid; \
  |  |   56|  4.60k|		(_ctl)->sinfo_flags = (flags << 8); \
  |  |   57|  4.60k|		(_ctl)->sinfo_ppid = ppid; \
  |  |   58|  4.60k|		(_ctl)->sinfo_context = context; \
  |  |   59|  4.60k|		(_ctl)->fsn_included = 0xffffffff; \
  |  |   60|  4.60k|		(_ctl)->sinfo_tsn = tsn; \
  |  |   61|  4.60k|		(_ctl)->sinfo_cumtsn = tsn; \
  |  |   62|  4.60k|		(_ctl)->sinfo_assoc_id = sctp_get_associd((in_it)); \
  |  |  ------------------
  |  |  |  |   60|  4.60k|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  |  |  ------------------
  |  |   63|  4.60k|		(_ctl)->whoFrom = net; \
  |  |   64|  4.60k|		(_ctl)->data = dm; \
  |  |   65|  4.60k|		(_ctl)->stcb = (in_it); \
  |  |   66|  4.60k|		(_ctl)->port_from = (in_it)->rport; \
  |  |   67|  4.60k|		if ((in_it)->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) { \
  |  |  ------------------
  |  |  |  |  465|  4.60k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  |  |  ------------------
  |  |  |  Branch (67:7): [True: 0, False: 4.60k]
  |  |  ------------------
  |  |   68|      0|			(_ctl)->do_not_ref_stcb = 1; \
  |  |   69|      0|		}\
  |  |   70|  4.60k|	} \
  |  |   71|  4.60k|} while (0)
  |  |  ------------------
  |  |  |  Branch (71:10): [Folded, False: 4.60k]
  |  |  ------------------
  ------------------
  |  Branch (2093:3): [Folded, False: 4.60k]
  ------------------
 2094|  4.60k|					   ppid,
 2095|  4.60k|					   sid,
 2096|  4.60k|					   chk_flags,
 2097|  4.60k|					   NULL, fsn, mid);
 2098|  4.60k|		if (control == NULL) {
  ------------------
  |  Branch (2098:7): [True: 0, False: 4.60k]
  ------------------
 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.60k|		if ((chk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  4.60k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              		if ((chk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  4.60k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (2102:7): [True: 1.50k, False: 3.10k]
  ------------------
 2103|  1.50k|			struct mbuf *mm;
 2104|       |
 2105|  1.50k|			control->data = dmbuf;
 2106|  1.50k|			control->tail_mbuf = NULL;
 2107|  3.58k|			for (mm = control->data; mm; mm = mm->m_next) {
  ------------------
  |  |  217|  2.08k|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (2107:29): [True: 2.08k, False: 1.50k]
  ------------------
 2108|  2.08k|				control->length += SCTP_BUF_LEN(mm);
  ------------------
  |  |  801|  2.08k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.08k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 2109|  2.08k|				if (SCTP_BUF_NEXT(mm) == NULL) {
  ------------------
  |  |  802|  2.08k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  2.08k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (2109:9): [True: 1.50k, False: 582]
  ------------------
 2110|  1.50k|					control->tail_mbuf = mm;
 2111|  1.50k|				}
 2112|  2.08k|			}
 2113|  1.50k|			control->end_added = 1;
 2114|  1.50k|			control->last_frag_seen = 1;
 2115|  1.50k|			control->first_frag_seen = 1;
 2116|  1.50k|			control->fsn_included = fsn;
 2117|  1.50k|			control->top_fsn = fsn;
 2118|  1.50k|		}
 2119|  4.60k|		created_control = 1;
 2120|  4.60k|	}
 2121|  6.88k|	SCTPDBG(SCTP_DEBUG_XXX, "chunk_flags: 0x%x ordered: %d MID: %u control: %p\n",
 2122|  6.88k|		chk_flags, ordered, mid, control);
 2123|  6.88k|	if ((chk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG &&
  ------------------
  |  |  514|  6.88k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              	if ((chk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG &&
  ------------------
  |  |  514|  13.7k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (2123:6): [True: 1.50k, False: 5.38k]
  ------------------
 2124|  6.88k|	    TAILQ_EMPTY(&asoc->resetHead) &&
  ------------------
  |  Branch (2124:6): [True: 790, False: 713]
  ------------------
 2125|    790|	    ((ordered == 0) ||
  ------------------
  |  Branch (2125:7): [True: 206, False: 584]
  ------------------
 2126|    584|	     (SCTP_MID_EQ(asoc->idata_supported, asoc->strmin[sid].last_mid_delivered + 1, mid) &&
  ------------------
  |  |  893|  1.16k|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 43, False: 541]
  |  |  |  Branch (893:31): [True: 249, False: 335]
  |  |  ------------------
  ------------------
 2127|    584|	      TAILQ_EMPTY(&asoc->strmin[sid].inqueue)))) {
  ------------------
  |  Branch (2127:8): [True: 23, False: 20]
  ------------------
 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|    229|		SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, gap);
  ------------------
  |  |  897|    229|#define SCTP_SET_TSN_PRESENT(arry, gap) (arry[(gap >> 3)] |= (0x01 << ((gap & 0x07))))
  ------------------
 2137|    229|		if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|    229|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    229|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 97, False: 132]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 97]
  |  |  |  |  ------------------
  |  |  |  |  884|    229|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 132, False: 97]
  |  |  |  |  |  Branch (884:43): [True: 132, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2138|    132|			asoc->highest_tsn_inside_nr_map = tsn;
 2139|    132|		}
 2140|    229|		SCTPDBG(SCTP_DEBUG_XXX, "Injecting control: %p to be read (MID: %u)\n",
 2141|    229|			control, mid);
 2142|       |
 2143|    229|		sctp_add_to_readq(stcb->sctp_ep, stcb,
 2144|    229|		                  control, &stcb->sctp_socket->so_rcv,
 2145|    229|		                  1, SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |   41|    229|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
              		                  1, SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    229|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2146|       |
 2147|    229|		if ((chk_flags & SCTP_DATA_UNORDERED) == 0) {
  ------------------
  |  |  515|    229|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (2147:7): [True: 23, False: 206]
  ------------------
 2148|       |			/* for ordered, bump what we delivered */
 2149|     23|			asoc->strmin[sid].last_mid_delivered++;
 2150|     23|		}
 2151|    229|		SCTP_STAT_INCR(sctps_recvexpress);
  ------------------
  |  | 1112|    229|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    229|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    229|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2152|    229|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  590|    229|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  658|    229|#define SCTP_STR_LOGGING_ENABLE				0x00020000
  ------------------
  |  Branch (2152:7): [True: 0, False: 229]
  ------------------
 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|    229|		control = NULL;
 2157|    229|		goto finish_express_del;
 2158|    229|	}
 2159|       |
 2160|       |	/* Now will we need a chunk too? */
 2161|  6.65k|	if ((chk_flags & SCTP_DATA_NOT_FRAG) != SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  6.65k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              	if ((chk_flags & SCTP_DATA_NOT_FRAG) != SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  6.65k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (2161:6): [True: 5.38k, False: 1.27k]
  ------------------
 2162|  5.38k|		sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  5.38k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  5.38k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  3.14k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  3.14k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  3.14k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 3.14k, False: 0]
  |  |  ------------------
  |  |  173|  3.14k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  3.14k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  3.14k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  3.14k|			(_chk)->whoTo = NULL; \
  |  |  175|  3.14k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  3.14k|		} \
  |  |  177|  3.14k|	} else { \
  |  |  178|  2.23k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  2.23k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  2.23k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  2.23k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  2.23k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  2.23k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  2.23k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  2.23k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  2.23k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  2.23k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  2.23k|	} \
  |  |  185|  5.38k|}
  ------------------
  |  Branch (2162:3): [True: 211, False: 2.02k]
  |  Branch (2162:3): [Folded, False: 2.23k]
  |  Branch (2162:3): [True: 3.14k, False: 2.23k]
  ------------------
 2163|  5.38k|		if (chk == NULL) {
  ------------------
  |  Branch (2163:7): [True: 0, False: 5.38k]
  ------------------
 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|  5.38k|		chk->rec.data.tsn = tsn;
 2173|  5.38k|		chk->no_fr_allowed = 0;
 2174|  5.38k|		chk->rec.data.fsn = fsn;
 2175|  5.38k|		chk->rec.data.mid = mid;
 2176|  5.38k|		chk->rec.data.sid = sid;
 2177|  5.38k|		chk->rec.data.ppid = ppid;
 2178|  5.38k|		chk->rec.data.context = stcb->asoc.context;
 2179|  5.38k|		chk->rec.data.doing_fast_retransmit = 0;
 2180|  5.38k|		chk->rec.data.rcv_flags = chk_flags;
 2181|  5.38k|		chk->asoc = asoc;
 2182|  5.38k|		chk->send_size = the_len;
 2183|  5.38k|		chk->whoTo = net;
 2184|  5.38k|		SCTPDBG(SCTP_DEBUG_XXX, "Building ck: %p for control: %p to be read (MID: %u)\n",
 2185|  5.38k|			chk,
 2186|  5.38k|			control, mid);
 2187|  5.38k|		atomic_add_int(&net->ref_count, 1);
  ------------------
  |  |   94|  5.38k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 2188|  5.38k|		chk->data = dmbuf;
 2189|  5.38k|	}
 2190|       |	/* Set the appropriate TSN mark */
 2191|  6.65k|	if (SCTP_BASE_SYSCTL(sctp_do_drain) == 0) {
  ------------------
  |  |  590|  6.65k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (2191:6): [True: 0, False: 6.65k]
  ------------------
 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.65k|	} else {
 2197|  6.65k|		SCTP_SET_TSN_PRESENT(asoc->mapping_array, gap);
  ------------------
  |  |  897|  6.65k|#define SCTP_SET_TSN_PRESENT(arry, gap) (arry[(gap >> 3)] |= (0x01 << ((gap & 0x07))))
  ------------------
 2198|  6.65k|		if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_map)) {
  ------------------
  |  |  889|  6.65k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  6.65k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 3.04k, False: 3.61k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 3.04k]
  |  |  |  |  ------------------
  |  |  |  |  884|  6.65k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 3.61k, False: 3.04k]
  |  |  |  |  |  Branch (884:43): [True: 3.61k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2199|  3.61k|			asoc->highest_tsn_inside_map = tsn;
 2200|  3.61k|		}
 2201|  6.65k|	}
 2202|       |	/* Now is it complete (i.e. not fragmented)? */
 2203|  6.65k|	if ((chk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  6.65k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              	if ((chk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  6.65k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (2203:6): [True: 1.27k, False: 5.38k]
  ------------------
 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.27k|		if (((liste = TAILQ_FIRST(&asoc->resetHead)) != NULL) &&
  ------------------
  |  Branch (2212:7): [True: 713, False: 561]
  ------------------
 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: 105, False: 608]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 105]
  |  |  |  |  ------------------
  |  |  |  |  884|    713|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 570, False: 143]
  |  |  |  |  |  Branch (884:43): [True: 402, False: 168]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2214|       |			/*
 2215|       |			 * yep its past where we need to reset... go
 2216|       |			 * ahead and queue it.
 2217|       |			 */
 2218|    402|			if (TAILQ_EMPTY(&asoc->pending_reply_queue)) {
  ------------------
  |  Branch (2218:8): [True: 167, False: 235]
  ------------------
 2219|       |				/* first one on */
 2220|    167|				TAILQ_INSERT_TAIL(&asoc->pending_reply_queue, control, next);
  ------------------
  |  Branch (2220:5): [Folded, False: 167]
  ------------------
 2221|    235|			} else {
 2222|    235|				struct sctp_queued_to_read *lcontrol, *nlcontrol;
 2223|    235|				unsigned char inserted = 0;
 2224|    796|				TAILQ_FOREACH_SAFE(lcontrol, &asoc->pending_reply_queue, next, nlcontrol) {
  ------------------
  |  | 1129|    235|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    895|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 796, False: 99]
  |  |  |  Branch (1130:24): [True: 796, False: 0]
  |  |  ------------------
  |  | 1131|    660|              (var) = (tvar))
  ------------------
 2225|    796|					if (SCTP_TSN_GT(control->sinfo_tsn, lcontrol->sinfo_tsn)) {
  ------------------
  |  |  889|    796|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    796|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 136, False: 660]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 136]
  |  |  |  |  ------------------
  |  |  |  |  884|    796|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 660, False: 136]
  |  |  |  |  |  Branch (884:43): [True: 660, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2226|    660|						continue;
 2227|    660|					} else {
 2228|       |						/* found it */
 2229|    136|						TAILQ_INSERT_BEFORE(lcontrol, control, next);
  ------------------
  |  Branch (2229:7): [Folded, False: 136]
  ------------------
 2230|    136|						inserted = 1;
 2231|    136|						break;
 2232|    136|					}
 2233|    796|				}
 2234|    235|				if (inserted == 0) {
  ------------------
  |  Branch (2234:9): [True: 99, False: 136]
  ------------------
 2235|       |					/*
 2236|       |					 * must be put at end, use
 2237|       |					 * prevP (all setup from
 2238|       |					 * loop) to setup nextP.
 2239|       |					 */
 2240|     99|					TAILQ_INSERT_TAIL(&asoc->pending_reply_queue, control, next);
  ------------------
  |  Branch (2240:6): [Folded, False: 99]
  ------------------
 2241|     99|				}
 2242|    235|			}
 2243|    402|			goto finish_express_del;
 2244|    402|		}
 2245|    872|		if (chk_flags & SCTP_DATA_UNORDERED) {
  ------------------
  |  |  515|    872|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (2245:7): [True: 98, False: 774]
  ------------------
 2246|       |			/* queue directly into socket buffer */
 2247|     98|			SCTPDBG(SCTP_DEBUG_XXX, "Unordered data to be read control: %p MID: %u\n",
 2248|     98|				control, mid);
 2249|     98|			sctp_mark_non_revokable(asoc, control->sinfo_tsn);
 2250|     98|			sctp_add_to_readq(stcb->sctp_ep, stcb,
 2251|     98|			                  control,
 2252|     98|			                  &stcb->sctp_socket->so_rcv, 1,
 2253|     98|			                  SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |   41|     98|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
              			                  SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     98|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 2254|       |
 2255|    774|		} else {
 2256|    774|			SCTPDBG(SCTP_DEBUG_XXX, "Queue control: %p for reordering MID: %u\n", control,
 2257|    774|				mid);
 2258|    774|			sctp_queue_data_to_stream(stcb, asoc, control, abort_flag, &need_reasm_check);
 2259|    774|			if (*abort_flag) {
  ------------------
  |  Branch (2259:8): [True: 51, False: 723]
  ------------------
 2260|     51|				if (last_chunk) {
  ------------------
  |  Branch (2260:9): [True: 2, False: 49]
  ------------------
 2261|      2|					*m = NULL;
 2262|      2|				}
 2263|     51|				return (0);
 2264|     51|			}
 2265|    774|		}
 2266|    821|		goto finish_express_del;
 2267|    872|	}
 2268|       |	/* If we reach here its a reassembly */
 2269|  5.38k|	need_reasm_check = 1;
 2270|  5.38k|	SCTPDBG(SCTP_DEBUG_XXX,
 2271|  5.38k|		"Queue data to stream for reasm control: %p MID: %u\n",
 2272|  5.38k|		control, mid);
 2273|  5.38k|	sctp_queue_data_for_reasm(stcb, asoc, control, chk, created_control, abort_flag, tsn);
 2274|  5.38k|	if (*abort_flag) {
  ------------------
  |  Branch (2274:6): [True: 290, False: 5.09k]
  ------------------
 2275|       |		/*
 2276|       |		 * the assoc is now gone and chk was put onto the
 2277|       |		 * reasm queue, which has all been freed.
 2278|       |		 */
 2279|    290|		if (last_chunk) {
  ------------------
  |  Branch (2279:7): [True: 6, False: 284]
  ------------------
 2280|      6|			*m = NULL;
 2281|      6|		}
 2282|    290|		return (0);
 2283|    290|	}
 2284|  6.54k|finish_express_del:
 2285|       |	/* Here we tidy up things */
 2286|  6.54k|	if (tsn == (asoc->cumulative_tsn + 1)) {
  ------------------
  |  Branch (2286:6): [True: 121, False: 6.42k]
  ------------------
 2287|       |		/* Update cum-ack */
 2288|    121|		asoc->cumulative_tsn = tsn;
 2289|    121|	}
 2290|  6.54k|	if (last_chunk) {
  ------------------
  |  Branch (2290:6): [True: 161, False: 6.38k]
  ------------------
 2291|    161|		*m = NULL;
 2292|    161|	}
 2293|  6.54k|	if (ordered) {
  ------------------
  |  Branch (2293:6): [True: 2.80k, False: 3.73k]
  ------------------
 2294|  2.80k|		SCTP_STAT_INCR_COUNTER64(sctps_inorderchunks);
  ------------------
  |  | 1128|  2.80k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  2.80k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  2.80k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  2.80k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2295|  3.73k|	} else {
 2296|  3.73k|		SCTP_STAT_INCR_COUNTER64(sctps_inunorderchunks);
  ------------------
  |  | 1128|  3.73k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  3.73k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  3.73k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  3.73k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2297|  3.73k|	}
 2298|  6.54k|	SCTP_STAT_INCR(sctps_recvdata);
  ------------------
  |  | 1112|  6.54k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  6.54k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  6.54k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2299|       |	/* Set it present please */
 2300|  6.54k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  590|  6.54k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  658|  6.54k|#define SCTP_STR_LOGGING_ENABLE				0x00020000
  ------------------
  |  Branch (2300:6): [True: 0, False: 6.54k]
  ------------------
 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.54k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  590|  6.54k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  649|  6.54k|#define SCTP_MAP_LOGGING_ENABLE				0x00000100
  ------------------
  |  Branch (2303:6): [True: 0, False: 6.54k]
  ------------------
 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.54k|	if (need_reasm_check) {
  ------------------
  |  Branch (2307:6): [True: 5.09k, False: 1.44k]
  ------------------
 2308|  5.09k|		(void)sctp_deliver_reasm_check(stcb, asoc, &asoc->strmin[sid], SCTP_READ_LOCK_NOT_HELD);
  ------------------
  |  |   41|  5.09k|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
 2309|  5.09k|		need_reasm_check = 0;
 2310|  5.09k|	}
 2311|       |	/* check the special flag for stream resets */
 2312|  6.54k|	if (((liste = TAILQ_FIRST(&asoc->resetHead)) != NULL) &&
  ------------------
  |  Branch (2312:6): [True: 906, False: 5.63k]
  ------------------
 2313|    906|	    SCTP_TSN_GE(asoc->cumulative_tsn, liste->tsn)) {
  ------------------
  |  |  890|    906|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|    906|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  1.81k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 527, False: 379]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 527]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  1.81k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 323, False: 583]
  |  |  |  |  |  |  |  Branch (884:43): [True: 115, False: 208]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 56, False: 735]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 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|    171|		sctp_reset_in_stream(stcb, liste->number_entries, liste->list_of_streams);
 2321|    171|		TAILQ_REMOVE(&asoc->resetHead, liste, next_resp);
  ------------------
  |  Branch (2321:3): [True: 110, False: 61]
  |  Branch (2321:3): [Folded, False: 171]
  ------------------
 2322|    171|		sctp_send_deferred_reset_response(stcb, liste, SCTP_STREAM_RESET_RESULT_PERFORMED);
  ------------------
  |  |  479|    171|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
 2323|    171|		SCTP_FREE(liste, SCTP_M_STRESET);
  ------------------
  |  |  679|    171|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|    171|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 2324|       |		/*sa_ignore FREED_MEMORY*/
 2325|    171|		liste = TAILQ_FIRST(&asoc->resetHead);
 2326|    171|		if (TAILQ_EMPTY(&asoc->resetHead)) {
  ------------------
  |  Branch (2326:7): [True: 61, False: 110]
  ------------------
 2327|       |			/* All can be removed */
 2328|     76|			TAILQ_FOREACH_SAFE(control, &asoc->pending_reply_queue, next, ncontrol) {
  ------------------
  |  | 1129|     61|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    124|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 76, False: 48]
  |  |  |  Branch (1130:24): [True: 76, False: 0]
  |  |  ------------------
  |  | 1131|     63|              (var) = (tvar))
  ------------------
 2329|     76|				TAILQ_REMOVE(&asoc->pending_reply_queue, control, next);
  ------------------
  |  Branch (2329:5): [True: 43, False: 33]
  |  Branch (2329:5): [Folded, False: 76]
  ------------------
 2330|     76|				strm = &asoc->strmin[control->sinfo_stream];
 2331|     76|				sctp_queue_data_to_stream(stcb, asoc, control, abort_flag, &need_reasm_check);
 2332|     76|				if (*abort_flag) {
  ------------------
  |  Branch (2332:9): [True: 13, False: 63]
  ------------------
 2333|     13|					return (0);
 2334|     13|				}
 2335|     63|				if (need_reasm_check) {
  ------------------
  |  Branch (2335:9): [True: 1, False: 62]
  ------------------
 2336|      1|					(void)sctp_deliver_reasm_check(stcb, asoc, strm, SCTP_READ_LOCK_NOT_HELD);
  ------------------
  |  |   41|      1|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
 2337|      1|					need_reasm_check = 0;
 2338|      1|				}
 2339|     63|			}
 2340|    110|		} else {
 2341|    127|			TAILQ_FOREACH_SAFE(control, &asoc->pending_reply_queue, next, ncontrol) {
  ------------------
  |  | 1129|    110|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    170|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 127, False: 43]
  |  |  |  Branch (1130:24): [True: 127, False: 0]
  |  |  ------------------
  |  | 1131|    110|              (var) = (tvar))
  ------------------
 2342|    127|				if (SCTP_TSN_GT(control->sinfo_tsn, liste->tsn)) {
  ------------------
  |  |  889|    127|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    127|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 33, False: 94]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 33]
  |  |  |  |  ------------------
  |  |  |  |  884|    127|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 94, False: 33]
  |  |  |  |  |  Branch (884:43): [True: 39, False: 55]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2343|     39|					break;
 2344|     39|				}
 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|    127|				TAILQ_REMOVE(&asoc->pending_reply_queue, control, next);
  ------------------
  |  Branch (2350:5): [True: 33, False: 55]
  |  Branch (2350:5): [Folded, False: 88]
  ------------------
 2351|     88|				strm = &asoc->strmin[control->sinfo_stream];
 2352|     88|				sctp_queue_data_to_stream(stcb, asoc, control, abort_flag, &need_reasm_check);
 2353|     88|				if (*abort_flag) {
  ------------------
  |  Branch (2353:9): [True: 28, False: 60]
  ------------------
 2354|     28|					return (0);
 2355|     28|				}
 2356|     60|				if (need_reasm_check) {
  ------------------
  |  Branch (2356:9): [True: 1, False: 59]
  ------------------
 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|     60|			}
 2361|    110|		}
 2362|    171|	}
 2363|  6.50k|	return (1);
 2364|  6.54k|}
sctp_indata.c:sctp_find_reasm_entry:
 1661|  6.96k|{
 1662|  6.96k|	struct sctp_queued_to_read *control;
 1663|       |
 1664|  6.96k|	if (ordered) {
  ------------------
  |  Branch (1664:6): [True: 3.13k, False: 3.82k]
  ------------------
 1665|  3.85k|		TAILQ_FOREACH(control, &strm->inqueue, next_instrm) {
  ------------------
  |  Branch (1665:3): [True: 3.85k, False: 2.63k]
  ------------------
 1666|  3.85k|			if (SCTP_MID_EQ(idata_supported, control->mid, mid)) {
  ------------------
  |  |  893|  3.85k|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 506, False: 3.34k]
  |  |  |  Branch (893:31): [True: 2.56k, False: 1.28k]
  |  |  ------------------
  ------------------
 1667|    506|				break;
 1668|    506|			}
 1669|  3.85k|		}
 1670|  3.82k|	} else {
 1671|  3.82k|		if (idata_supported) {
  ------------------
  |  Branch (1671:7): [True: 948, False: 2.87k]
  ------------------
 1672|  2.84k|			TAILQ_FOREACH(control, &strm->uno_inqueue, next_instrm) {
  ------------------
  |  Branch (1672:4): [True: 2.84k, False: 860]
  ------------------
 1673|  2.84k|				if (SCTP_MID_EQ(idata_supported, control->mid, mid)) {
  ------------------
  |  |  893|  2.84k|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 88, False: 2.75k]
  |  |  |  Branch (893:31): [True: 2.84k, False: 0]
  |  |  ------------------
  ------------------
 1674|     88|					break;
 1675|     88|				}
 1676|  2.84k|			}
 1677|  2.87k|		} else {
 1678|       |			control = TAILQ_FIRST(&strm->uno_inqueue);
 1679|  2.87k|		}
 1680|  3.82k|	}
 1681|  6.96k|	return (control);
 1682|  6.96k|}
sctp_indata.c:sctp_mark_non_revokable:
  306|  2.50k|{
  307|  2.50k|	uint32_t gap, i;
  308|  2.50k|	int in_r, in_nr;
  309|       |
  310|  2.50k|	if (SCTP_BASE_SYSCTL(sctp_do_drain) == 0) {
  ------------------
  |  |  590|  2.50k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (310:6): [True: 0, False: 2.50k]
  ------------------
  311|      0|		return;
  312|      0|	}
  313|  2.50k|	if (SCTP_TSN_GE(asoc->cumulative_tsn, tsn)) {
  ------------------
  |  |  890|  2.50k|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|  2.50k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  5.00k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 2.49k, False: 11]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 2.49k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  5.00k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 3, False: 2.50k]
  |  |  |  |  |  |  |  Branch (884:43): [True: 3, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 8, False: 2.49k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  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|     11|		return;
  319|     11|	}
  320|  2.49k|	SCTP_CALC_TSN_TO_GAP(gap, tsn, asoc->mapping_array_base_tsn);
  ------------------
  |  |  899|  2.49k|#define SCTP_CALC_TSN_TO_GAP(gap, tsn, mapping_tsn) do { \
  |  |  900|  2.49k|	                if (tsn >= mapping_tsn) { \
  |  |  ------------------
  |  |  |  Branch (900:22): [True: 2.49k, False: 0]
  |  |  ------------------
  |  |  901|  2.49k|						gap = tsn - mapping_tsn; \
  |  |  902|  2.49k|					} else { \
  |  |  903|      0|						gap = (MAX_TSN - mapping_tsn) + tsn + 1; \
  |  |  ------------------
  |  |  |  |  310|      0|#define MAX_TSN	0xffffffff
  |  |  ------------------
  |  |  904|      0|					} \
  |  |  905|  2.49k|                  } while (0)
  |  |  ------------------
  |  |  |  Branch (905:28): [Folded, False: 2.49k]
  |  |  ------------------
  ------------------
  321|  2.49k|	in_r = SCTP_IS_TSN_PRESENT(asoc->mapping_array, gap);
  ------------------
  |  |  896|  2.49k|#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
  ------------------
  322|  2.49k|	in_nr = SCTP_IS_TSN_PRESENT(asoc->nr_mapping_array, gap);
  ------------------
  |  |  896|  2.49k|#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
  ------------------
  323|  2.49k|	KASSERT(in_r || in_nr, ("%s: Things are really messed up now", __func__));
  ------------------
  |  |  112|  2.49k|	do {                         \
  |  |  113|  2.56k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 2.41k, False: 73]
  |  |  |  Branch (113:9): [True: 73, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.49k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 2.49k]
  |  |  ------------------
  ------------------
  324|  2.49k|	if (!in_nr) {
  ------------------
  |  Branch (324:6): [True: 2.41k, False: 73]
  ------------------
  325|  2.41k|		SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, gap);
  ------------------
  |  |  897|  2.41k|#define SCTP_SET_TSN_PRESENT(arry, gap) (arry[(gap >> 3)] |= (0x01 << ((gap & 0x07))))
  ------------------
  326|  2.41k|		if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|  2.41k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  2.41k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 947, False: 1.47k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 947]
  |  |  |  |  ------------------
  |  |  |  |  884|  2.41k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 1.47k, False: 947]
  |  |  |  |  |  Branch (884:43): [True: 1.47k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  327|  1.47k|			asoc->highest_tsn_inside_nr_map = tsn;
  328|  1.47k|		}
  329|  2.41k|	}
  330|  2.49k|	if (in_r) {
  ------------------
  |  Branch (330:6): [True: 2.41k, False: 73]
  ------------------
  331|  2.41k|		SCTP_UNSET_TSN_PRESENT(asoc->mapping_array, gap);
  ------------------
  |  |  898|  2.41k|#define SCTP_UNSET_TSN_PRESENT(arry, gap) (arry[(gap >> 3)] &= ((~(0x01 << ((gap & 0x07)))) & 0xff))
  ------------------
  332|  2.41k|		if (tsn == asoc->highest_tsn_inside_map) {
  ------------------
  |  Branch (332:7): [True: 1.21k, False: 1.20k]
  ------------------
  333|       |			/* We must back down to see what the new highest is. */
  334|  1.24M|			for (i = tsn - 1; SCTP_TSN_GE(i, asoc->mapping_array_base_tsn); i--) {
  335|  1.24M|				SCTP_CALC_TSN_TO_GAP(gap, i, asoc->mapping_array_base_tsn);
  ------------------
  |  |  899|  1.24M|#define SCTP_CALC_TSN_TO_GAP(gap, tsn, mapping_tsn) do { \
  |  |  900|  1.24M|	                if (tsn >= mapping_tsn) { \
  |  |  ------------------
  |  |  |  Branch (900:22): [True: 1.24M, False: 0]
  |  |  ------------------
  |  |  901|  1.24M|						gap = tsn - mapping_tsn; \
  |  |  902|  1.24M|					} else { \
  |  |  903|      0|						gap = (MAX_TSN - mapping_tsn) + tsn + 1; \
  |  |  ------------------
  |  |  |  |  310|      0|#define MAX_TSN	0xffffffff
  |  |  ------------------
  |  |  904|      0|					} \
  |  |  905|  1.24M|                  } while (0)
  |  |  ------------------
  |  |  |  Branch (905:28): [Folded, False: 1.24M]
  |  |  ------------------
  ------------------
  336|  1.24M|				if (SCTP_IS_TSN_PRESENT(asoc->mapping_array, gap)) {
  ------------------
  |  |  896|  1.24M|#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
  |  |  ------------------
  |  |  |  Branch (896:40): [True: 209, False: 1.24M]
  |  |  ------------------
  ------------------
  337|    209|					asoc->highest_tsn_inside_map = i;
  338|    209|					break;
  339|    209|				}
  340|  1.24M|			}
  341|  1.21k|			if (!SCTP_TSN_GE(i, asoc->mapping_array_base_tsn)) {
  ------------------
  |  |  890|  1.21k|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|  1.21k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  2.43k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 1.01k, False: 209]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 1.01k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  2.43k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 195, False: 1.02k]
  |  |  |  |  |  |  |  Branch (884:43): [True: 195, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 14, False: 1.01k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  342|  1.01k|				asoc->highest_tsn_inside_map = asoc->mapping_array_base_tsn - 1;
  343|  1.01k|			}
  344|  1.21k|		}
  345|  2.41k|	}
  346|  2.49k|}
sctp_indata.c:sctp_queue_data_to_stream:
  499|    938|{
  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|    938|	struct sctp_queued_to_read *at;
  519|    938|	int queue_needed;
  520|    938|	uint32_t nxt_todel;
  521|    938|	struct mbuf *op_err;
  522|    938|	struct sctp_stream_in *strm;
  523|    938|	char msg[SCTP_DIAG_INFO_LEN];
  524|       |
  525|    938|	strm = &asoc->strmin[control->sinfo_stream];
  526|    938|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  590|    938|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  658|    938|#define SCTP_STR_LOGGING_ENABLE				0x00020000
  ------------------
  |  Branch (526:6): [True: 0, False: 938]
  ------------------
  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|    938|	if (SCTP_MID_GT((asoc->idata_supported), strm->last_mid_delivered, control->mid)) {
  ------------------
  |  |  891|    938|#define SCTP_MID_GT(i, a, b) (((i) == 1) ? SCTP_UINT32_GT(a, b) : SCTP_UINT16_GT((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  883|    273|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 65, False: 208]
  |  |  |  |  |  Branch (883:43): [True: 1, False: 64]
  |  |  |  |  ------------------
  |  |  |  |  884|    273|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 207, False: 65]
  |  |  |  |  |  Branch (884:43): [True: 30, False: 177]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define SCTP_MID_GT(i, a, b) (((i) == 1) ? SCTP_UINT32_GT(a, b) : SCTP_UINT16_GT((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  880|    665|#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (880:32): [True: 66, False: 599]
  |  |  |  |  |  Branch (880:43): [True: 3, False: 63]
  |  |  |  |  ------------------
  |  |  |  |  881|    665|                              ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (881:32): [True: 555, False: 107]
  |  |  |  |  |  Branch (881:43): [True: 52, False: 503]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (891:30): [True: 86, False: 852]
  |  |  |  Branch (891:31): [True: 273, False: 665]
  |  |  ------------------
  ------------------
  530|       |		/* The incoming sseq is behind where we last delivered? */
  531|     86|		SCTPDBG(SCTP_DEBUG_INDATA1, "Duplicate S-SEQ: %u delivered: %u from peer, Abort association\n",
  532|     86|			strm->last_mid_delivered, control->mid);
  533|       |		/*
  534|       |		 * throw it in the stream so it gets cleaned up in
  535|       |		 * association destruction
  536|       |		 */
  537|     86|		TAILQ_INSERT_HEAD(&strm->inqueue, control, next_instrm);
  ------------------
  |  Branch (537:3): [True: 3, False: 83]
  |  Branch (537:3): [Folded, False: 86]
  ------------------
  538|     86|		if (asoc->idata_supported) {
  ------------------
  |  Branch (538:7): [True: 31, False: 55]
  ------------------
  539|     31|			SCTP_SNPRINTF(msg, sizeof(msg), "Delivered MID=%8.8x, got TSN=%8.8x, SID=%4.4x, MID=%8.8x",
  ------------------
  |  |  820|     31|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 31]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
  540|     31|			              strm->last_mid_delivered, control->sinfo_tsn,
  541|     31|			              control->sinfo_stream, control->mid);
  542|     55|		} else {
  543|     55|			SCTP_SNPRINTF(msg, sizeof(msg), "Delivered SSN=%4.4x, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
  ------------------
  |  |  820|     55|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 55]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
  544|     55|			              (uint16_t)strm->last_mid_delivered,
  545|     55|			              control->sinfo_tsn,
  546|     55|			              control->sinfo_stream,
  547|     55|			              (uint16_t)control->mid);
  548|     55|		}
  549|     86|		op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     86|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
  550|     86|		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_2;
  ------------------
  |  |  757|     86|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              		stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_2;
  ------------------
  |  |  770|     86|#define SCTP_LOC_2  0x00000002
  ------------------
  551|     86|		sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     86|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  552|     86|		*abort_flag = 1;
  553|     86|		return;
  554|     86|	}
  555|    852|	queue_needed = 1;
  556|    852|	asoc->size_on_all_streams += control->length;
  557|    852|	sctp_ucount_incr(asoc->cnt_on_all_streams);
  ------------------
  |  |  266|    852|#define sctp_ucount_incr(val) { \
  |  |  267|    852|	val++; \
  |  |  268|    852|}
  ------------------
  558|    852|	nxt_todel = strm->last_mid_delivered + 1;
  559|    852|	if (SCTP_MID_EQ(asoc->idata_supported, nxt_todel, control->mid)) {
  ------------------
  |  |  893|    852|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 178, False: 674]
  |  |  |  Branch (893:31): [True: 242, False: 610]
  |  |  ------------------
  ------------------
  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|    178|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  590|    178|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  658|    178|#define SCTP_STR_LOGGING_ENABLE				0x00020000
  ------------------
  |  Branch (575:7): [True: 0, False: 178]
  ------------------
  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|    178|		queue_needed = 0;
  580|    178|		if (asoc->size_on_all_streams >= control->length) {
  ------------------
  |  Branch (580:7): [True: 178, False: 0]
  ------------------
  581|    178|			asoc->size_on_all_streams -= control->length;
  582|    178|		} 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|    178|		sctp_ucount_decr(asoc->cnt_on_all_streams);
  ------------------
  |  |  270|    178|#define sctp_ucount_decr(val) { \
  |  |  271|    178|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 178, False: 0]
  |  |  ------------------
  |  |  272|    178|		val--; \
  |  |  273|    178|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|    178|}
  ------------------
  590|    178|		strm->last_mid_delivered++;
  591|    178|		sctp_mark_non_revokable(asoc, control->sinfo_tsn);
  592|    178|		sctp_add_to_readq(stcb->sctp_ep, stcb,
  593|    178|		                  control,
  594|    178|		                  &stcb->sctp_socket->so_rcv, 1,
  595|    178|		                  SCTP_READ_LOCK_NOT_HELD, SCTP_SO_LOCKED);
  ------------------
  |  |   41|    178|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
              		                  SCTP_READ_LOCK_NOT_HELD, SCTP_SO_LOCKED);
  ------------------
  |  |  959|    178|#define SCTP_SO_LOCKED		1
  ------------------
  596|    178|		TAILQ_FOREACH_SAFE(control, &strm->inqueue, next_instrm, at) {
  ------------------
  |  | 1129|    178|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    197|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 75, False: 122]
  |  |  |  Branch (1130:24): [True: 75, False: 0]
  |  |  ------------------
  |  | 1131|    178|              (var) = (tvar))
  ------------------
  597|       |			/* all delivered */
  598|     75|			nxt_todel = strm->last_mid_delivered + 1;
  599|     75|			if (SCTP_MID_EQ(asoc->idata_supported, nxt_todel, control->mid) &&
  ------------------
  |  |  893|    150|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 27, False: 48]
  |  |  |  Branch (893:31): [True: 17, False: 58]
  |  |  ------------------
  ------------------
  600|     27|			    (((control->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG)) {
  ------------------
  |  |  514|     27|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              			    (((control->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG)) {
  ------------------
  |  |  514|     27|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (600:8): [True: 19, False: 8]
  ------------------
  601|     19|				if (control->on_strm_q == SCTP_ON_ORDERED) {
  ------------------
  |  |  553|     19|#define SCTP_ON_ORDERED 1
  ------------------
  |  Branch (601:9): [True: 19, False: 0]
  ------------------
  602|     19|					TAILQ_REMOVE(&strm->inqueue, control, next_instrm);
  ------------------
  |  Branch (602:6): [True: 11, False: 8]
  |  Branch (602:6): [Folded, False: 19]
  ------------------
  603|     19|					if (asoc->size_on_all_streams >= control->length) {
  ------------------
  |  Branch (603:10): [True: 19, False: 0]
  ------------------
  604|     19|						asoc->size_on_all_streams -= control->length;
  605|     19|					} 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|     19|					sctp_ucount_decr(asoc->cnt_on_all_streams);
  ------------------
  |  |  270|     19|#define sctp_ucount_decr(val) { \
  |  |  271|     19|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 19, False: 0]
  |  |  ------------------
  |  |  272|     19|		val--; \
  |  |  273|     19|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|     19|}
  ------------------
  613|     19|#ifdef INVARIANTS
  614|     19|				} 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|     19|				control->on_strm_q = 0;
  620|     19|				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|     19|				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  590|     19|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  658|     19|#define SCTP_STR_LOGGING_ENABLE				0x00020000
  ------------------
  |  Branch (627:9): [True: 0, False: 19]
  ------------------
  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|     19|				sctp_mark_non_revokable(asoc, control->sinfo_tsn);
  632|     19|				sctp_add_to_readq(stcb->sctp_ep, stcb,
  633|     19|				                  control,
  634|     19|				                  &stcb->sctp_socket->so_rcv, 1,
  635|     19|				                  SCTP_READ_LOCK_NOT_HELD,
  ------------------
  |  |   41|     19|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
  636|     19|				                  SCTP_SO_LOCKED);
  ------------------
  |  |  959|     19|#define SCTP_SO_LOCKED		1
  ------------------
  637|     19|				continue;
  638|     56|			} else if (SCTP_MID_EQ(asoc->idata_supported, nxt_todel, control->mid)) {
  ------------------
  |  |  893|     56|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 8, False: 48]
  |  |  |  Branch (893:31): [True: 14, False: 42]
  |  |  ------------------
  ------------------
  639|      8|				*need_reasm = 1;
  640|      8|			}
  641|     56|			break;
  642|     75|		}
  643|       |#if defined(__APPLE__) && !defined(__Userspace__)
  644|       |		SCTP_SOCKET_UNLOCK(so, 1);
  645|       |#endif
  646|    178|	}
  647|    852|	if (queue_needed) {
  ------------------
  |  Branch (647:6): [True: 674, False: 178]
  ------------------
  648|       |		/*
  649|       |		 * Ok, we did not deliver this guy, find the correct place
  650|       |		 * to put it on the queue.
  651|       |		 */
  652|    674|		if (sctp_place_control_in_stream(strm, asoc, control)) {
  ------------------
  |  Branch (652:7): [True: 6, False: 668]
  ------------------
  653|      6|			SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|      6|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 6]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
  654|      6|			              "Queue to str MID: %u duplicate", control->mid);
  655|      6|			sctp_clean_up_control(stcb, control);
  656|      6|			op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|      6|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
  657|      6|			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_3;
  ------------------
  |  |  757|      6|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_3;
  ------------------
  |  |  771|      6|#define SCTP_LOC_3  0x00000003
  ------------------
  658|      6|			sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      6|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  659|      6|			*abort_flag = 1;
  660|      6|		}
  661|    674|	}
  662|    852|}
sctp_indata.c:sctp_place_control_in_stream:
  352|  3.77k|{
  353|  3.77k|	struct sctp_queued_to_read *at;
  354|  3.77k|	struct sctp_readhead *q;
  355|  3.77k|	uint8_t flags, unordered;
  356|       |
  357|  3.77k|	flags = (control->sinfo_flags >> 8);
  358|  3.77k|	unordered = flags & SCTP_DATA_UNORDERED;
  ------------------
  |  |  515|  3.77k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  359|  3.77k|	if (unordered) {
  ------------------
  |  Branch (359:6): [True: 1.63k, False: 2.14k]
  ------------------
  360|  1.63k|		q = &strm->uno_inqueue;
  361|  1.63k|		if (asoc->idata_supported == 0) {
  ------------------
  |  Branch (361:7): [True: 795, False: 838]
  ------------------
  362|    795|			if (!TAILQ_EMPTY(q)) {
  ------------------
  |  Branch (362:8): [True: 4, False: 791]
  ------------------
  363|       |				/* Only one stream can be here in old style  -- abort */
  364|      4|				return (-1);
  365|      4|			}
  366|    795|			TAILQ_INSERT_TAIL(q, control, next_instrm);
  ------------------
  |  Branch (366:4): [Folded, False: 791]
  ------------------
  367|    791|			control->on_strm_q = SCTP_ON_UNORDERED;
  ------------------
  |  |  554|    791|#define SCTP_ON_UNORDERED 2
  ------------------
  368|    791|			return (0);
  369|    795|		}
  370|  2.14k|	} else {
  371|  2.14k|		q = &strm->inqueue;
  372|  2.14k|	}
  373|  2.98k|	if ((flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  2.98k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              	if ((flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|  2.98k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (373:6): [True: 634, False: 2.35k]
  ------------------
  374|    634|		control->end_added = 1;
  375|    634|		control->first_frag_seen = 1;
  376|    634|		control->last_frag_seen = 1;
  377|    634|	}
  378|  2.98k|	if (TAILQ_EMPTY(q)) {
  ------------------
  |  Branch (378:6): [True: 1.61k, False: 1.36k]
  ------------------
  379|       |		/* Empty queue */
  380|  1.61k|		TAILQ_INSERT_HEAD(q, control, next_instrm);
  ------------------
  |  Branch (380:3): [True: 0, False: 1.61k]
  |  Branch (380:3): [Folded, False: 1.61k]
  ------------------
  381|  1.61k|		if (unordered) {
  ------------------
  |  Branch (381:7): [True: 274, False: 1.34k]
  ------------------
  382|    274|			control->on_strm_q = SCTP_ON_UNORDERED;
  ------------------
  |  |  554|    274|#define SCTP_ON_UNORDERED 2
  ------------------
  383|  1.34k|		} else {
  384|  1.34k|			control->on_strm_q = SCTP_ON_ORDERED;
  ------------------
  |  |  553|  1.34k|#define SCTP_ON_ORDERED 1
  ------------------
  385|  1.34k|		}
  386|  1.61k|		return (0);
  387|  1.61k|	} else {
  388|  4.01k|		TAILQ_FOREACH(at, q, next_instrm) {
  ------------------
  |  Branch (388:3): [True: 4.01k, False: 0]
  ------------------
  389|  4.01k|			if (SCTP_MID_GT(asoc->idata_supported, at->mid, control->mid)) {
  ------------------
  |  |  891|  4.01k|#define SCTP_MID_GT(i, a, b) (((i) == 1) ? SCTP_UINT32_GT(a, b) : SCTP_UINT16_GT((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  883|  3.12k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 1.75k, False: 1.37k]
  |  |  |  |  |  Branch (883:43): [True: 183, False: 1.57k]
  |  |  |  |  ------------------
  |  |  |  |  884|  3.12k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 1.37k, False: 1.57k]
  |  |  |  |  |  Branch (884:43): [True: 598, False: 777]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define SCTP_MID_GT(i, a, b) (((i) == 1) ? SCTP_UINT32_GT(a, b) : SCTP_UINT16_GT((uint16_t)a, (uint16_t)b))
  |  |  ------------------
  |  |  |  |  880|    884|#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (880:32): [True: 462, False: 422]
  |  |  |  |  |  Branch (880:43): [True: 30, False: 432]
  |  |  |  |  ------------------
  |  |  |  |  881|    884|                              ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (881:32): [True: 420, False: 434]
  |  |  |  |  |  Branch (881:43): [True: 198, False: 222]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (891:30): [True: 1.00k, False: 3.00k]
  |  |  |  Branch (891:31): [True: 3.12k, False: 884]
  |  |  ------------------
  ------------------
  390|       |				/*
  391|       |				 * one in queue is bigger than the
  392|       |				 * new one, insert before this one
  393|       |				 */
  394|  1.00k|				TAILQ_INSERT_BEFORE(at, control, next_instrm);
  ------------------
  |  Branch (394:5): [Folded, False: 1.00k]
  ------------------
  395|  1.00k|				if (unordered) {
  ------------------
  |  Branch (395:9): [True: 479, False: 530]
  ------------------
  396|    479|					control->on_strm_q = SCTP_ON_UNORDERED;
  ------------------
  |  |  554|    479|#define SCTP_ON_UNORDERED 2
  ------------------
  397|    530|				} else {
  398|    530|					control->on_strm_q = SCTP_ON_ORDERED;
  ------------------
  |  |  553|    530|#define SCTP_ON_ORDERED 1
  ------------------
  399|    530|				}
  400|  1.00k|				break;
  401|  3.00k|			} else if (SCTP_MID_EQ(asoc->idata_supported, at->mid, control->mid)) {
  ------------------
  |  |  893|  3.00k|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 2, False: 3.00k]
  |  |  |  Branch (893:31): [True: 2.34k, False: 656]
  |  |  ------------------
  ------------------
  402|       |				/*
  403|       |				 * Gak, He sent me a duplicate msg
  404|       |				 * id number?? return -1 to abort.
  405|       |				 */
  406|      2|				return (-1);
  407|  3.00k|			} else {
  408|  3.00k|				if (TAILQ_NEXT(at, next_instrm) == NULL) {
  ------------------
  |  Branch (408:9): [True: 354, False: 2.64k]
  ------------------
  409|       |					/*
  410|       |					 * We are at the end, insert
  411|       |					 * it after this one
  412|       |					 */
  413|    354|					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  590|    354|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
  ------------------
  |  |  658|    354|#define SCTP_STR_LOGGING_ENABLE				0x00020000
  ------------------
  |  Branch (413:10): [True: 0, False: 354]
  ------------------
  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|    354|					TAILQ_INSERT_AFTER(q, at, control, next_instrm);
  ------------------
  |  Branch (417:6): [True: 0, False: 354]
  |  Branch (417:6): [Folded, False: 354]
  ------------------
  418|    354|					if (unordered) {
  ------------------
  |  Branch (418:10): [True: 85, False: 269]
  ------------------
  419|     85|						control->on_strm_q = SCTP_ON_UNORDERED;
  ------------------
  |  |  554|     85|#define SCTP_ON_UNORDERED 2
  ------------------
  420|    269|					} else {
  421|    269|						control->on_strm_q = SCTP_ON_ORDERED;
  ------------------
  |  |  553|    269|#define SCTP_ON_ORDERED 1
  ------------------
  422|    269|					}
  423|    354|					break;
  424|    354|				}
  425|  3.00k|			}
  426|  4.01k|		}
  427|  1.36k|	}
  428|  1.36k|	return (0);
  429|  2.98k|}
sctp_indata.c:sctp_clean_up_control:
  469|      6|{
  470|       |	/*
  471|       |	 * The control could not be placed and must be cleaned.
  472|       |	 */
  473|      6|	struct sctp_tmit_chunk *chk, *nchk;
  474|      6|	TAILQ_FOREACH_SAFE(chk, &control->reasm, sctp_next, nchk) {
  ------------------
  |  | 1129|      6|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|      6|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 6]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|      6|              (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|      6|	sctp_free_remote_addr(control->whoFrom);
  ------------------
  |  |  228|      6|#define sctp_free_remote_addr(__net) { \
  |  |  229|      6|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 6, False: 0]
  |  |  ------------------
  |  |  230|      6|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|      6|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|      6|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 6]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  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|	} \
  |  |  245|      6|}
  ------------------
  482|      6|	if (control->data) {
  ------------------
  |  Branch (482:6): [True: 6, False: 0]
  ------------------
  483|      6|		sctp_m_freem(control->data);
  ------------------
  |  |   52|      6|#define sctp_m_freem m_freem
  ------------------
  484|      6|		control->data = NULL;
  485|      6|	}
  486|      6|	sctp_free_a_readq(stcb, control);
  ------------------
  |  |  105|      6|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|      6|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 6]
  |  |  ------------------
  |  |  107|      6|		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|      6|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|      6|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      6|	free(element);  \
  |  |  |  |  709|      6|}
  |  |  ------------------
  |  |  109|      6|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|      6|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      6|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|      6|}
  ------------------
  487|      6|}
sctp_indata.c:sctp_queue_data_for_reasm:
 1376|  5.38k|{
 1377|  5.38k|	uint32_t next_fsn;
 1378|  5.38k|	struct sctp_tmit_chunk *at, *nat;
 1379|  5.38k|	struct sctp_stream_in *strm;
 1380|  5.38k|	int do_wakeup, unordered;
 1381|  5.38k|	uint32_t lenadded;
 1382|       |
 1383|  5.38k|	strm = &asoc->strmin[control->sinfo_stream];
 1384|       |	/*
 1385|       |	 * For old un-ordered data chunks.
 1386|       |	 */
 1387|  5.38k|	if ((control->sinfo_flags >> 8) & SCTP_DATA_UNORDERED) {
  ------------------
  |  |  515|  5.38k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (1387:6): [True: 3.36k, False: 2.01k]
  ------------------
 1388|  3.36k|		unordered = 1;
 1389|  3.36k|	} else {
 1390|  2.01k|		unordered = 0;
 1391|  2.01k|	}
 1392|       |	/* Must be added to the stream-in queue */
 1393|  5.38k|	if (created_control) {
  ------------------
  |  Branch (1393:6): [True: 3.10k, False: 2.27k]
  ------------------
 1394|  3.10k|		if ((unordered == 0) || (asoc->idata_supported)) {
  ------------------
  |  Branch (1394:7): [True: 1.51k, False: 1.59k]
  |  Branch (1394:27): [True: 838, False: 755]
  ------------------
 1395|  2.35k|			sctp_ucount_incr(asoc->cnt_on_all_streams);
  ------------------
  |  |  266|  2.35k|#define sctp_ucount_incr(val) { \
  |  |  267|  2.35k|	val++; \
  |  |  268|  2.35k|}
  ------------------
 1396|  2.35k|		}
 1397|  3.10k|		if (sctp_place_control_in_stream(strm, asoc, control)) {
  ------------------
  |  Branch (1397:7): [True: 0, False: 3.10k]
  ------------------
 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|  3.10k|		if ((tsn == (asoc->cumulative_tsn + 1) && (asoc->idata_supported == 0))) {
  ------------------
  |  Branch (1405:8): [True: 49, False: 3.05k]
  |  Branch (1405:45): [True: 37, False: 12]
  ------------------
 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: 5, False: 32]
  ------------------
 1412|      5|				sctp_abort_in_reasm(stcb, control, chk,
 1413|      5|				                    abort_flag,
 1414|      5|				                    SCTP_FROM_SCTP_INDATA + SCTP_LOC_7);
  ------------------
  |  |  757|      5|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              				                    SCTP_FROM_SCTP_INDATA + SCTP_LOC_7);
  ------------------
  |  |  775|      5|#define SCTP_LOC_7  0x00000007
  ------------------
 1415|      5|				return;
 1416|      5|			}
 1417|     37|		}
 1418|  3.10k|	}
 1419|  5.37k|	if ((asoc->idata_supported == 0) && (unordered == 1)) {
  ------------------
  |  Branch (1419:6): [True: 3.37k, False: 2.00k]
  |  Branch (1419:38): [True: 2.43k, False: 934]
  ------------------
 1420|  2.43k|		sctp_inject_old_unordered_data(stcb, asoc, control, chk, abort_flag);
 1421|  2.43k|		return;
 1422|  2.43k|	}
 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.94k|	if (chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
  ------------------
  |  |  513|  2.94k|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (1430:6): [True: 1.07k, False: 1.86k]
  ------------------
 1431|       |		/* Its the very first one. */
 1432|  1.07k|		SCTPDBG(SCTP_DEBUG_XXX,
 1433|  1.07k|			"chunk is a first fsn: %u becomes fsn_included\n",
 1434|  1.07k|			chk->rec.data.fsn);
 1435|  1.07k|		if (control->first_frag_seen) {
  ------------------
  |  Branch (1435:7): [True: 3, False: 1.07k]
  ------------------
 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|  1.07k|		control->first_frag_seen = 1;
 1448|  1.07k|		control->sinfo_ppid = chk->rec.data.ppid;
 1449|  1.07k|		control->sinfo_tsn = chk->rec.data.tsn;
 1450|  1.07k|		control->fsn_included = chk->rec.data.fsn;
 1451|  1.07k|		control->data = chk->data;
 1452|  1.07k|		sctp_mark_non_revokable(asoc, chk->rec.data.tsn);
 1453|  1.07k|		chk->data = NULL;
 1454|  1.07k|		sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|  1.07k|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|  1.07k|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 1.07k]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|  1.07k|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 1.07k, False: 0]
  |  |  ------------------
  |  |  149|  1.07k|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|  1.07k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  1.07k|	do {                         \
  |  |  |  |  |  |  113|  1.07k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.07k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.07k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.07k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|  1.07k|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 1.07k, False: 0]
  |  |  ------------------
  |  |  151|  1.07k|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|  1.07k|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|  1.07k|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 1.07k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|  1.07k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|  1.07k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|  1.07k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 1.07k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  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.07k|	} \
  |  |  |  |  245|  1.07k|}
  |  |  ------------------
  |  |  152|  1.07k|			(_chk)->whoTo = NULL; \
  |  |  153|  1.07k|		} \
  |  |  154|  1.07k|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|  1.07k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 1.07k]
  |  |  ------------------
  |  |  155|  1.07k|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|  1.07k|#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|  1.07k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 1.07k]
  |  |  ------------------
  |  |  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|  1.07k|		} else { \
  |  |  159|  1.07k|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|  1.07k|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|  1.07k|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|  1.07k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|  1.07k|		} \
  |  |  163|  1.07k|	} 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|  1.07k|}
  ------------------
  |  Branch (1454:3): [Folded, False: 1.07k]
  ------------------
 1455|  1.07k|		sctp_setup_tail_pointer(control);
 1456|  1.07k|		asoc->size_on_all_streams += control->length;
 1457|  1.86k|	} else {
 1458|       |		/* Place the chunk in our list */
 1459|  1.86k|		int inserted=0;
 1460|  1.86k|		if (control->last_frag_seen == 0) {
  ------------------
  |  Branch (1460:7): [True: 1.63k, False: 229]
  ------------------
 1461|       |			/* Still willing to raise highest FSN seen */
 1462|  1.63k|			if (SCTP_TSN_GT(chk->rec.data.fsn, control->top_fsn)) {
  ------------------
  |  |  889|  1.63k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  1.63k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 168, False: 1.46k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 168]
  |  |  |  |  ------------------
  |  |  |  |  884|  1.63k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 164, False: 1.46k]
  |  |  |  |  |  Branch (884:43): [True: 134, False: 30]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1463|    134|				SCTPDBG(SCTP_DEBUG_XXX,
 1464|    134|					"We have a new top_fsn: %u\n",
 1465|    134|					chk->rec.data.fsn);
 1466|    134|				control->top_fsn = chk->rec.data.fsn;
 1467|    134|			}
 1468|  1.63k|			if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) {
  ------------------
  |  |  512|  1.63k|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (1468:8): [True: 633, False: 1.00k]
  ------------------
 1469|    633|				SCTPDBG(SCTP_DEBUG_XXX,
 1470|    633|					"The last fsn is now in place fsn: %u\n",
 1471|    633|					chk->rec.data.fsn);
 1472|    633|				control->last_frag_seen = 1;
 1473|    633|				if (SCTP_TSN_GT(control->top_fsn, chk->rec.data.fsn)) {
  ------------------
  |  |  889|    633|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    633|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 16, False: 617]
  |  |  |  |  |  Branch (883:43): [True: 15, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  884|    633|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 64, False: 554]
  |  |  |  |  |  Branch (884:43): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1474|     79|					SCTPDBG(SCTP_DEBUG_XXX,
 1475|     79|						"New fsn: %u is not at top_fsn: %u -- abort\n",
 1476|     79|						chk->rec.data.fsn,
 1477|     79|						control->top_fsn);
 1478|     79|					sctp_abort_in_reasm(stcb, control, chk,
 1479|     79|							    abort_flag,
 1480|     79|							    SCTP_FROM_SCTP_INDATA + SCTP_LOC_9);
  ------------------
  |  |  757|     79|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              							    SCTP_FROM_SCTP_INDATA + SCTP_LOC_9);
  ------------------
  |  |  777|     79|#define SCTP_LOC_9  0x00000009
  ------------------
 1481|     79|					return;
 1482|     79|				}
 1483|    633|			}
 1484|  1.55k|			if (asoc->idata_supported || control->first_frag_seen) {
  ------------------
  |  Branch (1484:8): [True: 936, False: 618]
  |  Branch (1484:33): [True: 57, False: 561]
  ------------------
 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|    993|				if (SCTP_TSN_GE(control->fsn_included, chk->rec.data.fsn)) {
  ------------------
  |  |  890|    993|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|    993|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  1.98k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 130, False: 863]
  |  |  |  |  |  |  |  Branch (883:43): [True: 9, False: 121]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  1.98k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 859, False: 125]
  |  |  |  |  |  |  |  Branch (884:43): [True: 73, False: 786]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 4, False: 907]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1492|       |					/* We have already delivered up to this so its a dup */
 1493|     86|					sctp_abort_in_reasm(stcb, control, chk,
 1494|     86|							    abort_flag,
 1495|     86|							    SCTP_FROM_SCTP_INDATA + SCTP_LOC_10);
  ------------------
  |  |  757|     86|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              							    SCTP_FROM_SCTP_INDATA + SCTP_LOC_10);
  ------------------
  |  |  778|     86|#define SCTP_LOC_10 0x0000000a
  ------------------
 1496|     86|					return;
 1497|     86|				}
 1498|    993|			}
 1499|  1.55k|		} else {
 1500|    229|			if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) {
  ------------------
  |  |  512|    229|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (1500:8): [True: 1, False: 228]
  ------------------
 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|    228|			if (asoc->idata_supported || control->first_frag_seen) {
  ------------------
  |  Branch (1510:8): [True: 141, False: 87]
  |  Branch (1510:33): [True: 43, False: 44]
  ------------------
 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|    184|				if (SCTP_TSN_GE(control->fsn_included, chk->rec.data.fsn)) {
  ------------------
  |  |  890|    184|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|    184|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|    368|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 68, False: 116]
  |  |  |  |  |  |  |  Branch (883:43): [True: 10, False: 58]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|    368|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 115, False: 59]
  |  |  |  |  |  |  |  Branch (884:43): [True: 35, False: 80]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 1, False: 138]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1519|       |					/* We have already delivered up to this so its a dup */
 1520|     46|					SCTPDBG(SCTP_DEBUG_XXX,
 1521|     46|						"New fsn: %u is already seen in included_fsn: %u -- abort\n",
 1522|     46|						chk->rec.data.fsn, control->fsn_included);
 1523|     46|					sctp_abort_in_reasm(stcb, control, chk,
 1524|     46|							    abort_flag,
 1525|     46|							    SCTP_FROM_SCTP_INDATA + SCTP_LOC_12);
  ------------------
  |  |  757|     46|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              							    SCTP_FROM_SCTP_INDATA + SCTP_LOC_12);
  ------------------
  |  |  780|     46|#define SCTP_LOC_12 0x0000000c
  ------------------
 1526|     46|					return;
 1527|     46|				}
 1528|    184|			}
 1529|       |			/* validate not beyond top FSN if we have seen last one */
 1530|    182|			if (SCTP_TSN_GT(chk->rec.data.fsn, control->top_fsn)) {
  ------------------
  |  |  889|    182|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    182|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 112, False: 70]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 112]
  |  |  |  |  ------------------
  |  |  |  |  884|    182|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 70, False: 112]
  |  |  |  |  |  Branch (884:43): [True: 67, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1531|     67|				SCTPDBG(SCTP_DEBUG_XXX,
 1532|     67|					"New fsn: %u is beyond or at top_fsn: %u -- abort\n",
 1533|     67|					chk->rec.data.fsn,
 1534|     67|					control->top_fsn);
 1535|     67|				sctp_abort_in_reasm(stcb, control, chk,
 1536|     67|						    abort_flag,
 1537|     67|						    SCTP_FROM_SCTP_INDATA + SCTP_LOC_13);
  ------------------
  |  |  757|     67|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              						    SCTP_FROM_SCTP_INDATA + SCTP_LOC_13);
  ------------------
  |  |  781|     67|#define SCTP_LOC_13 0x0000000d
  ------------------
 1538|     67|				return;
 1539|     67|			}
 1540|    182|		}
 1541|       |		/*
 1542|       |		 * If we reach here, we need to place the
 1543|       |		 * new chunk in the reassembly for this
 1544|       |		 * control.
 1545|       |		 */
 1546|  1.58k|		SCTPDBG(SCTP_DEBUG_XXX,
 1547|  1.58k|			"chunk is a not first fsn: %u needs to be inserted\n",
 1548|  1.58k|			chk->rec.data.fsn);
 1549|  1.58k|		TAILQ_FOREACH(at, &control->reasm, sctp_next) {
  ------------------
  |  Branch (1549:3): [True: 442, False: 1.36k]
  ------------------
 1550|    442|			if (SCTP_TSN_GT(at->rec.data.fsn, chk->rec.data.fsn)) {
  ------------------
  |  |  889|    442|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    442|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 225, False: 217]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 225]
  |  |  |  |  ------------------
  |  |  |  |  884|    442|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 215, False: 227]
  |  |  |  |  |  Branch (884:43): [True: 215, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1551|    215|				if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) {
  ------------------
  |  |  512|    215|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (1551:9): [True: 1, False: 214]
  ------------------
 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|    214|				SCTPDBG(SCTP_DEBUG_XXX,
 1565|    214|					"Insert it before fsn: %u\n",
 1566|    214|					at->rec.data.fsn);
 1567|    214|				asoc->size_on_reasm_queue += chk->send_size;
 1568|    214|				sctp_ucount_incr(asoc->cnt_on_reasm_queue);
  ------------------
  |  |  266|    214|#define sctp_ucount_incr(val) { \
  |  |  267|    214|	val++; \
  |  |  268|    214|}
  ------------------
 1569|    214|				TAILQ_INSERT_BEFORE(at, chk, sctp_next);
  ------------------
  |  Branch (1569:5): [Folded, False: 214]
  ------------------
 1570|    214|				inserted = 1;
 1571|    214|				break;
 1572|    227|			} else if (at->rec.data.fsn == chk->rec.data.fsn) {
  ------------------
  |  Branch (1572:15): [True: 2, False: 225]
  ------------------
 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|    442|		}
 1590|  1.58k|		if (inserted == 0) {
  ------------------
  |  Branch (1590:7): [True: 1.36k, False: 214]
  ------------------
 1591|       |			/* Goes on the end */
 1592|  1.36k|			SCTPDBG(SCTP_DEBUG_XXX, "Inserting at tail of list fsn: %u\n",
 1593|  1.36k|				chk->rec.data.fsn);
 1594|  1.36k|			asoc->size_on_reasm_queue += chk->send_size;
 1595|  1.36k|			sctp_ucount_incr(asoc->cnt_on_reasm_queue);
  ------------------
  |  |  266|  1.36k|#define sctp_ucount_incr(val) { \
  |  |  267|  1.36k|	val++; \
  |  |  268|  1.36k|}
  ------------------
 1596|  1.36k|			TAILQ_INSERT_TAIL(&control->reasm, chk, sctp_next);
  ------------------
  |  Branch (1596:4): [Folded, False: 1.36k]
  ------------------
 1597|  1.36k|		}
 1598|  1.58k|	}
 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.65k|	do_wakeup = 0;
 1604|       |	/*
 1605|       |	 * If the first fragment has not been
 1606|       |	 * seen there is no sense in looking.
 1607|       |	 */
 1608|  2.65k|	if (control->first_frag_seen) {
  ------------------
  |  Branch (1608:6): [True: 1.21k, False: 1.43k]
  ------------------
 1609|  1.21k|		next_fsn = control->fsn_included + 1;
 1610|  1.21k|		TAILQ_FOREACH_SAFE(at, &control->reasm, sctp_next, nat) {
  ------------------
  |  | 1129|  1.21k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  1.27k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 186, False: 1.08k]
  |  |  |  Branch (1130:24): [True: 186, False: 0]
  |  |  ------------------
  |  | 1131|  1.21k|              (var) = (tvar))
  ------------------
 1611|    186|			if (at->rec.data.fsn == next_fsn) {
  ------------------
  |  Branch (1611:8): [True: 53, False: 133]
  ------------------
 1612|       |				/* We can add this one now to the control */
 1613|     53|				SCTPDBG(SCTP_DEBUG_XXX,
 1614|     53|					"Adding more to control: %p at: %p fsn: %u next_fsn: %u included: %u\n",
 1615|     53|					control, at,
 1616|     53|					at->rec.data.fsn,
 1617|     53|					next_fsn, control->fsn_included);
 1618|     53|				TAILQ_REMOVE(&control->reasm, at, sctp_next);
  ------------------
  |  Branch (1618:5): [True: 17, False: 36]
  |  Branch (1618:5): [Folded, False: 53]
  ------------------
 1619|     53|				lenadded = sctp_add_chk_to_control(control, strm, stcb, asoc, at, SCTP_READ_LOCK_NOT_HELD);
  ------------------
  |  |   41|     53|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
 1620|     53|				if (control->on_read_q) {
  ------------------
  |  Branch (1620:9): [True: 0, False: 53]
  ------------------
 1621|      0|					do_wakeup = 1;
 1622|     53|				} 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|     53|					asoc->size_on_all_streams += lenadded;
 1630|     53|				}
 1631|     53|				next_fsn++;
 1632|     53|				if (control->end_added && control->pdapi_started) {
  ------------------
  |  Branch (1632:9): [True: 24, False: 29]
  |  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|    133|			} else {
 1646|    133|				break;
 1647|    133|			}
 1648|    186|		}
 1649|  1.21k|	}
 1650|  2.65k|	if (do_wakeup) {
  ------------------
  |  Branch (1650:6): [True: 0, False: 2.65k]
  ------------------
 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.65k|}
sctp_indata.c:sctp_abort_in_reasm:
  436|    290|{
  437|    290|	char msg[SCTP_DIAG_INFO_LEN];
  438|    290|	struct mbuf *oper;
  439|       |
  440|    290|	if (stcb->asoc.idata_supported) {
  ------------------
  |  Branch (440:6): [True: 234, False: 56]
  ------------------
  441|    234|		SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|    234|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 234]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
  442|    234|		              "Reass %x,CF:%x,TSN=%8.8x,SID=%4.4x,FSN=%8.8x,MID:%8.8x",
  443|    234|		              opspot,
  444|    234|		              control->fsn_included,
  445|    234|		              chk->rec.data.tsn,
  446|    234|		              chk->rec.data.sid,
  447|    234|		              chk->rec.data.fsn, chk->rec.data.mid);
  448|    234|	} else {
  449|     56|		SCTP_SNPRINTF(msg, sizeof(msg),
  ------------------
  |  |  820|     56|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 56]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
  450|     56|		              "Reass %x,CI:%x,TSN=%8.8x,SID=%4.4x,FSN=%4.4x,SSN:%4.4x",
  451|     56|		              opspot,
  452|     56|		              control->fsn_included,
  453|     56|		              chk->rec.data.tsn,
  454|     56|		              chk->rec.data.sid,
  455|     56|		              chk->rec.data.fsn,
  456|     56|		              (uint16_t)chk->rec.data.mid);
  457|     56|	}
  458|    290|	oper = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|    290|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
  459|    290|	sctp_m_freem(chk->data);
  ------------------
  |  |   52|    290|#define sctp_m_freem m_freem
  ------------------
  460|    290|	chk->data = NULL;
  461|    290|	sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|    290|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|    290|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 290]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|    290|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 290, False: 0]
  |  |  ------------------
  |  |  149|    290|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|    290|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    290|	do {                         \
  |  |  |  |  |  |  113|    290|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 290]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|    290|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 290]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|    290|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 290, False: 0]
  |  |  ------------------
  |  |  151|    290|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|    290|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|    290|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 290, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|    290|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|    290|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|    290|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 290]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  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|    290|	} \
  |  |  |  |  245|    290|}
  |  |  ------------------
  |  |  152|    290|			(_chk)->whoTo = NULL; \
  |  |  153|    290|		} \
  |  |  154|    290|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|    290|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 290]
  |  |  ------------------
  |  |  155|    290|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|    290|#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|    290|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 290]
  |  |  ------------------
  |  |  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|    290|		} else { \
  |  |  159|    290|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|    290|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|    290|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|    290|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|    290|		} \
  |  |  163|    290|	} 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|    290|}
  ------------------
  |  Branch (461:2): [Folded, False: 290]
  ------------------
  462|    290|	stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_1;
  ------------------
  |  |  757|    290|#define SCTP_FROM_SCTP_INDATA       0x30000000
  ------------------
              	stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_1;
  ------------------
  |  |  769|    290|#define SCTP_LOC_1  0x00000001
  ------------------
  463|    290|	sctp_abort_an_association(stcb->sctp_ep, stcb, oper, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    290|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  464|    290|	*abort_flag = 1;
  465|    290|}
sctp_indata.c:sctp_inject_old_unordered_data:
  936|  2.43k|{
  937|  2.43k|	struct sctp_tmit_chunk *at;
  938|  2.43k|	int inserted;
  939|       |	/*
  940|       |	 * Here we need to place the chunk into the control structure
  941|       |	 * sorted in the correct order.
  942|       |	 */
  943|  2.43k|	if (chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
  ------------------
  |  |  513|  2.43k|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (943:6): [True: 1.45k, False: 985]
  ------------------
  944|       |		/* Its the very first one. */
  945|  1.45k|		SCTPDBG(SCTP_DEBUG_XXX,
  946|  1.45k|			"chunk is a first fsn: %u becomes fsn_included\n",
  947|  1.45k|			chk->rec.data.fsn);
  948|  1.45k|		at = TAILQ_FIRST(&control->reasm);
  949|  1.45k|		if (at && SCTP_TSN_GT(chk->rec.data.fsn, at->rec.data.fsn)) {
  ------------------
  |  |  889|    816|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    816|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 311, False: 505]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 311]
  |  |  |  |  ------------------
  |  |  |  |  884|    816|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 505, False: 311]
  |  |  |  |  |  Branch (884:43): [True: 505, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (949:7): [True: 816, False: 637]
  ------------------
  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|    505|			goto place_chunk;
  957|    505|		}
  958|    948|		if (control->first_frag_seen) {
  ------------------
  |  Branch (958:7): [True: 402, False: 546]
  ------------------
  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|    402|			struct mbuf *tdata;
  966|    402|			uint32_t tmp;
  967|       |
  968|    402|			if (SCTP_TSN_GT(chk->rec.data.fsn, control->fsn_included)) {
  ------------------
  |  |  889|    402|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    402|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 168, False: 234]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 168]
  |  |  |  |  ------------------
  |  |  |  |  884|    402|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 234, False: 168]
  |  |  |  |  |  Branch (884:43): [True: 234, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  969|       |				/* Easy way the start of a new guy beyond the lowest */
  970|    234|				goto place_chunk;
  971|    234|			}
  972|    168|			if ((chk->rec.data.fsn == control->fsn_included) ||
  ------------------
  |  Branch (972:8): [True: 0, False: 168]
  ------------------
  973|    168|			    (control->pdapi_started)) {
  ------------------
  |  Branch (973:8): [True: 0, False: 168]
  ------------------
  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|    168|			tdata = control->data;
  996|    168|			control->data = chk->data;
  997|    168|			chk->data = tdata;
  998|       |			/* Save the lengths */
  999|    168|			chk->send_size = control->length;
 1000|       |			/* Recompute length of control and tail pointer */
 1001|    168|			sctp_setup_tail_pointer(control);
 1002|       |			/* Fix the FSN included */
 1003|    168|			tmp = control->fsn_included;
 1004|    168|			control->fsn_included = chk->rec.data.fsn;
 1005|    168|			chk->rec.data.fsn = tmp;
 1006|       |			/* Fix the TSN included */
 1007|    168|			tmp = control->sinfo_tsn;
 1008|    168|			control->sinfo_tsn = chk->rec.data.tsn;
 1009|    168|			chk->rec.data.tsn = tmp;
 1010|       |			/* Fix the PPID included */
 1011|    168|			tmp = control->sinfo_ppid;
 1012|    168|			control->sinfo_ppid = chk->rec.data.ppid;
 1013|    168|			chk->rec.data.ppid = tmp;
 1014|       |			/* Fix tail pointer */
 1015|    168|			goto place_chunk;
 1016|    168|		}
 1017|    546|		control->first_frag_seen = 1;
 1018|    546|		control->fsn_included = chk->rec.data.fsn;
 1019|    546|		control->top_fsn = chk->rec.data.fsn;
 1020|    546|		control->sinfo_tsn = chk->rec.data.tsn;
 1021|    546|		control->sinfo_ppid = chk->rec.data.ppid;
 1022|    546|		control->data = chk->data;
 1023|    546|		sctp_mark_non_revokable(asoc, chk->rec.data.tsn);
 1024|    546|		chk->data = NULL;
 1025|    546|		sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|    546|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|    546|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 546]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|    546|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 546, False: 0]
  |  |  ------------------
  |  |  149|    546|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|    546|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    546|	do {                         \
  |  |  |  |  |  |  113|    546|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 546]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|    546|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 546]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|    546|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 546, False: 0]
  |  |  ------------------
  |  |  151|    546|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|    546|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|    546|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 546, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|    546|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|    546|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|    546|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 546]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  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|    546|	} \
  |  |  |  |  245|    546|}
  |  |  ------------------
  |  |  152|    546|			(_chk)->whoTo = NULL; \
  |  |  153|    546|		} \
  |  |  154|    546|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|    546|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 546]
  |  |  ------------------
  |  |  155|    546|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|    546|#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|    546|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 546]
  |  |  ------------------
  |  |  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|    546|		} else { \
  |  |  159|    546|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|    546|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|    546|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|    546|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|    546|		} \
  |  |  163|    546|	} 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|    546|}
  ------------------
  |  Branch (1025:3): [Folded, False: 546]
  ------------------
 1026|    546|		sctp_setup_tail_pointer(control);
 1027|    546|		return;
 1028|    546|	}
 1029|  1.89k|place_chunk:
 1030|  1.89k|	inserted = 0;
 1031|  5.77k|	TAILQ_FOREACH(at, &control->reasm, sctp_next) {
  ------------------
  |  Branch (1031:2): [True: 5.77k, False: 802]
  ------------------
 1032|  5.77k|		if (SCTP_TSN_GT(at->rec.data.fsn, chk->rec.data.fsn)) {
  ------------------
  |  |  889|  5.77k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  5.77k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 4.68k, False: 1.09k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 4.68k]
  |  |  |  |  ------------------
  |  |  |  |  884|  5.77k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 1.09k, False: 4.68k]
  |  |  |  |  |  Branch (884:43): [True: 1.09k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1033|       |			/*
 1034|       |			 * This one in queue is bigger than the new one, insert
 1035|       |			 * the new one before at.
 1036|       |			 */
 1037|  1.09k|			asoc->size_on_reasm_queue += chk->send_size;
 1038|  1.09k|			sctp_ucount_incr(asoc->cnt_on_reasm_queue);
  ------------------
  |  |  266|  1.09k|#define sctp_ucount_incr(val) { \
  |  |  267|  1.09k|	val++; \
  |  |  268|  1.09k|}
  ------------------
 1039|  1.09k|			inserted = 1;
 1040|  1.09k|			TAILQ_INSERT_BEFORE(at, chk, sctp_next);
  ------------------
  |  Branch (1040:4): [Folded, False: 1.09k]
  ------------------
 1041|  1.09k|			break;
 1042|  4.68k|		} else if (at->rec.data.fsn == chk->rec.data.fsn) {
  ------------------
  |  Branch (1042:14): [True: 0, False: 4.68k]
  ------------------
 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|  5.77k|	}
 1054|  1.89k|	if (inserted == 0) {
  ------------------
  |  Branch (1054:6): [True: 802, False: 1.09k]
  ------------------
 1055|       |		/* Its at the end */
 1056|    802|		asoc->size_on_reasm_queue += chk->send_size;
 1057|    802|		sctp_ucount_incr(asoc->cnt_on_reasm_queue);
  ------------------
  |  |  266|    802|#define sctp_ucount_incr(val) { \
  |  |  267|    802|	val++; \
  |  |  268|    802|}
  ------------------
 1058|    802|		control->top_fsn = chk->rec.data.fsn;
 1059|       |		TAILQ_INSERT_TAIL(&control->reasm, chk, sctp_next);
  ------------------
  |  Branch (1059:3): [Folded, False: 802]
  ------------------
 1060|    802|	}
 1061|  1.89k|}
sctp_indata.c:sctp_setup_tail_pointer:
  666|  1.91k|{
  667|  1.91k|	struct mbuf *m, *prev = NULL;
  668|  1.91k|	struct sctp_tcb *stcb;
  669|       |
  670|  1.91k|	stcb = control->stcb;
  671|  1.91k|	control->held_length = 0;
  672|  1.91k|	control->length = 0;
  673|  1.91k|	m = control->data;
  674|  4.57k|	while (m) {
  ------------------
  |  Branch (674:9): [True: 2.66k, False: 1.91k]
  ------------------
  675|  2.66k|		if (SCTP_BUF_LEN(m) == 0) {
  ------------------
  |  |  801|  2.66k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.66k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (675:7): [True: 524, False: 2.13k]
  ------------------
  676|       |			/* Skip mbufs with NO length */
  677|    524|			if (prev == NULL) {
  ------------------
  |  Branch (677:8): [True: 524, False: 0]
  ------------------
  678|       |				/* First one */
  679|    524|				control->data = sctp_m_free(m);
  ------------------
  |  |   51|    524|#define sctp_m_free m_free
  ------------------
  680|    524|				m = control->data;
  681|    524|			} 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|    524|			if (m == NULL) {
  ------------------
  |  Branch (685:8): [True: 0, False: 524]
  ------------------
  686|      0|				control->tail_mbuf = prev;
  687|      0|			}
  688|    524|			continue;
  689|    524|		}
  690|  2.13k|		prev = m;
  691|  2.13k|		atomic_add_int(&control->length, SCTP_BUF_LEN(m));
  ------------------
  |  |   94|  2.13k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  692|  2.13k|		if (control->on_read_q) {
  ------------------
  |  Branch (692:7): [True: 0, False: 2.13k]
  ------------------
  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|  2.13k|		m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|  2.13k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  2.13k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  700|  2.13k|	}
  701|  1.91k|	if (prev) {
  ------------------
  |  Branch (701:6): [True: 1.91k, False: 0]
  ------------------
  702|  1.91k|		control->tail_mbuf = prev;
  703|  1.91k|	}
  704|  1.91k|}
sctp_indata.c:sctp_add_chk_to_control:
 1291|    455|{
 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|    455|	uint32_t added = 0;
 1298|    455|	bool i_locked = false;
 1299|       |
 1300|    455|	if (control->on_read_q) {
  ------------------
  |  Branch (1300:6): [True: 0, False: 455]
  ------------------
 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|    455|	if (control->data == NULL) {
  ------------------
  |  Branch (1310:6): [True: 0, False: 455]
  ------------------
 1311|      0|		control->data = chk->data;
 1312|      0|		sctp_setup_tail_pointer(control);
 1313|    455|	} else {
 1314|    455|		sctp_add_to_tail_pointer(control, chk->data, &added);
 1315|    455|	}
 1316|    455|	control->fsn_included = chk->rec.data.fsn;
 1317|    455|	asoc->size_on_reasm_queue -= chk->send_size;
 1318|    455|	sctp_ucount_decr(asoc->cnt_on_reasm_queue);
  ------------------
  |  |  270|    455|#define sctp_ucount_decr(val) { \
  |  |  271|    455|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 455, False: 0]
  |  |  ------------------
  |  |  272|    455|		val--; \
  |  |  273|    455|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|    455|}
  ------------------
 1319|    455|	sctp_mark_non_revokable(asoc, chk->rec.data.tsn);
 1320|    455|	chk->data = NULL;
 1321|    455|	if (chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
  ------------------
  |  |  513|    455|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (1321:6): [True: 154, False: 301]
  ------------------
 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|    455|	if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) {
  ------------------
  |  |  512|    455|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (1326:6): [True: 207, False: 248]
  ------------------
 1327|       |		/* Its complete */
 1328|    207|		if ((control->on_strm_q) && (control->on_read_q)) {
  ------------------
  |  Branch (1328:7): [True: 207, False: 0]
  |  Branch (1328:31): [True: 0, False: 207]
  ------------------
 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|    207|		control->end_added = 1;
 1354|    207|		control->last_frag_seen = 1;
 1355|    207|	}
 1356|    455|out:
 1357|    455|	if (i_locked) {
  ------------------
  |  Branch (1357:6): [True: 0, False: 455]
  ------------------
 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|    455|	sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|    455|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|    455|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 455]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|    455|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 455, False: 0]
  |  |  ------------------
  |  |  149|    455|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|    455|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    455|	do {                         \
  |  |  |  |  |  |  113|    455|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 455]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|    455|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 455]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|    455|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 455, False: 0]
  |  |  ------------------
  |  |  151|    455|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|    455|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|    455|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 455, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|    455|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|    455|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|    455|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 455]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  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|    455|	} \
  |  |  |  |  245|    455|}
  |  |  ------------------
  |  |  152|    455|			(_chk)->whoTo = NULL; \
  |  |  153|    455|		} \
  |  |  154|    455|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|    455|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 18, False: 437]
  |  |  ------------------
  |  |  155|    455|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|    437|#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|    437|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 437]
  |  |  ------------------
  |  |  156|     18|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|     18|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|     18|	free(element);  \
  |  |  |  |  709|     18|}
  |  |  ------------------
  |  |  157|     18|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|     18|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|     18|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|    437|		} else { \
  |  |  159|    437|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|    437|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|    437|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|    437|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|    437|		} \
  |  |  163|    455|	} 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|    455|}
  ------------------
  |  Branch (1360:2): [Folded, False: 437]
  ------------------
 1361|    455|	return (added);
 1362|    455|}
sctp_indata.c:sctp_add_to_tail_pointer:
  708|    455|{
  709|    455|	struct mbuf *prev=NULL;
  710|    455|	struct sctp_tcb *stcb;
  711|       |
  712|    455|	stcb = control->stcb;
  713|    455|	if (stcb == NULL) {
  ------------------
  |  Branch (713:6): [True: 0, False: 455]
  ------------------
  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|    455|	if (control->tail_mbuf == NULL) {
  ------------------
  |  Branch (720:6): [True: 0, False: 455]
  ------------------
  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|    455|	control->tail_mbuf->m_next = m;
  ------------------
  |  |  217|    455|#define	m_next		m_hdr.mh_next
  ------------------
  728|  1.11k|	while (m) {
  ------------------
  |  Branch (728:9): [True: 660, False: 455]
  ------------------
  729|    660|		if (SCTP_BUF_LEN(m) == 0) {
  ------------------
  |  |  801|    660|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    660|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (729:7): [True: 135, False: 525]
  ------------------
  730|       |			/* Skip mbufs with NO length */
  731|    135|			if (prev == NULL) {
  ------------------
  |  Branch (731:8): [True: 135, False: 0]
  ------------------
  732|       |				/* First one */
  733|    135|				control->tail_mbuf->m_next = sctp_m_free(m);
  ------------------
  |  |  217|    135|#define	m_next		m_hdr.mh_next
  ------------------
              				control->tail_mbuf->m_next = sctp_m_free(m);
  ------------------
  |  |   51|    135|#define sctp_m_free m_free
  ------------------
  734|    135|				m = control->tail_mbuf->m_next;
  ------------------
  |  |  217|    135|#define	m_next		m_hdr.mh_next
  ------------------
  735|    135|			} 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|    135|			if (m == NULL) {
  ------------------
  |  Branch (739:8): [True: 0, False: 135]
  ------------------
  740|      0|				control->tail_mbuf = prev;
  741|      0|			}
  742|    135|			continue;
  743|    135|		}
  744|    525|		prev = m;
  745|    525|		if (control->on_read_q) {
  ------------------
  |  Branch (745:7): [True: 0, False: 525]
  ------------------
  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|    525|		*added += SCTP_BUF_LEN(m);
  ------------------
  |  |  801|    525|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    525|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  753|    525|		atomic_add_int(&control->length, SCTP_BUF_LEN(m));
  ------------------
  |  |   94|    525|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  754|    525|		m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|    525|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    525|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  755|    525|	}
  756|    455|	if (prev) {
  ------------------
  |  Branch (756:6): [True: 455, False: 0]
  ------------------
  757|    455|		control->tail_mbuf = prev;
  758|    455|	}
  759|    455|}
sctp_indata.c:sctp_deliver_reasm_check:
 1066|  5.10k|{
 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|  5.10k|	struct sctp_queued_to_read *control, *nctl = NULL;
 1076|  5.10k|	uint32_t next_to_del;
 1077|  5.10k|	uint32_t pd_point;
 1078|  5.10k|	int ret = 0;
 1079|       |
 1080|  5.10k|	if (stcb->sctp_socket) {
  ------------------
  |  Branch (1080:6): [True: 5.10k, False: 0]
  ------------------
 1081|  5.10k|		pd_point = min(SCTP_SB_LIMIT_RCV(stcb->sctp_socket) >> SCTP_PARTIAL_DELIVERY_SHIFT,
  ------------------
  |  |   66|  5.10k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 5.10k]
  |  |  ------------------
  ------------------
 1082|  5.10k|			       stcb->sctp_ep->partial_delivery_point);
 1083|  5.10k|	} else {
 1084|      0|		pd_point = stcb->sctp_ep->partial_delivery_point;
 1085|      0|	}
 1086|  5.10k|	control = TAILQ_FIRST(&strm->uno_inqueue);
 1087|       |
 1088|  5.10k|	if ((control != NULL) &&
  ------------------
  |  Branch (1088:6): [True: 3.64k, False: 1.45k]
  ------------------
 1089|  3.64k|	    (asoc->idata_supported == 0)) {
  ------------------
  |  Branch (1089:6): [True: 2.51k, False: 1.13k]
  ------------------
 1090|       |		/* Special handling needed for "old" data format */
 1091|  2.51k|		if (sctp_handle_old_unordered_data(stcb, asoc, strm, control, pd_point, inp_read_lock_held)) {
  ------------------
  |  Branch (1091:7): [True: 2.51k, False: 0]
  ------------------
 1092|  2.51k|			goto done_un;
 1093|  2.51k|		}
 1094|  2.51k|	}
 1095|  2.58k|	if (strm->pd_api_started) {
  ------------------
  |  Branch (1095:6): [True: 0, False: 2.58k]
  ------------------
 1096|       |		/* Can't add more */
 1097|      0|		return (0);
 1098|      0|	}
 1099|  7.89k|	while (control) {
  ------------------
  |  Branch (1099:9): [True: 5.30k, False: 2.58k]
  ------------------
 1100|  5.30k|		SCTPDBG(SCTP_DEBUG_XXX, "Looking at control: %p e(%d) ssn: %u top_fsn: %u inc_fsn: %u -uo\n",
 1101|  5.30k|			control, control->end_added, control->mid, control->top_fsn, control->fsn_included);
 1102|  5.30k|		nctl = TAILQ_NEXT(control, next_instrm);
 1103|  5.30k|		if (control->end_added) {
  ------------------
  |  Branch (1103:7): [True: 17, False: 5.29k]
  ------------------
 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: 9, False: 8]
  |  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|  5.29k|		} else {
 1133|       |			/* Can we do a PD-API for this un-ordered guy? */
 1134|  5.29k|			if ((control->length >= pd_point) && (strm->pd_api_started == 0)) {
  ------------------
  |  Branch (1134:8): [True: 0, False: 5.29k]
  |  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|  5.29k|		}
 1145|  5.30k|		control = nctl;
 1146|  5.30k|	}
 1147|  5.10k|done_un:
 1148|  5.10k|	control = TAILQ_FIRST(&strm->inqueue);
 1149|  5.10k|	if (strm->pd_api_started) {
  ------------------
  |  Branch (1149:6): [True: 0, False: 5.10k]
  ------------------
 1150|       |		/* Can't add more */
 1151|      0|		return (0);
 1152|      0|	}
 1153|  5.10k|	if (control == NULL) {
  ------------------
  |  Branch (1153:6): [True: 2.24k, False: 2.85k]
  ------------------
 1154|  2.24k|		return (ret);
 1155|  2.24k|	}
 1156|  2.85k|	if (SCTP_MID_EQ(asoc->idata_supported, strm->last_mid_delivered, control->mid)) {
  ------------------
  |  |  893|  2.85k|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 268, False: 2.58k]
  |  |  |  Branch (893:31): [True: 1.27k, False: 1.58k]
  |  |  ------------------
  ------------------
 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|    268|		nctl = TAILQ_NEXT(control, next_instrm);
 1163|    268|		SCTPDBG(SCTP_DEBUG_XXX,
 1164|    268|			"Looking at control: %p e(%d) ssn: %u top_fsn: %u inc_fsn: %u (lastdel: %u)- o\n",
 1165|    268|			control, control->end_added, control->mid,
 1166|    268|			control->top_fsn, control->fsn_included,
 1167|    268|			strm->last_mid_delivered);
 1168|    268|		if (control->end_added) {
  ------------------
  |  Branch (1168:7): [True: 34, False: 234]
  ------------------
 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|    268|	}
 1203|  2.85k|	if (strm->pd_api_started) {
  ------------------
  |  Branch (1203:6): [True: 0, False: 2.85k]
  ------------------
 1204|       |		/* Can't add more must have gotten an un-ordered above being partially delivered. */
 1205|      0|		return (0);
 1206|      0|	}
 1207|  2.86k|deliver_more:
 1208|  2.86k|	next_to_del = strm->last_mid_delivered + 1;
 1209|  2.86k|	if (control) {
  ------------------
  |  Branch (1209:6): [True: 2.84k, False: 19]
  ------------------
 1210|  2.84k|		SCTPDBG(SCTP_DEBUG_XXX,
 1211|  2.84k|			"Looking at control: %p e(%d) ssn: %u top_fsn: %u inc_fsn: %u (nxtdel: %u)- o\n",
 1212|  2.84k|			control, control->end_added, control->mid, control->top_fsn, control->fsn_included,
 1213|  2.84k|			next_to_del);
 1214|  2.84k|		nctl = TAILQ_NEXT(control, next_instrm);
 1215|  2.84k|		if (SCTP_MID_EQ(asoc->idata_supported, control->mid, next_to_del) &&
  ------------------
  |  |  893|  5.69k|#define SCTP_MID_EQ(i, a, b) (((i) == 1) ? a == b : (uint16_t)a == (uint16_t)b)
  |  |  ------------------
  |  |  |  Branch (893:30): [True: 1.11k, False: 1.73k]
  |  |  |  Branch (893:31): [True: 1.27k, False: 1.57k]
  |  |  ------------------
  ------------------
 1216|  1.11k|		    (control->first_frag_seen)) {
  ------------------
  |  Branch (1216:7): [True: 406, False: 704]
  ------------------
 1217|    406|			int done;
 1218|       |
 1219|       |			/* Ok we can deliver it onto the stream. */
 1220|    406|			if (control->end_added) {
  ------------------
  |  Branch (1220:8): [True: 12, False: 394]
  ------------------
 1221|       |				/* We are done with it afterwards */
 1222|     12|				if (control->on_strm_q) {
  ------------------
  |  Branch (1222:9): [True: 12, False: 0]
  ------------------
 1223|     12|#ifdef INVARIANTS
 1224|     12|					if (control->on_strm_q != SCTP_ON_ORDERED) {
  ------------------
  |  |  553|     12|#define SCTP_ON_ORDERED 1
  ------------------
  |  Branch (1224:10): [True: 0, False: 12]
  ------------------
 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|     12|#endif
 1229|     12|					SCTP_STAT_INCR_COUNTER64(sctps_reasmusrmsgs);
  ------------------
  |  | 1128|     12|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|     12|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     12|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     12|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1230|     12|					TAILQ_REMOVE(&strm->inqueue, control, next_instrm);
  ------------------
  |  Branch (1230:6): [True: 6, False: 6]
  |  Branch (1230:6): [Folded, False: 12]
  ------------------
 1231|     12|					if (asoc->size_on_all_streams >= control->length) {
  ------------------
  |  Branch (1231:10): [True: 12, False: 0]
  ------------------
 1232|     12|						asoc->size_on_all_streams -= control->length;
 1233|     12|					} 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|     12|					sctp_ucount_decr(asoc->cnt_on_all_streams);
  ------------------
  |  |  270|     12|#define sctp_ucount_decr(val) { \
  |  |  271|     12|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 12, False: 0]
  |  |  ------------------
  |  |  272|     12|		val--; \
  |  |  273|     12|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|     12|}
  ------------------
 1241|     12|					control->on_strm_q = 0;
 1242|     12|				}
 1243|     12|				ret++;
 1244|     12|			}
 1245|    406|			if (((control->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|    406|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
              			if (((control->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
  ------------------
  |  |  514|    406|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
  |  Branch (1245:8): [True: 5, False: 401]
  ------------------
 1246|       |				/* A singleton now slipping through - mark it non-revokable too */
 1247|      5|				sctp_mark_non_revokable(asoc, control->sinfo_tsn);
 1248|    401|			} else if (control->end_added == 0) {
  ------------------
  |  Branch (1248:15): [True: 394, False: 7]
  ------------------
 1249|       |				/* Check if we can defer adding until its all there */
 1250|    394|				if ((control->length < pd_point) || (strm->pd_api_started)) {
  ------------------
  |  Branch (1250:9): [True: 394, False: 0]
  |  Branch (1250:41): [True: 0, False: 0]
  ------------------
 1251|       |					/* Don't need it or cannot add more (one being delivered that way) */
 1252|    394|					goto out;
 1253|    394|				}
 1254|    394|			}
 1255|     12|			done = (control->end_added) && (control->last_frag_seen);
  ------------------
  |  Branch (1255:11): [True: 12, False: 0]
  |  Branch (1255:35): [True: 12, False: 0]
  ------------------
 1256|     12|			if (control->on_read_q == 0) {
  ------------------
  |  Branch (1256:8): [True: 12, False: 0]
  ------------------
 1257|     12|				if (!done) {
  ------------------
  |  Branch (1257:9): [True: 0, False: 12]
  ------------------
 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|     12|				sctp_add_to_readq(stcb->sctp_ep, stcb,
 1271|     12|						  control,
 1272|     12|						  &stcb->sctp_socket->so_rcv, control->end_added,
 1273|     12|						  inp_read_lock_held, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     12|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1274|     12|			}
 1275|     12|			strm->last_mid_delivered = next_to_del;
 1276|     12|			if (done) {
  ------------------
  |  Branch (1276:8): [True: 12, False: 0]
  ------------------
 1277|     12|				control = nctl;
 1278|     12|				goto deliver_more;
 1279|     12|			}
 1280|     12|		}
 1281|  2.84k|	}
 1282|  2.85k|out:
 1283|  2.85k|	return (ret);
 1284|  2.86k|}
sctp_indata.c:sctp_handle_old_unordered_data:
  791|  2.51k|{
  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.51k|	struct sctp_tmit_chunk *chk, *lchk, *tchk;
  802|  2.51k|	uint32_t fsn;
  803|  2.51k|	struct sctp_queued_to_read *nc;
  804|  2.51k|	int cnt_added;
  805|       |
  806|  2.51k|	if (control->first_frag_seen == 0) {
  ------------------
  |  Branch (806:6): [True: 1.08k, False: 1.42k]
  ------------------
  807|       |		/* Nothing we can do, we have not seen the first piece yet */
  808|  1.08k|		return (1);
  809|  1.08k|	}
  810|       |	/* Collapse any we can */
  811|  1.42k|	cnt_added = 0;
  812|  1.51k|restart:
  813|  1.51k|	fsn = control->fsn_included + 1;
  814|       |	/* Now what can we add? */
  815|  1.51k|	TAILQ_FOREACH_SAFE(chk, &control->reasm, sctp_next, lchk) {
  ------------------
  |  | 1129|  1.51k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  1.72k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 1.18k, False: 549]
  |  |  |  Branch (1130:24): [True: 1.18k, False: 0]
  |  |  ------------------
  |  | 1131|  1.51k|              (var) = (tvar))
  ------------------
  816|  1.18k|		if (chk->rec.data.fsn == fsn) {
  ------------------
  |  Branch (816:7): [True: 402, False: 778]
  ------------------
  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: 277, False: 125]
  |  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: 183, False: 219]
  ------------------
  829|       |				/* We are done */
  830|    183|				if (!TAILQ_EMPTY(&control->reasm)) {
  ------------------
  |  Branch (830:9): [True: 147, False: 36]
  ------------------
  831|       |					/*
  832|       |					 * Ok we have to move anything left on
  833|       |					 * the control queue to a new control.
  834|       |					 */
  835|    147|					sctp_build_readq_entry_from_ctl(nc, control);
  836|    147|					tchk = TAILQ_FIRST(&control->reasm);
  837|    147|					if (tchk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
  ------------------
  |  |  513|    147|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (837:10): [True: 127, False: 20]
  ------------------
  838|    127|						TAILQ_REMOVE(&control->reasm, tchk, sctp_next);
  ------------------
  |  Branch (838:7): [True: 86, False: 41]
  |  Branch (838:7): [Folded, False: 127]
  ------------------
  839|    127|						if (asoc->size_on_reasm_queue >= tchk->send_size) {
  ------------------
  |  Branch (839:11): [True: 127, False: 0]
  ------------------
  840|    127|							asoc->size_on_reasm_queue -= tchk->send_size;
  841|    127|						} 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|    127|						sctp_ucount_decr(asoc->cnt_on_reasm_queue);
  ------------------
  |  |  270|    127|#define sctp_ucount_decr(val) { \
  |  |  271|    127|	if (val > 0) { \
  |  |  ------------------
  |  |  |  Branch (271:6): [True: 127, False: 0]
  |  |  ------------------
  |  |  272|    127|		val--; \
  |  |  273|    127|	} else { \
  |  |  274|      0|		val = 0; \
  |  |  275|      0|	} \
  |  |  276|    127|}
  ------------------
  849|    127|						nc->first_frag_seen = 1;
  850|    127|						nc->fsn_included = tchk->rec.data.fsn;
  851|    127|						nc->data = tchk->data;
  852|    127|						nc->sinfo_ppid = tchk->rec.data.ppid;
  853|    127|						nc->sinfo_tsn = tchk->rec.data.tsn;
  854|    127|						sctp_mark_non_revokable(asoc, tchk->rec.data.tsn);
  855|    127|						tchk->data = NULL;
  856|    127|						sctp_free_a_chunk(stcb, tchk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|    127|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|    127|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 127]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|    127|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 127, False: 0]
  |  |  ------------------
  |  |  149|    127|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|    127|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    127|	do {                         \
  |  |  |  |  |  |  113|    127|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 127]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|    127|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 127]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|    127|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 127, False: 0]
  |  |  ------------------
  |  |  151|    127|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|    127|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|    127|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 127, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|    127|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|    127|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|    127|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 127]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  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|    127|	} \
  |  |  |  |  245|    127|}
  |  |  ------------------
  |  |  152|    127|			(_chk)->whoTo = NULL; \
  |  |  153|    127|		} \
  |  |  154|    127|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|    127|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 12, False: 115]
  |  |  ------------------
  |  |  155|    127|		    (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|     12|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|     12|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|     12|	free(element);  \
  |  |  |  |  709|     12|}
  |  |  ------------------
  |  |  157|     12|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|     12|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|     12|#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|    127|	} 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|    127|}
  ------------------
  |  Branch (856:7): [Folded, False: 115]
  ------------------
  857|    127|						sctp_setup_tail_pointer(nc);
  858|    127|						tchk = TAILQ_FIRST(&control->reasm);
  859|    127|					}
  860|       |					/* Spin the rest onto the queue */
  861|    587|					while (tchk) {
  ------------------
  |  Branch (861:13): [True: 440, False: 147]
  ------------------
  862|    440|						TAILQ_REMOVE(&control->reasm, tchk, sctp_next);
  ------------------
  |  Branch (862:7): [True: 334, False: 106]
  |  Branch (862:7): [Folded, False: 440]
  ------------------
  863|    440|						TAILQ_INSERT_TAIL(&nc->reasm, tchk, sctp_next);
  ------------------
  |  Branch (863:7): [Folded, False: 440]
  ------------------
  864|    440|						tchk = TAILQ_FIRST(&control->reasm);
  865|    440|					}
  866|       |					/* Now lets add it to the queue after removing control */
  867|    147|					TAILQ_INSERT_TAIL(&strm->uno_inqueue, nc, next_instrm);
  ------------------
  |  Branch (867:6): [Folded, False: 147]
  ------------------
  868|    147|					nc->on_strm_q = SCTP_ON_UNORDERED;
  ------------------
  |  |  554|    147|#define SCTP_ON_UNORDERED 2
  ------------------
  869|    147|					if (control->on_strm_q) {
  ------------------
  |  Branch (869:10): [True: 147, False: 0]
  ------------------
  870|    147|						TAILQ_REMOVE(&strm->uno_inqueue, control, next_instrm);
  ------------------
  |  Branch (870:7): [True: 147, False: 0]
  |  Branch (870:7): [Folded, False: 147]
  ------------------
  871|    147|						control->on_strm_q = 0;
  872|    147|					}
  873|    147|				}
  874|    183|				if (control->pdapi_started) {
  ------------------
  |  Branch (874:9): [True: 0, False: 183]
  ------------------
  875|      0|					strm->pd_api_started = 0;
  876|      0|					control->pdapi_started = 0;
  877|      0|				}
  878|    183|				if (control->on_strm_q) {
  ------------------
  |  Branch (878:9): [True: 36, False: 147]
  ------------------
  879|     36|					TAILQ_REMOVE(&strm->uno_inqueue, control, next_instrm);
  ------------------
  |  Branch (879:6): [True: 0, False: 36]
  |  Branch (879:6): [Folded, False: 36]
  ------------------
  880|     36|					control->on_strm_q = 0;
  881|     36|					SCTP_STAT_INCR_COUNTER64(sctps_reasmusrmsgs);
  ------------------
  |  | 1128|     36|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|     36|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     36|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     36|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  882|     36|				}
  883|    183|				if (control->on_read_q == 0) {
  ------------------
  |  Branch (883:9): [True: 183, False: 0]
  ------------------
  884|    183|					sctp_add_to_readq(stcb->sctp_ep, stcb, control,
  885|    183|							  &stcb->sctp_socket->so_rcv, control->end_added,
  886|    183|							  inp_read_lock_held, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    183|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  887|    183|#if defined(__Userspace__)
  888|    183|				} else {
  889|      0|					sctp_invoke_recv_callback(stcb->sctp_ep, stcb, control, inp_read_lock_held);
  890|      0|#endif
  891|      0|				}
  892|    183|				sctp_wakeup_the_read_socket(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    183|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  893|    183|				if ((nc->first_frag_seen) && !TAILQ_EMPTY(&nc->reasm)) {
  ------------------
  |  Branch (893:9): [True: 127, False: 56]
  |  Branch (893:34): [True: 86, False: 41]
  ------------------
  894|       |					/* Switch to the new guy and continue */
  895|     86|					control = nc;
  896|     86|					goto restart;
  897|     97|				} else {
  898|     97|					if (nc->on_strm_q == 0) {
  ------------------
  |  Branch (898:10): [True: 36, False: 61]
  ------------------
  899|     36|						sctp_free_a_readq(stcb, nc);
  ------------------
  |  |  105|     36|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|     36|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 36]
  |  |  ------------------
  |  |  107|     36|		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|     36|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|     36|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|     36|	free(element);  \
  |  |  |  |  709|     36|}
  |  |  ------------------
  |  |  109|     36|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|     36|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|     36|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|     36|}
  ------------------
  900|     36|					}
  901|     97|				}
  902|     97|				return (1);
  903|    219|			} else {
  904|    219|				sctp_free_a_readq(stcb, nc);
  ------------------
  |  |  105|    219|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|    219|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 219]
  |  |  ------------------
  |  |  107|    219|		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|    219|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|    219|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|    219|	free(element);  \
  |  |  |  |  709|    219|}
  |  |  ------------------
  |  |  109|    219|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|    219|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|    219|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|    219|}
  ------------------
  905|    219|			}
  906|    778|		} else {
  907|       |			/* Can't add more */
  908|    778|			break;
  909|    778|		}
  910|  1.18k|	}
  911|  1.32k|	if (cnt_added && strm->pd_api_started) {
  ------------------
  |  Branch (911:6): [True: 164, False: 1.16k]
  |  Branch (911:19): [True: 0, False: 164]
  ------------------
  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.32k|	if ((control->length > pd_point) && (strm->pd_api_started == 0)) {
  ------------------
  |  Branch (917:6): [True: 0, False: 1.32k]
  |  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.32k|	} else {
  926|  1.32k|		return (1);
  927|  1.32k|	}
  928|  1.32k|}
sctp_indata.c:sctp_build_readq_entry_from_ctl:
  763|    147|{
  764|    147|	memset(nc, 0, sizeof(struct sctp_queued_to_read));
  765|    147|	nc->sinfo_stream = control->sinfo_stream;
  766|    147|	nc->mid = control->mid;
  767|    147|	TAILQ_INIT(&nc->reasm);
  ------------------
  |  Branch (767:2): [Folded, False: 147]
  ------------------
  768|    147|	nc->top_fsn = control->top_fsn;
  769|    147|	nc->mid = control->mid;
  770|    147|	nc->sinfo_flags = control->sinfo_flags;
  771|    147|	nc->sinfo_ppid = control->sinfo_ppid;
  772|    147|	nc->sinfo_context = control->sinfo_context;
  773|    147|	nc->fsn_included = 0xffffffff;
  774|    147|	nc->sinfo_tsn = control->sinfo_tsn;
  775|    147|	nc->sinfo_cumtsn = control->sinfo_cumtsn;
  776|    147|	nc->sinfo_assoc_id = control->sinfo_assoc_id;
  777|    147|	nc->whoFrom = control->whoFrom;
  778|    147|	atomic_add_int(&nc->whoFrom->ref_count, 1);
  ------------------
  |  |   94|    147|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  779|    147|	nc->stcb = control->stcb;
  780|    147|	nc->port_from = control->port_from;
  781|    147|	nc->do_not_ref_stcb = control->do_not_ref_stcb;
  782|    147|}
sctp_indata.c:sctp_kick_prsctp_reorder_queue:
 5301|  6.41k|{
 5302|  6.41k|	struct sctp_queued_to_read *control, *ncontrol;
 5303|  6.41k|	struct sctp_association *asoc;
 5304|  6.41k|	uint32_t mid;
 5305|  6.41k|	int need_reasm_check = 0;
 5306|       |
 5307|  6.41k|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|  6.41k|	do {                         \
  |  |  113|  6.41k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.41k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 6.41k]
  |  |  ------------------
  ------------------
 5308|  6.41k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  6.41k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.41k|	do {                         \
  |  |  |  |  113|  6.41k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.41k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.41k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5309|  6.41k|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|  6.41k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.41k|	do {                         \
  |  |  |  |  113|  6.41k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.41k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.41k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5310|       |
 5311|  6.41k|	asoc = &stcb->asoc;
 5312|  6.41k|	mid = strmin->last_mid_delivered;
 5313|       |	/*
 5314|       |	 * First deliver anything prior to and including the stream no that
 5315|       |	 * came in.
 5316|       |	 */
 5317|  6.41k|	TAILQ_FOREACH_SAFE(control, &strmin->inqueue, next_instrm, ncontrol) {
  ------------------
  |  | 1129|  6.41k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  6.41k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 6.41k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  6.41k|              (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|  6.41k|	if (need_reasm_check) {
  ------------------
  |  Branch (5366:6): [True: 0, False: 6.41k]
  ------------------
 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|  6.41k|	mid = strmin->last_mid_delivered + 1;
 5384|  6.41k|	TAILQ_FOREACH_SAFE(control, &strmin->inqueue, next_instrm, ncontrol) {
  ------------------
  |  | 1129|  6.41k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  6.41k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 6.41k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  6.41k|              (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|  6.41k|	if (need_reasm_check) {
  ------------------
  |  Branch (5434:6): [True: 0, False: 6.41k]
  ------------------
 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|  6.41k|}

sctp_is_there_unsent_data:
  192|  11.2k|{
  193|  11.2k|	int unsent_data;
  194|  11.2k|	unsigned int i;
  195|  11.2k|	struct sctp_stream_queue_pending *sp;
  196|  11.2k|	struct sctp_association *asoc;
  197|       |
  198|  11.2k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  11.2k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.2k|	do {                         \
  |  |  |  |  113|  11.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  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|  11.2k|	asoc = &stcb->asoc;
  205|  11.2k|	unsent_data = 0;
  206|  11.2k|	if (!stcb->asoc.ss_functions.sctp_ss_is_empty(stcb, asoc)) {
  ------------------
  |  Branch (206:6): [True: 3.37k, False: 7.85k]
  ------------------
  207|       |		/* Check to see if some data queued */
  208|  3.37k|		for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (208:15): [True: 3.37k, False: 0]
  ------------------
  209|       |			/*sa_ignore FREED_MEMORY*/
  210|  3.37k|			sp = TAILQ_FIRST(&stcb->asoc.strmout[i].outqueue);
  211|  3.37k|			if (sp == NULL) {
  ------------------
  |  Branch (211:8): [True: 0, False: 3.37k]
  ------------------
  212|      0|				continue;
  213|      0|			}
  214|  3.37k|			if ((sp->msg_is_complete) &&
  ------------------
  |  Branch (214:8): [True: 3.37k, False: 0]
  ------------------
  215|  3.37k|			    (sp->length == 0) &&
  ------------------
  |  Branch (215:8): [True: 0, False: 3.37k]
  ------------------
  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.37k|			} else {
  245|  3.37k|				unsent_data++;
  246|  3.37k|			}
  247|  3.37k|			if (unsent_data > 0) {
  ------------------
  |  Branch (247:8): [True: 3.37k, False: 0]
  ------------------
  248|  3.37k|				break;
  249|  3.37k|			}
  250|  3.37k|		}
  251|  3.37k|	}
  252|  11.2k|	return (unsent_data);
  253|  11.2k|}
sctp_reset_in_stream:
 3697|    492|{
 3698|    492|	uint32_t i;
 3699|    492|	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|    492|	if (number_entries) {
  ------------------
  |  Branch (3706:6): [True: 204, False: 288]
  ------------------
 3707|  4.01k|		for (i = 0; i < number_entries; i++) {
  ------------------
  |  Branch (3707:15): [True: 3.80k, False: 204]
  ------------------
 3708|  3.80k|			temp = ntohs(list[i]);
 3709|  3.80k|			if (temp >= stcb->asoc.streamincnt) {
  ------------------
  |  Branch (3709:8): [True: 2.29k, False: 1.51k]
  ------------------
 3710|  2.29k|				continue;
 3711|  2.29k|			}
 3712|  1.51k|			stcb->asoc.strmin[temp].last_mid_delivered = 0xffffffff;
 3713|  1.51k|		}
 3714|    288|	} else {
 3715|    288|		list = NULL;
 3716|  74.3k|		for (i = 0; i < stcb->asoc.streamincnt; i++) {
  ------------------
  |  Branch (3716:15): [True: 74.0k, False: 288]
  ------------------
 3717|  74.0k|			stcb->asoc.strmin[i].last_mid_delivered = 0xffffffff;
 3718|  74.0k|		}
 3719|    288|	}
 3720|    492|	sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_RECV, stcb, number_entries, (void *)list, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  719|    492|#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|    492|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3721|    492|}
sctp_common_input_processing:
 5707|  26.3k|{
 5708|  26.3k|	char msg[SCTP_DIAG_INFO_LEN];
 5709|  26.3k|	struct mbuf *m = *mm, *op_err;
 5710|  26.3k|	struct sctp_inpcb *inp = NULL, *inp_decr = NULL;
 5711|  26.3k|	struct sctp_tcb *stcb = NULL;
 5712|  26.3k|	struct sctp_nets *net = NULL;
 5713|  26.3k|#if defined(__Userspace__)
 5714|  26.3k|	struct socket *upcall_socket = NULL;
 5715|  26.3k|#endif
 5716|  26.3k|	uint32_t high_tsn;
 5717|  26.3k|	uint32_t cksum_in_hdr;
 5718|  26.3k|	int un_sent;
 5719|  26.3k|	int cnt_ctrl_ready = 0;
 5720|  26.3k|	int fwd_tsn_seen = 0, data_processed = 0;
 5721|  26.3k|	bool cksum_validated, stcb_looked_up;
 5722|       |
 5723|  26.3k|	SCTP_STAT_INCR(sctps_recvdatagrams);
  ------------------
  |  | 1112|  26.3k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  26.3k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  26.3k|#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|  26.3k|	stcb_looked_up = false;
 5730|  26.3k|	if (compute_crc != 0) {
  ------------------
  |  Branch (5730:6): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|cksum_validated:
 5831|       |	/* Destination port of 0 is illegal, based on RFC4960. */
 5832|  26.3k|	if (sh->dest_port == htons(0)) {
  ------------------
  |  Branch (5832:6): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|	if (!stcb_looked_up) {
  ------------------
  |  Branch (5839:6): [True: 26.3k, False: 0]
  ------------------
 5840|  26.3k|		stcb = sctp_findassociation_addr(m, offset, src, dst,
 5841|  26.3k|		                                 sh, ch, &inp, &net, vrf_id);
 5842|  26.3k|	}
 5843|  26.3k|#if defined(INET) || defined(INET6)
 5844|  26.3k|	if ((ch->chunk_type != SCTP_INITIATION) &&
  ------------------
  |  |  455|  26.3k|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (5844:6): [True: 26.3k, False: 19]
  ------------------
 5845|  26.3k|	    (net != NULL) && (net->port != port)) {
  ------------------
  |  Branch (5845:6): [True: 26.3k, False: 0]
  |  Branch (5845:23): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|#endif
 5860|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5861|       |	if (net != NULL) {
 5862|       |		net->flowtype = mflowtype;
 5863|       |		net->flowid = mflowid;
 5864|       |	}
 5865|       |#endif
 5866|  26.3k|	if (inp == NULL) {
  ------------------
  |  Branch (5866:6): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|	} else if (stcb == NULL) {
  ------------------
  |  Branch (5902:13): [True: 0, False: 26.3k]
  ------------------
 5903|      0|		inp_decr = inp;
 5904|      0|	}
 5905|  26.3k|	SCTPDBG(SCTP_DEBUG_INPUT1, "Ok, Common input processing called, m:%p iphlen:%d offset:%d length:%d stcb:%p\n",
 5906|  26.3k|		(void *)m, iphlen, offset, length, (void *)stcb);
 5907|  26.3k|	if (stcb) {
  ------------------
  |  Branch (5907:6): [True: 26.3k, False: 0]
  ------------------
 5908|       |		/* always clear this before beginning a packet */
 5909|  26.3k|		stcb->asoc.authenticated = 0;
 5910|  26.3k|		stcb->asoc.seen_a_sack_this_pkt = 0;
 5911|  26.3k|		SCTPDBG(SCTP_DEBUG_INPUT1, "stcb:%p state:%x\n",
 5912|  26.3k|			(void *)stcb, stcb->asoc.state);
 5913|       |
 5914|  26.3k|		if ((stcb->asoc.state & SCTP_STATE_WAS_ABORTED) ||
  ------------------
  |  |  467|  26.3k|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (5914:7): [True: 0, False: 26.3k]
  ------------------
 5915|  26.3k|		    (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED)) {
  ------------------
  |  |  465|  26.3k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (5915:7): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|	}
 5938|  26.3k|#if defined(__Userspace__)
 5939|  26.3k|	if ((stcb != NULL) &&
  ------------------
  |  Branch (5939:6): [True: 26.3k, False: 0]
  ------------------
 5940|  26.3k|	    ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) == 0) &&
  ------------------
  |  |  546|  26.3k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5940:6): [True: 26.3k, False: 0]
  ------------------
 5941|  26.3k|	    (stcb->sctp_socket != NULL)) {
  ------------------
  |  Branch (5941:6): [True: 26.3k, False: 0]
  ------------------
 5942|  26.3k|		if (stcb->sctp_socket->so_head != NULL) {
  ------------------
  |  Branch (5942:7): [True: 0, False: 26.3k]
  ------------------
 5943|      0|			upcall_socket = stcb->sctp_socket->so_head;
 5944|  26.3k|		} else {
 5945|  26.3k|			upcall_socket = stcb->sctp_socket;
 5946|  26.3k|		}
 5947|  26.3k|		SOCK_LOCK(upcall_socket);
  ------------------
  |  |  527|  26.3k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  26.3k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5948|  26.3k|		soref(upcall_socket);
  ------------------
  |  |  404|  26.3k|#define	soref(so) do {							\
  |  |  405|  26.3k|	SOCK_LOCK_ASSERT(so);						\
  |  |  ------------------
  |  |  |  |  325|  26.3k|#define	SOCK_LOCK_ASSERT(_so)		SOCKBUF_LOCK_ASSERT(&(_so)->so_rcv)
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  26.3k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  406|  26.3k|	++(so)->so_count;						\
  |  |  407|  26.3k|	SCTPDBG(SCTP_DEBUG_USR, "soref(%p) -> %d, %s:%s:%d\n",		\
  |  |  408|  26.3k|		(so), (so)->so_count,					\
  |  |  409|  26.3k|		__func__, __FILE__, __LINE__)				\
  |  |  410|  26.3k|} while (0)
  |  |  ------------------
  |  |  |  Branch (410:10): [Folded, False: 26.3k]
  |  |  ------------------
  ------------------
 5949|  26.3k|		SOCK_UNLOCK(upcall_socket);
  ------------------
  |  |  529|  26.3k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  26.3k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5950|  26.3k|	}
 5951|  26.3k|#endif
 5952|  26.3k|	if (IS_SCTP_CONTROL(ch)) {
  ------------------
  |  |  385|  26.3k|#define IS_SCTP_CONTROL(a) (((a)->chunk_type != SCTP_DATA) && ((a)->chunk_type != SCTP_IDATA))
  |  |  ------------------
  |  |  |  |  454|  26.3k|#define SCTP_DATA		0x00
  |  |  ------------------
  |  |               #define IS_SCTP_CONTROL(a) (((a)->chunk_type != SCTP_DATA) && ((a)->chunk_type != SCTP_IDATA))
  |  |  ------------------
  |  |  |  |  474|  24.1k|#define SCTP_IDATA		0x40
  |  |  ------------------
  |  |  |  Branch (385:29): [True: 24.1k, False: 2.25k]
  |  |  |  Branch (385:63): [True: 22.4k, False: 1.69k]
  |  |  ------------------
  ------------------
 5953|       |		/* process the control portion of the SCTP packet */
 5954|       |		/* sa_ignore NO_NULL_CHK */
 5955|  22.4k|		stcb = sctp_process_control(m, iphlen, &offset, length,
 5956|  22.4k|		                            src, dst, sh, ch,
 5957|  22.4k|		                            inp, stcb, &net, &fwd_tsn_seen,
 5958|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5959|       |		                            mflowtype, mflowid, fibnum,
 5960|       |#endif
 5961|  22.4k|		                            vrf_id, port);
 5962|  22.4k|		if (stcb) {
  ------------------
  |  Branch (5962:7): [True: 21.4k, False: 1.01k]
  ------------------
 5963|       |			/* This covers us if the cookie-echo was there
 5964|       |			 * and it changes our INP.
 5965|       |			 */
 5966|  21.4k|			inp = stcb->sctp_ep;
 5967|  21.4k|#if defined(INET) || defined(INET6)
 5968|  21.4k|			if ((ch->chunk_type != SCTP_INITIATION) &&
  ------------------
  |  |  455|  21.4k|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (5968:8): [True: 21.4k, False: 2]
  ------------------
 5969|  21.4k|			    (net != NULL) && (net->port != port)) {
  ------------------
  |  Branch (5969:8): [True: 21.4k, False: 0]
  |  Branch (5969:25): [True: 0, False: 21.4k]
  ------------------
 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|  21.4k|#endif
 5984|  21.4k|		}
 5985|  22.4k|	} 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.95k|		if ((stcb != NULL) &&
  ------------------
  |  Branch (5996:7): [True: 3.95k, False: 0]
  ------------------
 5997|  3.95k|		    sctp_auth_is_required_chunk(SCTP_DATA, stcb->asoc.local_auth_chunks)) {
  ------------------
  |  |  100|  3.95k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 0, False: 3.95k]
  |  |  |  Branch (100:51): [True: 0, False: 3.95k]
  |  |  ------------------
  ------------------
 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.95k|		if (stcb == NULL) {
  ------------------
  |  Branch (6005:7): [True: 0, False: 3.95k]
  ------------------
 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.95k|		if (stcb->asoc.my_vtag != ntohl(sh->v_tag)) {
  ------------------
  |  Branch (6020:7): [True: 0, False: 3.95k]
  ------------------
 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.95k|	}
 6029|       |
 6030|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6031|       |	SCTP_PROBE5(receive, NULL, stcb, m, stcb, sh);
 6032|       |#endif
 6033|  26.3k|	if (stcb == NULL) {
  ------------------
  |  Branch (6033:6): [True: 1.01k, False: 25.3k]
  ------------------
 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|  1.01k|		goto out;
 6040|  1.01k|	}
 6041|  25.3k|#if defined(__Userspace__)
 6042|  25.3k|	if ((upcall_socket == NULL) &&
  ------------------
  |  Branch (6042:6): [True: 0, False: 25.3k]
  ------------------
 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|  25.3k|#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|  25.3k|	if ((length > offset) &&
  ------------------
  |  Branch (6065:6): [True: 5.58k, False: 19.7k]
  ------------------
 6066|  5.58k|	    (stcb != NULL) &&
  ------------------
  |  Branch (6066:6): [True: 5.58k, False: 0]
  ------------------
 6067|  5.58k|	    sctp_auth_is_required_chunk(SCTP_DATA, stcb->asoc.local_auth_chunks) &&
  ------------------
  |  |  100|  30.9k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 0, False: 5.58k]
  |  |  |  Branch (100:51): [True: 0, False: 5.58k]
  |  |  ------------------
  ------------------
 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|  25.3k|	if (length > offset) {
  ------------------
  |  Branch (6075:6): [True: 5.58k, False: 19.7k]
  ------------------
 6076|  5.58k|		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.58k|		switch (SCTP_GET_STATE(stcb)) {
  ------------------
  |  |  472|  5.58k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  5.58k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
 6084|  1.59k|		case SCTP_STATE_COOKIE_ECHOED:
  ------------------
  |  |  458|  1.59k|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (6084:3): [True: 1.59k, False: 3.99k]
  ------------------
 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.59k|			sctp_handle_cookie_ack((struct sctp_cookie_ack_chunk *)ch, stcb, net);
 6091|  1.59k|			break;
 6092|    338|		case SCTP_STATE_COOKIE_WAIT:
  ------------------
  |  |  457|    338|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (6092:3): [True: 338, False: 5.24k]
  ------------------
 6093|       |			/*
 6094|       |			 * We consider OOTB any data sent during asoc setup.
 6095|       |			 */
 6096|    338|			SCTP_SNPRINTF(msg, sizeof(msg), "OOTB, %s:%d at %s", __FILE__, __LINE__, __func__);
  ------------------
  |  |  820|    338|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 338]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 6097|    338|			op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code),
  ------------------
  |  |  590|    338|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 6098|    338|			                             msg);
 6099|    338|			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|    338|					 vrf_id, port);
 6104|    338|			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.58k]
  ------------------
 6108|      0|		case SCTP_STATE_INUSE:	/* should not happen */
  ------------------
  |  |  456|      0|#define SCTP_STATE_INUSE		0x0001
  ------------------
  |  Branch (6108:3): [True: 0, False: 5.58k]
  ------------------
 6109|      6|		case SCTP_STATE_SHUTDOWN_RECEIVED:	/* This is a peer error */
  ------------------
  |  |  461|      6|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (6109:3): [True: 6, False: 5.57k]
  ------------------
 6110|     16|		case SCTP_STATE_SHUTDOWN_ACK_SENT:
  ------------------
  |  |  462|     16|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (6110:3): [True: 10, False: 5.57k]
  ------------------
 6111|     16|		default:
  ------------------
  |  Branch (6111:3): [True: 0, False: 5.58k]
  ------------------
 6112|     16|			goto out;
 6113|       |			/*sa_ignore NOTREACHED*/
 6114|     16|			break;
 6115|  3.63k|		case SCTP_STATE_OPEN:
  ------------------
  |  |  459|  3.63k|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (6115:3): [True: 3.63k, False: 1.94k]
  ------------------
 6116|  3.63k|		case SCTP_STATE_SHUTDOWN_SENT:
  ------------------
  |  |  460|  3.63k|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (6116:3): [True: 0, False: 5.58k]
  ------------------
 6117|  3.63k|			break;
 6118|  5.58k|		}
 6119|       |		/* plow through the data chunks while length > offset */
 6120|  5.22k|		retval = sctp_process_data(mm, iphlen, &offset, length,
 6121|  5.22k|		                           inp, stcb, net, &high_tsn);
 6122|  5.22k|		if (retval == 2) {
  ------------------
  |  Branch (6122:7): [True: 821, False: 4.40k]
  ------------------
 6123|       |			/*
 6124|       |			 * The association aborted, NO UNLOCK needed since
 6125|       |			 * the association is destroyed.
 6126|       |			 */
 6127|    821|			stcb = NULL;
 6128|    821|			goto out;
 6129|    821|		}
 6130|  4.40k|		if (retval == 0) {
  ------------------
  |  Branch (6130:7): [True: 4.40k, False: 0]
  ------------------
 6131|  4.40k|			data_processed = 1;
 6132|  4.40k|		}
 6133|       |		/*
 6134|       |		 * Anything important needs to have been m_copy'ed in
 6135|       |		 * process_data
 6136|       |		 */
 6137|  4.40k|	}
 6138|       |
 6139|       |	/* take care of ecn */
 6140|  24.1k|	if ((data_processed == 1) &&
  ------------------
  |  Branch (6140:6): [True: 4.40k, False: 19.7k]
  ------------------
 6141|  4.40k|	    (stcb->asoc.ecn_supported == 1) &&
  ------------------
  |  Branch (6141:6): [True: 4.40k, False: 0]
  ------------------
 6142|  4.40k|	    ((ecn_bits & SCTP_CE_BITS) == SCTP_CE_BITS)) {
  ------------------
  |  |  443|  4.40k|#define SCTP_CE_BITS		0x03
  ------------------
              	    ((ecn_bits & SCTP_CE_BITS) == SCTP_CE_BITS)) {
  ------------------
  |  |  443|  4.40k|#define SCTP_CE_BITS		0x03
  ------------------
  |  Branch (6142:6): [True: 0, False: 4.40k]
  ------------------
 6143|       |		/* Yep, we need to add a ECNE */
 6144|      0|		sctp_send_ecn_echo(stcb, net, high_tsn);
 6145|      0|	}
 6146|       |
 6147|  24.1k|	if ((data_processed == 0) && (fwd_tsn_seen)) {
  ------------------
  |  Branch (6147:6): [True: 19.7k, False: 4.40k]
  |  Branch (6147:31): [True: 889, False: 18.8k]
  ------------------
 6148|    889|		int was_a_gap;
 6149|    889|		uint32_t highest_tsn;
 6150|       |
 6151|    889|		if (SCTP_TSN_GT(stcb->asoc.highest_tsn_inside_nr_map, stcb->asoc.highest_tsn_inside_map)) {
  ------------------
  |  |  889|    889|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    889|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 889]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|    889|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 204, False: 685]
  |  |  |  |  |  Branch (884:43): [True: 204, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6152|    204|			highest_tsn = stcb->asoc.highest_tsn_inside_nr_map;
 6153|    685|		} else {
 6154|    685|			highest_tsn = stcb->asoc.highest_tsn_inside_map;
 6155|    685|		}
 6156|    889|		was_a_gap = SCTP_TSN_GT(highest_tsn, stcb->asoc.cumulative_tsn);
  ------------------
  |  |  889|    889|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    889|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 21, False: 868]
  |  |  |  |  |  Branch (883:43): [True: 21, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|    889|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 868]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6157|    889|		stcb->asoc.send_sack = 1;
 6158|    889|		sctp_sack_check(stcb, was_a_gap);
 6159|  23.3k|	} else if (fwd_tsn_seen) {
  ------------------
  |  Branch (6159:13): [True: 261, False: 23.0k]
  ------------------
 6160|    261|		stcb->asoc.send_sack = 1;
 6161|    261|	}
 6162|       |	/* trigger send of any chunks in queue... */
 6163|  24.1k|trigger_send:
 6164|       |#ifdef SCTP_AUDITING_ENABLED
 6165|       |	sctp_audit_log(0xE0, 2);
 6166|       |	sctp_auditing(1, inp, stcb, net);
 6167|       |#endif
 6168|  24.1k|	SCTPDBG(SCTP_DEBUG_INPUT1,
 6169|  24.1k|		"Check for chunk output prw:%d tqe:%d tf=%d\n",
 6170|  24.1k|		stcb->asoc.peers_rwnd,
 6171|  24.1k|		TAILQ_EMPTY(&stcb->asoc.control_send_queue),
 6172|  24.1k|		stcb->asoc.total_flight);
 6173|  24.1k|	un_sent = (stcb->asoc.total_output_queue_size - stcb->asoc.total_flight);
 6174|  24.1k|	if (!TAILQ_EMPTY(&stcb->asoc.control_send_queue)) {
  ------------------
  |  Branch (6174:6): [True: 17.9k, False: 6.26k]
  ------------------
 6175|  17.9k|		cnt_ctrl_ready = stcb->asoc.ctrl_queue_cnt - stcb->asoc.ecn_echo_cnt_onq;
 6176|  17.9k|	}
 6177|  24.1k|	if (!TAILQ_EMPTY(&stcb->asoc.asconf_send_queue) ||
  ------------------
  |  Branch (6177:6): [True: 0, False: 24.1k]
  ------------------
 6178|  24.1k|	    cnt_ctrl_ready ||
  ------------------
  |  Branch (6178:6): [True: 17.9k, False: 6.26k]
  ------------------
 6179|  6.26k|	    stcb->asoc.trigger_reset ||
  ------------------
  |  Branch (6179:6): [True: 0, False: 6.26k]
  ------------------
 6180|  6.26k|	    ((un_sent > 0) &&
  ------------------
  |  Branch (6180:7): [True: 368, False: 5.89k]
  ------------------
 6181|  18.2k|	     (stcb->asoc.peers_rwnd > 0 || stcb->asoc.total_flight == 0))) {
  ------------------
  |  Branch (6181:8): [True: 318, False: 50]
  |  Branch (6181:37): [True: 50, False: 0]
  ------------------
 6182|  18.2k|		SCTPDBG(SCTP_DEBUG_INPUT3, "Calling chunk OUTPUT\n");
 6183|  18.2k|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_CONTROL_PROC, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  364|  18.2k|#define SCTP_OUTPUT_FROM_CONTROL_PROC   3
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_CONTROL_PROC, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  18.2k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 6184|  18.2k|		SCTPDBG(SCTP_DEBUG_INPUT3, "chunk OUTPUT returns\n");
 6185|  18.2k|	}
 6186|       |#ifdef SCTP_AUDITING_ENABLED
 6187|       |	sctp_audit_log(0xE0, 3);
 6188|       |	sctp_auditing(2, inp, stcb, net);
 6189|       |#endif
 6190|  26.3k| out:
 6191|  26.3k|	if (stcb != NULL) {
  ------------------
  |  Branch (6191:6): [True: 24.5k, False: 1.84k]
  ------------------
 6192|  24.5k|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  24.5k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  24.5k|	do {                         \
  |  |  |  |  113|  24.5k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 24.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|  24.5k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 24.5k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6193|  24.5k|	}
 6194|  26.3k|#if defined(__Userspace__)
 6195|  26.3k|	if (upcall_socket != NULL) {
  ------------------
  |  Branch (6195:6): [True: 26.3k, False: 0]
  ------------------
 6196|  26.3k|		if (upcall_socket->so_upcall != NULL) {
  ------------------
  |  Branch (6196:7): [True: 26.3k, False: 0]
  ------------------
 6197|  26.3k|			if (soreadable(upcall_socket) ||
  ------------------
  |  |  443|  52.7k|    ((int)((so)->so_rcv.sb_cc) >= (so)->so_rcv.sb_lowat || \
  |  |  ------------------
  |  |  |  Branch (443:6): [True: 9.62k, False: 16.7k]
  |  |  ------------------
  |  |  444|  26.3k|	((so)->so_rcv.sb_state & SBS_CANTRCVMORE) || \
  |  |  ------------------
  |  |  |  |  360|  16.7k|#define	SBS_CANTRCVMORE		0x0020	/* can't receive more data from peer */
  |  |  ------------------
  |  |  |  Branch (444:2): [True: 0, False: 16.7k]
  |  |  ------------------
  |  |  445|  26.3k|	!TAILQ_EMPTY(&(so)->so_comp) || (so)->so_error)
  |  |  ------------------
  |  |  |  Branch (445:2): [True: 0, False: 16.7k]
  |  |  |  Branch (445:34): [True: 0, False: 16.7k]
  |  |  ------------------
  ------------------
 6198|  16.7k|			    sowriteable(upcall_socket) ||
  ------------------
  |  |  458|  43.1k|    ((sbspace(&(so)->so_snd) >= (so)->so_snd.sb_lowat && \
  |  |  ------------------
  |  |  |  |  434|  16.7k|    ((long) min((int)((sb)->sb_hiwat - (sb)->sb_cc), \
  |  |  |  |  ------------------
  |  |  |  |  |  |   66|  16.7k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (66:19): [True: 0, False: 16.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  435|  16.7k|	 (int)((sb)->sb_mbmax - (sb)->sb_mbcnt)))
  |  |  ------------------
  |  |  |  Branch (458:7): [True: 16.7k, False: 0]
  |  |  ------------------
  |  |  459|  16.7k|      (((so)->so_state&SS_ISCONNECTED))) ||              \
  |  |  ------------------
  |  |  |  |  340|  16.7k|#define	SS_ISCONNECTED		0x0002	/* socket connected to a peer */
  |  |  ------------------
  |  |  |  Branch (459:7): [True: 4.12k, False: 12.6k]
  |  |  ------------------
  |  |  460|  16.7k|     ((so)->so_snd.sb_state & SBS_CANTSENDMORE) || \
  |  |  ------------------
  |  |  |  |  359|  12.6k|#define	SBS_CANTSENDMORE	0x0010	/* can't send more data to peer */
  |  |  ------------------
  |  |  |  Branch (460:6): [True: 0, False: 12.6k]
  |  |  ------------------
  |  |  461|  43.1k|     (so)->so_error)
  |  |  ------------------
  |  |  |  Branch (461:6): [True: 0, False: 12.6k]
  |  |  ------------------
  ------------------
 6199|  13.7k|			    upcall_socket->so_error) {
  ------------------
  |  Branch (6199:8): [True: 0, False: 12.6k]
  ------------------
 6200|  13.7k|				(*upcall_socket->so_upcall)(upcall_socket, upcall_socket->so_upcallarg, M_NOWAIT);
  ------------------
  |  |   60|  13.7k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 6201|  13.7k|			}
 6202|  26.3k|		}
 6203|  26.3k|		ACCEPT_LOCK();
  ------------------
  |  |  256|  26.3k|#define	ACCEPT_LOCK()	KASSERT(pthread_mutex_lock(&accept_mtx) == 0, ("%s: accept_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6204|  26.3k|		SOCK_LOCK(upcall_socket);
  ------------------
  |  |  527|  26.3k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  26.3k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6205|  26.3k|		sorele(upcall_socket);
  ------------------
  |  |  412|  26.3k|#define	sorele(so) do {							\
  |  |  413|  26.3k|	ACCEPT_LOCK_ASSERT();						\
  |  |  ------------------
  |  |  |  |  263|  26.3k|          KASSERT(pthread_mutex_trylock(&accept_mtx) == EBUSY, ("%s: accept_mtx not locked", __func__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  414|  26.3k|	SOCK_LOCK_ASSERT(so);						\
  |  |  ------------------
  |  |  |  |  325|  26.3k|#define	SOCK_LOCK_ASSERT(_so)		SOCKBUF_LOCK_ASSERT(&(_so)->so_rcv)
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  26.3k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  415|  26.3k|	KASSERT((so)->so_count > 0, ("sorele"));			\
  |  |  ------------------
  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  416|  26.3k|	if (--(so)->so_count == 0) {					\
  |  |  ------------------
  |  |  |  Branch (416:6): [True: 0, False: 26.3k]
  |  |  ------------------
  |  |  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|  26.3k|	else {								\
  |  |  423|  26.3k|		SCTPDBG(SCTP_DEBUG_USR, "sorele(%p) -> %d, %s:%s:%d\n",	\
  |  |  424|  26.3k|			(so), (so)->so_count,				\
  |  |  425|  26.3k|			__func__, __FILE__, __LINE__)			\
  |  |  426|  26.3k|		SOCK_UNLOCK(so);					\
  |  |  ------------------
  |  |  |  |  529|  26.3k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  |  |  ------------------
  |  |  |  |  |  |  519|  26.3k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  427|  26.3k|		ACCEPT_UNLOCK();					\
  |  |  ------------------
  |  |  |  |  257|  26.3k|#define	ACCEPT_UNLOCK()	KASSERT(pthread_mutex_unlock(&accept_mtx) == 0, ("%s: accept_mtx not locked", __func__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  428|  26.3k|	}								\
  |  |  429|  26.3k|} while (0)
  |  |  ------------------
  |  |  |  Branch (429:10): [Folded, False: 26.3k]
  |  |  ------------------
  ------------------
 6206|  26.3k|	}
 6207|  26.3k|#endif
 6208|  26.3k|	if (inp_decr != NULL) {
  ------------------
  |  Branch (6208:6): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|	return;
 6215|  26.3k|}
sctp_input.c:sctp_process_control:
 4714|  22.4k|{
 4715|  22.4k|	struct sctp_association *asoc;
 4716|  22.4k|	struct mbuf *op_err;
 4717|  22.4k|	char msg[SCTP_DIAG_INFO_LEN];
 4718|  22.4k|	uint32_t vtag_in;
 4719|  22.4k|	int num_chunks = 0;	/* number of control chunks processed */
 4720|  22.4k|	uint32_t chk_length, contiguous;
 4721|  22.4k|	int ret;
 4722|  22.4k|	int abort_no_unlock = 0;
 4723|  22.4k|	int ecne_seen = 0;
 4724|  22.4k|	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|  22.4k|	uint8_t chunk_buf[SCTP_CHUNK_BUFFER_SIZE];
 4731|  22.4k|	int got_auth = 0;
 4732|  22.4k|	uint32_t auth_offset = 0, auth_len = 0;
 4733|  22.4k|	int auth_skipped = 0;
 4734|  22.4k|	int asconf_cnt = 0;
 4735|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4736|       |	struct socket *so;
 4737|       |#endif
 4738|       |
 4739|  22.4k|	SCTPDBG(SCTP_DEBUG_INPUT1, "sctp_process_control: iphlen=%u, offset=%u, length=%u stcb:%p\n",
 4740|  22.4k|		iphlen, *offset, length, (void *)stcb);
 4741|       |
 4742|  22.4k|	if (stcb) {
  ------------------
  |  Branch (4742:6): [True: 22.4k, False: 0]
  ------------------
 4743|  22.4k|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  22.4k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  22.4k|	do {                         \
  |  |  |  |  113|  22.4k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 22.4k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|  22.4k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 22.4k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4744|  22.4k|	}
 4745|       |	/* validate chunk header length... */
 4746|  22.4k|	if (ntohs(ch->chunk_length) < sizeof(*ch)) {
  ------------------
  |  Branch (4746:6): [True: 6, False: 22.4k]
  ------------------
 4747|      6|		SCTPDBG(SCTP_DEBUG_INPUT1, "Invalid header length %d\n",
 4748|      6|			ntohs(ch->chunk_length));
 4749|      6|		*offset = length;
 4750|      6|		return (stcb);
 4751|      6|	}
 4752|       |	/*
 4753|       |	 * validate the verification tag
 4754|       |	 */
 4755|  22.4k|	vtag_in = ntohl(sh->v_tag);
 4756|       |
 4757|  22.4k|	if (ch->chunk_type == SCTP_INITIATION) {
  ------------------
  |  |  455|  22.4k|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (4757:6): [True: 17, False: 22.4k]
  ------------------
 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|  22.4k|	} else if (ch->chunk_type != SCTP_COOKIE_ECHO) {
  ------------------
  |  |  464|  22.4k|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (4768:13): [True: 22.3k, False: 39]
  ------------------
 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|  22.3k|		if ((ch->chunk_type == SCTP_AUTHENTICATION) &&
  ------------------
  |  |  470|  22.3k|#define SCTP_AUTHENTICATION     0x0f
  ------------------
  |  Branch (4774:7): [True: 2.41k, False: 19.9k]
  ------------------
 4775|  2.41k|		    (stcb == NULL) &&
  ------------------
  |  Branch (4775:7): [True: 0, False: 2.41k]
  ------------------
 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|  22.3k|		if (ch == NULL) {
  ------------------
  |  Branch (4792:7): [True: 0, False: 22.3k]
  ------------------
 4793|       |			/* Help */
 4794|      0|			*offset = length;
 4795|      0|			return (stcb);
 4796|      0|		}
 4797|  22.3k|		if (ch->chunk_type == SCTP_COOKIE_ECHO) {
  ------------------
  |  |  464|  22.3k|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (4797:7): [True: 0, False: 22.3k]
  ------------------
 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|  22.3k|		if (ch->chunk_type == SCTP_ASCONF && stcb == NULL) {
  ------------------
  |  |  489|  44.7k|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (4804:7): [True: 13, False: 22.3k]
  |  Branch (4804:40): [True: 0, False: 13]
  ------------------
 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|  22.3k|		if (stcb == NULL) {
  ------------------
  |  Branch (4856:7): [True: 0, False: 22.3k]
  ------------------
 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|  22.3k|		asoc = &stcb->asoc;
 4870|       |		/* ABORT and SHUTDOWN can use either v_tag... */
 4871|  22.3k|		if ((ch->chunk_type == SCTP_ABORT_ASSOCIATION) ||
  ------------------
  |  |  460|  22.3k|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
  |  Branch (4871:7): [True: 72, False: 22.2k]
  ------------------
 4872|  22.2k|		    (ch->chunk_type == SCTP_SHUTDOWN_COMPLETE) ||
  ------------------
  |  |  468|  22.2k|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
  |  Branch (4872:7): [True: 24, False: 22.2k]
  ------------------
 4873|  22.2k|		    (ch->chunk_type == SCTP_PACKET_DROPPED)) {
  ------------------
  |  |  479|  22.2k|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (4873:7): [True: 484, False: 21.7k]
  ------------------
 4874|       |			/* Take the T-bit always into account. */
 4875|    580|			if ((((ch->chunk_flags & SCTP_HAD_NO_TCB) == 0) &&
  ------------------
  |  |  493|    580|#define SCTP_HAD_NO_TCB		0x01
  ------------------
  |  Branch (4875:9): [True: 562, False: 18]
  ------------------
 4876|    562|			     (vtag_in == asoc->my_vtag)) ||
  ------------------
  |  Branch (4876:9): [True: 562, 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|    562|			     (vtag_in == asoc->peer_vtag))) {
  ------------------
  |  Branch (4879:9): [True: 0, False: 16]
  ------------------
 4880|       |				/* this is valid */
 4881|    562|			} 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|  21.7k|		} else {
 4890|       |			/* for all other chunks, vtag must match */
 4891|  21.7k|			if (vtag_in != asoc->my_vtag) {
  ------------------
  |  Branch (4891:8): [True: 0, False: 21.7k]
  ------------------
 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|  21.7k|		}
 4904|  22.3k|	}			/* end if !SCTP_COOKIE_ECHO */
 4905|       |	/*
 4906|       |	 * process all control chunks...
 4907|       |	 */
 4908|  22.3k|	if (((ch->chunk_type == SCTP_SELECTIVE_ACK) ||
  ------------------
  |  |  457|  22.3k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (4908:7): [True: 87, False: 22.3k]
  ------------------
 4909|  22.3k|	     (ch->chunk_type == SCTP_NR_SELECTIVE_ACK) ||
  ------------------
  |  |  472|  22.3k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (4909:7): [True: 86, False: 22.2k]
  ------------------
 4910|  22.2k|	     (ch->chunk_type == SCTP_HEARTBEAT_REQUEST)) &&
  ------------------
  |  |  458|  22.2k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
  |  Branch (4910:7): [True: 165, False: 22.0k]
  ------------------
 4911|    338|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|    338|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    338|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|    338|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (4911:6): [True: 44, False: 294]
  ------------------
 4912|       |		/* implied cookie-ack.. we must have lost the ack */
 4913|     44|		sctp_handle_cookie_ack((struct sctp_cookie_ack_chunk *)ch, stcb,
 4914|     44|				       *netp);
 4915|     44|	}
 4916|       |
 4917|  22.3k| process_control_chunks:
 4918|   871k|	while (IS_SCTP_CONTROL(ch)) {
  ------------------
  |  |  385|   871k|#define IS_SCTP_CONTROL(a) (((a)->chunk_type != SCTP_DATA) && ((a)->chunk_type != SCTP_IDATA))
  |  |  ------------------
  |  |  |  |  454|   871k|#define SCTP_DATA		0x00
  |  |  ------------------
  |  |               #define IS_SCTP_CONTROL(a) (((a)->chunk_type != SCTP_DATA) && ((a)->chunk_type != SCTP_IDATA))
  |  |  ------------------
  |  |  |  |  474|   870k|#define SCTP_IDATA		0x40
  |  |  ------------------
  |  |  |  Branch (385:29): [True: 870k, False: 1.40k]
  |  |  |  Branch (385:63): [True: 870k, False: 227]
  |  |  ------------------
  ------------------
 4919|       |		/* validate chunk length */
 4920|   870k|		chk_length = ntohs(ch->chunk_length);
 4921|   870k|		SCTPDBG(SCTP_DEBUG_INPUT2, "sctp_process_control: processing a chunk type=%u, len=%u\n",
 4922|   870k|			ch->chunk_type, chk_length);
 4923|   870k|		SCTP_LTRACE_CHK(inp, stcb, ch->chunk_type, chk_length);
 4924|   870k|		if (chk_length < sizeof(*ch) ||
  ------------------
  |  Branch (4924:7): [True: 134, False: 870k]
  ------------------
 4925|   870k|		    (*offset + (int)chk_length) > length) {
  ------------------
  |  Branch (4925:7): [True: 946, False: 869k]
  ------------------
 4926|  1.08k|			*offset = length;
 4927|  1.08k|			return (stcb);
 4928|  1.08k|		}
 4929|   869k|		SCTP_STAT_INCR_COUNTER64(sctps_incontrolchunks);
  ------------------
  |  | 1128|   869k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|   869k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|   869k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|   869k|#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|   869k|		switch (ch->chunk_type) {
 4936|      8|		case SCTP_INITIATION:
  ------------------
  |  |  455|      8|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (4936:3): [True: 8, False: 869k]
  ------------------
 4937|      8|			contiguous = sizeof(struct sctp_init_chunk);
 4938|      8|			break;
 4939|  9.26k|		case SCTP_INITIATION_ACK:
  ------------------
  |  |  456|  9.26k|#define SCTP_INITIATION_ACK	0x02
  ------------------
  |  Branch (4939:3): [True: 9.26k, False: 859k]
  ------------------
 4940|  9.26k|			contiguous = sizeof(struct sctp_init_ack_chunk);
 4941|  9.26k|			break;
 4942|   859k|		default:
  ------------------
  |  Branch (4942:3): [True: 859k, False: 9.26k]
  ------------------
 4943|   859k|			contiguous = min(chk_length, sizeof(chunk_buf));
  ------------------
  |  |   66|   859k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 1.38k, False: 858k]
  |  |  ------------------
  ------------------
 4944|   859k|			break;
 4945|   869k|		}
 4946|   869k|		ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, *offset,
 4947|   869k|		                                           contiguous,
 4948|   869k|		                                           chunk_buf);
 4949|   869k|		if (ch == NULL) {
  ------------------
  |  Branch (4949:7): [True: 7, False: 869k]
  ------------------
 4950|      7|			*offset = length;
 4951|      7|			return (stcb);
 4952|      7|		}
 4953|       |
 4954|   869k|		num_chunks++;
 4955|       |		/* Save off the last place we got a control from */
 4956|   869k|		if (stcb != NULL) {
  ------------------
  |  Branch (4956:7): [True: 869k, False: 0]
  ------------------
 4957|   869k|			if (((netp != NULL) && (*netp != NULL)) || (ch->chunk_type == SCTP_ASCONF)) {
  ------------------
  |  |  489|      0|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (4957:9): [True: 869k, False: 0]
  |  Branch (4957:27): [True: 869k, 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|   869k|				if ((netp != NULL) && (*netp != NULL))
  ------------------
  |  Branch (4963:9): [True: 869k, False: 0]
  |  Branch (4963:27): [True: 869k, False: 0]
  ------------------
 4964|   869k|					stcb->asoc.last_control_chunk_from = *netp;
 4965|   869k|			}
 4966|   869k|		}
 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|   869k|		if ((stcb != NULL) &&
  ------------------
  |  Branch (4972:7): [True: 869k, False: 0]
  ------------------
 4973|   869k|		    sctp_auth_is_required_chunk(ch->chunk_type, stcb->asoc.local_auth_chunks) &&
  ------------------
  |  |  100|  1.73M|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 12.1k, False: 857k]
  |  |  |  Branch (100:51): [True: 0, False: 869k]
  |  |  ------------------
  ------------------
 4974|  12.1k|		    !stcb->asoc.authenticated) {
  ------------------
  |  Branch (4974:7): [True: 1.71k, False: 10.3k]
  ------------------
 4975|       |			/* "silently" ignore */
 4976|  1.71k|			SCTP_STAT_INCR(sctps_recvauthmissing);
  ------------------
  |  | 1112|  1.71k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  1.71k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.71k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4977|  1.71k|			goto next_chunk;
 4978|  1.71k|		}
 4979|   867k|		switch (ch->chunk_type) {
 4980|      6|		case SCTP_INITIATION:
  ------------------
  |  |  455|      6|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (4980:3): [True: 6, False: 867k]
  ------------------
 4981|      6|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_INIT\n");
 4982|       |			/* The INIT chunk must be the only chunk. */
 4983|      6|			if ((num_chunks > 1) ||
  ------------------
  |  Branch (4983:8): [True: 6, False: 0]
  ------------------
 4984|      6|			    (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|      6|				*offset = length;
 4990|      6|				return (stcb);
 4991|      6|			}
 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|    119|		case SCTP_PAD_CHUNK:
  ------------------
  |  |  484|    119|#define SCTP_PAD_CHUNK          0x84
  ------------------
  |  Branch (5019:3): [True: 119, False: 867k]
  ------------------
 5020|    119|			break;
 5021|  9.25k|		case SCTP_INITIATION_ACK:
  ------------------
  |  |  456|  9.25k|#define SCTP_INITIATION_ACK	0x02
  ------------------
  |  Branch (5021:3): [True: 9.25k, False: 858k]
  ------------------
 5022|  9.25k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_INIT_ACK\n");
 5023|  9.25k|			if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  ------------------
  |  |  546|  9.25k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5023:8): [True: 0, False: 9.25k]
  ------------------
 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|  9.25k|			if ((num_chunks > 1) ||
  ------------------
  |  Branch (5048:8): [True: 10, False: 9.24k]
  ------------------
 5049|  9.24k|			    (length - *offset > (int)SCTP_SIZE32(chk_length))) {
  ------------------
  |  |  383|  9.24k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (5049:8): [True: 21, False: 9.22k]
  ------------------
 5050|     31|				*offset = length;
 5051|     31|				return (stcb);
 5052|     31|			}
 5053|  9.22k|			if ((netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5053:8): [True: 9.22k, False: 0]
  |  Branch (5053:26): [True: 9.22k, False: 0]
  ------------------
 5054|  9.22k|				ret = sctp_handle_init_ack(m, iphlen, *offset,
 5055|  9.22k|				                           src, dst, sh,
 5056|  9.22k|				                           (struct sctp_init_ack_chunk *)ch,
 5057|  9.22k|				                           stcb, *netp,
 5058|  9.22k|				                           &abort_no_unlock,
 5059|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5060|       |				                           mflowtype, mflowid,
 5061|       |#endif
 5062|  9.22k|				                           vrf_id);
 5063|  9.22k|			} else {
 5064|      0|				ret = -1;
 5065|      0|			}
 5066|  9.22k|			*offset = length;
 5067|  9.22k|			if (abort_no_unlock) {
  ------------------
  |  Branch (5067:8): [True: 519, False: 8.70k]
  ------------------
 5068|    519|				return (NULL);
 5069|    519|			}
 5070|       |			/*
 5071|       |			 * Special case, I must call the output routine to
 5072|       |			 * get the cookie echoed
 5073|       |			 */
 5074|  8.70k|			if ((stcb != NULL) && (ret == 0)) {
  ------------------
  |  Branch (5074:8): [True: 8.70k, False: 0]
  |  Branch (5074:26): [True: 8.70k, False: 2]
  ------------------
 5075|  8.70k|				sctp_chunk_output(stcb->sctp_ep, stcb, SCTP_OUTPUT_FROM_CONTROL_PROC, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  364|  8.70k|#define SCTP_OUTPUT_FROM_CONTROL_PROC   3
  ------------------
              				sctp_chunk_output(stcb->sctp_ep, stcb, SCTP_OUTPUT_FROM_CONTROL_PROC, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  8.70k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 5076|  8.70k|			}
 5077|  8.70k|			return (stcb);
 5078|      0|			break;
 5079|  6.18k|		case SCTP_SELECTIVE_ACK:
  ------------------
  |  |  457|  6.18k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (5079:3): [True: 6.18k, False: 861k]
  ------------------
 5080|  7.26k|		case SCTP_NR_SELECTIVE_ACK:
  ------------------
  |  |  472|  7.26k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (5080:3): [True: 1.07k, False: 866k]
  ------------------
 5081|  7.26k|		{
 5082|  7.26k|			int abort_now = 0;
 5083|  7.26k|			uint32_t a_rwnd, cum_ack;
 5084|  7.26k|			uint16_t num_seg, num_nr_seg, num_dup;
 5085|  7.26k|			uint8_t flags;
 5086|  7.26k|			int offset_seg, offset_dup;
 5087|       |
 5088|  7.26k|			SCTPDBG(SCTP_DEBUG_INPUT3, "%s\n",
 5089|  7.26k|				ch->chunk_type == SCTP_SELECTIVE_ACK ? "SCTP_SACK" : "SCTP_NR_SACK");
 5090|  7.26k|			SCTP_STAT_INCR(sctps_recvsacks);
  ------------------
  |  | 1112|  7.26k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  7.26k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  7.26k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5091|  7.26k|			if (stcb == NULL) {
  ------------------
  |  Branch (5091:8): [True: 0, False: 7.26k]
  ------------------
 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|  7.26k|			if (ch->chunk_type == SCTP_SELECTIVE_ACK) {
  ------------------
  |  |  457|  7.26k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (5096:8): [True: 6.18k, False: 1.07k]
  ------------------
 5097|  6.18k|				if (chk_length < sizeof(struct sctp_sack_chunk)) {
  ------------------
  |  Branch (5097:9): [True: 4.12k, False: 2.06k]
  ------------------
 5098|  4.12k|					SCTPDBG(SCTP_DEBUG_INDATA1, "Bad size on SACK chunk, too small\n");
 5099|  4.12k|					break;
 5100|  4.12k|				}
 5101|  6.18k|			} else {
 5102|  1.07k|				if (stcb->asoc.nrsack_supported == 0) {
  ------------------
  |  Branch (5102:9): [True: 4, False: 1.07k]
  ------------------
 5103|      4|					goto unknown_chunk;
 5104|      4|				}
 5105|  1.07k|				if (chk_length < sizeof(struct sctp_nr_sack_chunk)) {
  ------------------
  |  Branch (5105:9): [True: 845, False: 229]
  ------------------
 5106|    845|					SCTPDBG(SCTP_DEBUG_INDATA1, "Bad size on NR_SACK chunk, too small\n");
 5107|    845|					break;
 5108|    845|				}
 5109|  1.07k|			}
 5110|  2.29k|			if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_ACK_SENT) {
  ------------------
  |  |  472|  2.29k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  2.29k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_ACK_SENT) {
  ------------------
  |  |  462|  2.29k|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (5110:8): [True: 26, False: 2.26k]
  ------------------
 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|     26|				break;
 5117|     26|			}
 5118|  2.26k|			flags = ch->chunk_flags;
 5119|  2.26k|			if (ch->chunk_type == SCTP_SELECTIVE_ACK) {
  ------------------
  |  |  457|  2.26k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (5119:8): [True: 2.03k, False: 229]
  ------------------
 5120|  2.03k|				struct sctp_sack_chunk *sack;
 5121|       |
 5122|  2.03k|				sack = (struct sctp_sack_chunk *)ch;
 5123|  2.03k|				cum_ack = ntohl(sack->sack.cum_tsn_ack);
 5124|  2.03k|				num_seg = ntohs(sack->sack.num_gap_ack_blks);
 5125|  2.03k|				num_nr_seg = 0;
 5126|  2.03k|				num_dup = ntohs(sack->sack.num_dup_tsns);
 5127|  2.03k|				a_rwnd = ntohl(sack->sack.a_rwnd);
 5128|  2.03k|				if (sizeof(struct sctp_sack_chunk) +
  ------------------
  |  Branch (5128:9): [True: 680, False: 1.35k]
  ------------------
 5129|  2.03k|				    num_seg * sizeof(struct sctp_gap_ack_block) +
 5130|  2.03k|				    num_dup * sizeof(uint32_t) != chk_length) {
 5131|    680|					SCTPDBG(SCTP_DEBUG_INDATA1, "Bad size of SACK chunk\n");
 5132|    680|					break;
 5133|    680|				}
 5134|  1.35k|				offset_seg = *offset + sizeof(struct sctp_sack_chunk);
 5135|  1.35k|				offset_dup = offset_seg + num_seg * sizeof(struct sctp_gap_ack_block);
 5136|  1.35k|			} else {
 5137|    229|				struct sctp_nr_sack_chunk *nr_sack;
 5138|       |
 5139|    229|				nr_sack = (struct sctp_nr_sack_chunk *)ch;
 5140|    229|				cum_ack = ntohl(nr_sack->nr_sack.cum_tsn_ack);
 5141|    229|				num_seg = ntohs(nr_sack->nr_sack.num_gap_ack_blks);
 5142|    229|				num_nr_seg = ntohs(nr_sack->nr_sack.num_nr_gap_ack_blks);
 5143|    229|				num_dup = ntohs(nr_sack->nr_sack.num_dup_tsns);
 5144|    229|				a_rwnd = ntohl(nr_sack->nr_sack.a_rwnd);
 5145|    229|				if (sizeof(struct sctp_nr_sack_chunk) +
  ------------------
  |  Branch (5145:9): [True: 175, False: 54]
  ------------------
 5146|    229|				    (num_seg + num_nr_seg) * sizeof(struct sctp_gap_ack_block) +
 5147|    229|				    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|     54|				offset_seg = *offset + sizeof(struct sctp_nr_sack_chunk);
 5152|     54|				offset_dup = offset_seg + (num_seg + num_nr_seg) * sizeof(struct sctp_gap_ack_block);
 5153|     54|			}
 5154|  1.41k|			SCTPDBG(SCTP_DEBUG_INPUT3, "%s process cum_ack:%x num_seg:%d a_rwnd:%d\n",
 5155|  1.41k|				(ch->chunk_type == SCTP_SELECTIVE_ACK) ? "SCTP_SACK" : "SCTP_NR_SACK",
 5156|  1.41k|			        cum_ack, num_seg, a_rwnd);
 5157|  1.41k|			stcb->asoc.seen_a_sack_this_pkt = 1;
 5158|  1.41k|			if ((stcb->asoc.pr_sctp_cnt == 0) &&
  ------------------
  |  Branch (5158:8): [True: 1.41k, False: 0]
  ------------------
 5159|  1.41k|			    (num_seg == 0) && (num_nr_seg == 0) &&
  ------------------
  |  Branch (5159:8): [True: 1.01k, False: 400]
  |  Branch (5159:26): [True: 987, False: 24]
  ------------------
 5160|  1.41k|			    SCTP_TSN_GE(cum_ack, stcb->asoc.last_acked_seq) &&
  ------------------
  |  |  890|    987|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|  2.39k|#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
  |  |  |  |  ------------------
  |  |  |  |  |  |  883|  1.97k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (883:32): [True: 98, False: 889]
  |  |  |  |  |  |  |  Branch (883:43): [True: 18, False: 80]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  1.97k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 889, False: 80]
  |  |  |  |  |  |  |  Branch (884:43): [True: 52, False: 837]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 0, False: 917]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5161|     70|			    (stcb->asoc.saw_sack_with_frags == 0) &&
  ------------------
  |  Branch (5161:8): [True: 70, False: 0]
  ------------------
 5162|     70|			    (stcb->asoc.saw_sack_with_nr_frags == 0) &&
  ------------------
  |  Branch (5162:8): [True: 70, False: 0]
  ------------------
 5163|     70|			    (!TAILQ_EMPTY(&stcb->asoc.sent_queue))) {
  ------------------
  |  Branch (5163:8): [True: 26, False: 44]
  ------------------
 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|     26|				sctp_express_handle_sack(stcb, cum_ack, a_rwnd,
 5174|     26|				                         &abort_now, ecne_seen);
 5175|  1.38k|			} else {
 5176|  1.38k|				if ((netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5176:9): [True: 1.38k, False: 0]
  |  Branch (5176:27): [True: 1.38k, False: 0]
  ------------------
 5177|  1.38k|					sctp_handle_sack(m, offset_seg, offset_dup, stcb,
 5178|  1.38k|					                 num_seg, num_nr_seg, num_dup, &abort_now, flags,
 5179|  1.38k|					                 cum_ack, a_rwnd, ecne_seen);
 5180|  1.38k|				}
 5181|  1.38k|			}
 5182|  1.41k|			if (abort_now) {
  ------------------
  |  Branch (5182:8): [True: 82, False: 1.32k]
  ------------------
 5183|       |				/* ABORT signal from sack processing */
 5184|     82|				*offset = length;
 5185|     82|				return (NULL);
 5186|     82|			}
 5187|  1.32k|			if (TAILQ_EMPTY(&stcb->asoc.send_queue) &&
  ------------------
  |  Branch (5187:8): [True: 1.30k, False: 27]
  ------------------
 5188|  1.32k|			    TAILQ_EMPTY(&stcb->asoc.sent_queue) &&
  ------------------
  |  Branch (5188:8): [True: 836, False: 466]
  ------------------
 5189|    836|			    (stcb->asoc.stream_queue_cnt == 0)) {
  ------------------
  |  Branch (5189:8): [True: 327, False: 509]
  ------------------
 5190|    327|				sctp_ulp_notify(SCTP_NOTIFY_SENDER_DRY, stcb,  0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  730|    327|#define SCTP_NOTIFY_SENDER_DRY                  28
  ------------------
              				sctp_ulp_notify(SCTP_NOTIFY_SENDER_DRY, stcb,  0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    327|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 5191|    327|			}
 5192|  1.32k|			break;
 5193|  1.41k|		}
 5194|  32.3k|		case SCTP_HEARTBEAT_REQUEST:
  ------------------
  |  |  458|  32.3k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
  |  Branch (5194:3): [True: 32.3k, False: 835k]
  ------------------
 5195|  32.3k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_HEARTBEAT\n");
 5196|  32.3k|			if ((stcb != NULL) && (netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5196:8): [True: 32.3k, False: 0]
  |  Branch (5196:26): [True: 32.3k, False: 0]
  |  Branch (5196:44): [True: 32.3k, False: 0]
  ------------------
 5197|  32.3k|				SCTP_STAT_INCR(sctps_recvheartbeat);
  ------------------
  |  | 1112|  32.3k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  32.3k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  32.3k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5198|  32.3k|				sctp_send_heartbeat_ack(stcb, m, *offset,
 5199|  32.3k|				                        chk_length, *netp);
 5200|  32.3k|			}
 5201|  32.3k|			break;
 5202|  11.8k|		case SCTP_HEARTBEAT_ACK:
  ------------------
  |  |  459|  11.8k|#define SCTP_HEARTBEAT_ACK	0x05
  ------------------
  |  Branch (5202:3): [True: 11.8k, False: 855k]
  ------------------
 5203|  11.8k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_HEARTBEAT_ACK\n");
 5204|  11.8k|			if ((stcb == NULL) || (chk_length != sizeof(struct sctp_heartbeat_chunk))) {
  ------------------
  |  Branch (5204:8): [True: 0, False: 11.8k]
  |  Branch (5204:26): [True: 7.82k, False: 4.02k]
  ------------------
 5205|       |				/* Its not ours */
 5206|  7.82k|				break;
 5207|  7.82k|			}
 5208|  4.02k|			SCTP_STAT_INCR(sctps_recvheartbeatack);
  ------------------
  |  | 1112|  4.02k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  4.02k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  4.02k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5209|  4.02k|			if ((netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5209:8): [True: 4.02k, False: 0]
  |  Branch (5209:26): [True: 4.02k, False: 0]
  ------------------
 5210|  4.02k|				sctp_handle_heartbeat_ack((struct sctp_heartbeat_chunk *)ch,
 5211|  4.02k|				                          stcb, *netp);
 5212|  4.02k|			}
 5213|  4.02k|			break;
 5214|     98|		case SCTP_ABORT_ASSOCIATION:
  ------------------
  |  |  460|     98|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
  |  Branch (5214:3): [True: 98, False: 867k]
  ------------------
 5215|     98|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_ABORT, stcb %p\n",
 5216|     98|				(void *)stcb);
 5217|     98|			*offset = length;
 5218|     98|			if ((stcb != NULL) && (netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5218:8): [True: 98, False: 0]
  |  Branch (5218:26): [True: 98, False: 0]
  |  Branch (5218:44): [True: 98, False: 0]
  ------------------
 5219|     98|				if (sctp_handle_abort((struct sctp_abort_chunk *)ch, stcb, *netp)) {
  ------------------
  |  Branch (5219:9): [True: 93, False: 5]
  ------------------
 5220|     93|					return (NULL);
 5221|     93|				} else {
 5222|      5|					return (stcb);
 5223|      5|				}
 5224|     98|			} else {
 5225|      0|				return (NULL);
 5226|      0|			}
 5227|      0|			break;
 5228|  3.23k|		case SCTP_SHUTDOWN:
  ------------------
  |  |  461|  3.23k|#define SCTP_SHUTDOWN		0x07
  ------------------
  |  Branch (5228:3): [True: 3.23k, False: 864k]
  ------------------
 5229|  3.23k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_SHUTDOWN, stcb %p\n",
 5230|  3.23k|				(void *)stcb);
 5231|  3.23k|			if ((stcb == NULL) || (chk_length != sizeof(struct sctp_shutdown_chunk))) {
  ------------------
  |  Branch (5231:8): [True: 0, False: 3.23k]
  |  Branch (5231:26): [True: 1.14k, False: 2.09k]
  ------------------
 5232|  1.14k|				break;
 5233|  1.14k|			}
 5234|  2.09k|			if ((netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5234:8): [True: 2.09k, False: 0]
  |  Branch (5234:26): [True: 2.09k, False: 0]
  ------------------
 5235|  2.09k|				abort_flag = 0;
 5236|  2.09k|				sctp_handle_shutdown((struct sctp_shutdown_chunk *)ch,
 5237|  2.09k|				                     stcb, *netp, &abort_flag);
 5238|  2.09k|				if (abort_flag) {
  ------------------
  |  Branch (5238:9): [True: 127, False: 1.97k]
  ------------------
 5239|    127|					*offset = length;
 5240|    127|					return (NULL);
 5241|    127|				}
 5242|  2.09k|			}
 5243|  1.97k|			break;
 5244|  1.97k|		case SCTP_SHUTDOWN_ACK:
  ------------------
  |  |  462|    624|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
  |  Branch (5244:3): [True: 624, False: 866k]
  ------------------
 5245|    624|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_SHUTDOWN_ACK, stcb %p\n", (void *)stcb);
 5246|    624|			if ((chk_length == sizeof(struct sctp_shutdown_ack_chunk)) &&
  ------------------
  |  Branch (5246:8): [True: 12, False: 612]
  ------------------
 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|    612|			break;
 5253|   562k|		case SCTP_OPERATION_ERROR:
  ------------------
  |  |  463|   562k|#define SCTP_OPERATION_ERROR	0x09
  ------------------
  |  Branch (5253:3): [True: 562k, False: 305k]
  ------------------
 5254|   562k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_OP_ERR\n");
 5255|   562k|			if ((stcb != NULL) && (netp != NULL) && (*netp != NULL) &&
  ------------------
  |  Branch (5255:8): [True: 562k, False: 0]
  |  Branch (5255:26): [True: 562k, False: 0]
  |  Branch (5255:44): [True: 562k, False: 0]
  ------------------
 5256|   562k|			    sctp_handle_error(ch, stcb, *netp, contiguous) < 0) {
  ------------------
  |  Branch (5256:8): [True: 0, False: 562k]
  ------------------
 5257|      0|				*offset = length;
 5258|      0|				return (NULL);
 5259|      0|			}
 5260|   562k|			break;
 5261|   562k|		case SCTP_COOKIE_ECHO:
  ------------------
  |  |  464|     43|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (5261:3): [True: 43, False: 867k]
  ------------------
 5262|     43|			SCTPDBG(SCTP_DEBUG_INPUT3,
 5263|     43|				"SCTP_COOKIE_ECHO, stcb %p\n", (void *)stcb);
 5264|     43|			if ((stcb != NULL) && (stcb->asoc.total_output_queue_size > 0)) {
  ------------------
  |  Branch (5264:8): [True: 43, False: 0]
  |  Branch (5264:26): [True: 36, False: 7]
  ------------------
 5265|     36|				;
 5266|     36|			} else {
 5267|      7|				if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  ------------------
  |  |  546|      7|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5267:9): [True: 0, False: 7]
  ------------------
 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|      7|			}
 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|     43|			if ((stcb == NULL) &&
  ------------------
  |  Branch (5294:8): [True: 0, False: 43]
  ------------------
 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|     43|			} else {
 5315|     43|				struct mbuf *ret_buf;
 5316|     43|				struct sctp_inpcb *linp;
 5317|     43|				struct sctp_tmit_chunk *chk;
 5318|       |
 5319|     43|				if (inp->sctp_flags & (SCTP_PCB_FLAGS_SOCKET_GONE |
  ------------------
  |  |  546|     43|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5319:9): [True: 0, False: 43]
  ------------------
 5320|     43|				    SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  547|     43|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
 5321|      0|					goto abend;
 5322|      0|				}
 5323|       |
 5324|     43|				if (stcb) {
  ------------------
  |  Branch (5324:9): [True: 43, False: 0]
  ------------------
 5325|     43|					linp = NULL;
 5326|     43|				} else {
 5327|      0|					linp = inp;
 5328|      0|				}
 5329|       |
 5330|     43|				if (linp != NULL) {
  ------------------
  |  Branch (5330:9): [True: 0, False: 43]
  ------------------
 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|     43|				if (netp != NULL) {
  ------------------
  |  Branch (5334:9): [True: 43, False: 0]
  ------------------
 5335|     43|					struct sctp_tcb *locked_stcb;
 5336|       |
 5337|     43|					locked_stcb = stcb;
 5338|     43|					ret_buf =
 5339|     43|						sctp_handle_cookie_echo(m, iphlen,
 5340|     43|						                        *offset,
 5341|     43|						                        src, dst,
 5342|     43|						                        sh,
 5343|     43|						                        (struct sctp_cookie_echo_chunk *)ch,
 5344|     43|						                        &inp, &stcb, netp,
 5345|     43|						                        auth_skipped,
 5346|     43|						                        auth_offset,
 5347|     43|						                        auth_len,
 5348|     43|						                        &locked_stcb,
 5349|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5350|       |						                        mflowtype,
 5351|       |						                        mflowid,
 5352|       |#endif
 5353|     43|						                        vrf_id,
 5354|     43|						                        port);
 5355|     43|					if ((locked_stcb != NULL) && (locked_stcb != stcb)) {
  ------------------
  |  Branch (5355:10): [True: 43, False: 0]
  |  Branch (5355:35): [True: 0, False: 43]
  ------------------
 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|     43|					if (stcb != NULL) {
  ------------------
  |  Branch (5358:10): [True: 43, False: 0]
  ------------------
 5359|     43|						SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|     43|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     43|	do {                         \
  |  |  |  |  113|     43|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 43]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     43|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 43]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5360|     43|					}
 5361|     43|				} else {
 5362|      0|					ret_buf = NULL;
 5363|      0|				}
 5364|     43|				if (linp != NULL) {
  ------------------
  |  Branch (5364:9): [True: 0, False: 43]
  ------------------
 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|     43|				if (ret_buf == NULL) {
  ------------------
  |  Branch (5367:9): [True: 43, False: 0]
  ------------------
 5368|     43|					if (stcb != NULL) {
  ------------------
  |  Branch (5368:10): [True: 43, False: 0]
  ------------------
 5369|     43|						SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|     43|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     43|	do {                         \
  |  |  |  |  113|     43|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 43]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     43|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 43]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5370|     43|					}
 5371|     43|					SCTPDBG(SCTP_DEBUG_INPUT3,
 5372|     43|						"GAK, null buffer\n");
 5373|     43|					*offset = length;
 5374|     43|					return (NULL);
 5375|     43|				}
 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|  21.5k|		case SCTP_COOKIE_ACK:
  ------------------
  |  |  465|  21.5k|#define SCTP_COOKIE_ACK		0x0b
  ------------------
  |  Branch (5392:3): [True: 21.5k, False: 845k]
  ------------------
 5393|  21.5k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_COOKIE_ACK, stcb %p\n", (void *)stcb);
 5394|  21.5k|			if ((stcb == NULL) || chk_length != sizeof(struct sctp_cookie_ack_chunk)) {
  ------------------
  |  Branch (5394:8): [True: 0, False: 21.5k]
  |  Branch (5394:26): [True: 1.41k, False: 20.1k]
  ------------------
 5395|  1.41k|				break;
 5396|  1.41k|			}
 5397|  20.1k|			if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  ------------------
  |  |  546|  20.1k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5397:8): [True: 0, False: 20.1k]
  ------------------
 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|  20.1k|			if ((netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5419:8): [True: 20.1k, False: 0]
  |  Branch (5419:26): [True: 20.1k, False: 0]
  ------------------
 5420|  20.1k|				sctp_handle_cookie_ack((struct sctp_cookie_ack_chunk *)ch, stcb, *netp);
 5421|  20.1k|			}
 5422|  20.1k|			break;
 5423|  8.07k|		case SCTP_ECN_ECHO:
  ------------------
  |  |  466|  8.07k|#define SCTP_ECN_ECHO		0x0c
  ------------------
  |  Branch (5423:3): [True: 8.07k, False: 859k]
  ------------------
 5424|  8.07k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_ECN_ECHO\n");
 5425|  8.07k|			if (stcb == NULL) {
  ------------------
  |  Branch (5425:8): [True: 0, False: 8.07k]
  ------------------
 5426|      0|				break;
 5427|      0|			}
 5428|  8.07k|			if (stcb->asoc.ecn_supported == 0) {
  ------------------
  |  Branch (5428:8): [True: 0, False: 8.07k]
  ------------------
 5429|      0|				goto unknown_chunk;
 5430|      0|			}
 5431|  8.07k|			if ((chk_length != sizeof(struct sctp_ecne_chunk)) &&
  ------------------
  |  Branch (5431:8): [True: 7.39k, False: 678]
  ------------------
 5432|  7.39k|			    (chk_length != sizeof(struct old_sctp_ecne_chunk))) {
  ------------------
  |  Branch (5432:8): [True: 1.42k, False: 5.97k]
  ------------------
 5433|  1.42k|				break;
 5434|  1.42k|			}
 5435|  6.64k|			sctp_handle_ecn_echo((struct sctp_ecne_chunk *)ch, stcb);
 5436|  6.64k|			ecne_seen = 1;
 5437|  6.64k|			break;
 5438|  2.70k|		case SCTP_ECN_CWR:
  ------------------
  |  |  467|  2.70k|#define SCTP_ECN_CWR		0x0d
  ------------------
  |  Branch (5438:3): [True: 2.70k, False: 864k]
  ------------------
 5439|  2.70k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_ECN_CWR\n");
 5440|  2.70k|			if (stcb == NULL) {
  ------------------
  |  Branch (5440:8): [True: 0, False: 2.70k]
  ------------------
 5441|      0|				break;
 5442|      0|			}
 5443|  2.70k|			if (stcb->asoc.ecn_supported == 0) {
  ------------------
  |  Branch (5443:8): [True: 0, False: 2.70k]
  ------------------
 5444|      0|				goto unknown_chunk;
 5445|      0|			}
 5446|  2.70k|			if (chk_length != sizeof(struct sctp_cwr_chunk)) {
  ------------------
  |  Branch (5446:8): [True: 692, False: 2.00k]
  ------------------
 5447|    692|				break;
 5448|    692|			}
 5449|  2.00k|			sctp_handle_ecn_cwr((struct sctp_cwr_chunk *)ch, stcb, *netp);
 5450|  2.00k|			break;
 5451|     29|		case SCTP_SHUTDOWN_COMPLETE:
  ------------------
  |  |  468|     29|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
  |  Branch (5451:3): [True: 29, False: 867k]
  ------------------
 5452|     29|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_SHUTDOWN_COMPLETE, stcb %p\n", (void *)stcb);
 5453|       |			/* must be first and only chunk */
 5454|     29|			if ((num_chunks > 1) ||
  ------------------
  |  Branch (5454:8): [True: 10, False: 19]
  ------------------
 5455|     19|			    (length - *offset > (int)SCTP_SIZE32(chk_length))) {
  ------------------
  |  |  383|     19|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (5455:8): [True: 7, False: 12]
  ------------------
 5456|     17|				*offset = length;
 5457|     17|				return (stcb);
 5458|     17|			}
 5459|     12|			if ((chk_length == sizeof(struct sctp_shutdown_complete_chunk)) &&
  ------------------
  |  Branch (5459:8): [True: 4, False: 8]
  ------------------
 5460|      4|			    (stcb != NULL) && (netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5460:8): [True: 4, False: 0]
  |  Branch (5460:26): [True: 4, False: 0]
  |  Branch (5460:44): [True: 4, False: 0]
  ------------------
 5461|      4|				sctp_handle_shutdown_complete((struct sctp_shutdown_complete_chunk *)ch,
 5462|      4|				                              stcb, *netp);
 5463|      4|				*offset = length;
 5464|      4|				return (NULL);
 5465|      4|			}
 5466|      8|			break;
 5467|  8.88k|		case SCTP_ASCONF:
  ------------------
  |  |  489|  8.88k|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (5467:3): [True: 8.88k, False: 858k]
  ------------------
 5468|  8.88k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_ASCONF\n");
 5469|  8.88k|			if (stcb != NULL) {
  ------------------
  |  Branch (5469:8): [True: 8.88k, False: 0]
  ------------------
 5470|  8.88k|				if (stcb->asoc.asconf_supported == 0) {
  ------------------
  |  Branch (5470:9): [True: 421, False: 8.46k]
  ------------------
 5471|    421|					goto unknown_chunk;
 5472|    421|				}
 5473|  8.46k|				sctp_handle_asconf(m, *offset, src,
 5474|  8.46k|				                   (struct sctp_asconf_chunk *)ch, stcb, asconf_cnt == 0);
 5475|  8.46k|				asconf_cnt++;
 5476|  8.46k|			}
 5477|  8.46k|			break;
 5478|  8.46k|		case SCTP_ASCONF_ACK:
  ------------------
  |  |  477|  1.50k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (5478:3): [True: 1.50k, False: 865k]
  ------------------
 5479|  1.50k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_ASCONF_ACK\n");
 5480|  1.50k|			if (stcb == NULL) {
  ------------------
  |  Branch (5480:8): [True: 0, False: 1.50k]
  ------------------
 5481|      0|				break;
 5482|      0|			}
 5483|  1.50k|			if (stcb->asoc.asconf_supported == 0) {
  ------------------
  |  Branch (5483:8): [True: 628, False: 872]
  ------------------
 5484|    628|				goto unknown_chunk;
 5485|    628|			}
 5486|    872|			if (chk_length < sizeof(struct sctp_asconf_ack_chunk)) {
  ------------------
  |  Branch (5486:8): [True: 552, False: 320]
  ------------------
 5487|    552|				break;
 5488|    552|			}
 5489|    320|			if ((netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5489:8): [True: 320, False: 0]
  |  Branch (5489:26): [True: 320, False: 0]
  ------------------
 5490|       |				/* He's alive so give him credit */
 5491|    320|				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|    320|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|    320|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (5491:9): [True: 0, False: 320]
  ------------------
 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|    320|				stcb->asoc.overall_error_count = 0;
 5499|    320|				sctp_handle_asconf_ack(m, *offset,
 5500|    320|				                       (struct sctp_asconf_ack_chunk *)ch, stcb, *netp, &abort_no_unlock);
 5501|    320|				if (abort_no_unlock)
  ------------------
  |  Branch (5501:9): [True: 0, False: 320]
  ------------------
 5502|      0|					return (NULL);
 5503|    320|			}
 5504|    320|			break;
 5505|  3.62k|		case SCTP_FORWARD_CUM_TSN:
  ------------------
  |  |  487|  3.62k|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (5505:3): [True: 3.62k, False: 863k]
  ------------------
 5506|  5.95k|		case SCTP_IFORWARD_CUM_TSN:
  ------------------
  |  |  490|  5.95k|#define SCTP_IFORWARD_CUM_TSN	0xc2
  ------------------
  |  Branch (5506:3): [True: 2.33k, False: 865k]
  ------------------
 5507|  5.95k|			SCTPDBG(SCTP_DEBUG_INPUT3, "%s\n",
 5508|  5.95k|				ch->chunk_type == SCTP_FORWARD_CUM_TSN ? "FORWARD_TSN" : "I_FORWARD_TSN");
 5509|  5.95k|			if (stcb == NULL) {
  ------------------
  |  Branch (5509:8): [True: 0, False: 5.95k]
  ------------------
 5510|      0|				break;
 5511|      0|			}
 5512|  5.95k|			if (stcb->asoc.prsctp_supported == 0) {
  ------------------
  |  Branch (5512:8): [True: 826, False: 5.12k]
  ------------------
 5513|    826|				goto unknown_chunk;
 5514|    826|			}
 5515|  5.12k|			if (chk_length < sizeof(struct sctp_forward_tsn_chunk)) {
  ------------------
  |  Branch (5515:8): [True: 1.23k, False: 3.89k]
  ------------------
 5516|  1.23k|				break;
 5517|  1.23k|			}
 5518|  3.89k|			if (((stcb->asoc.idata_supported == 1) && (ch->chunk_type == SCTP_FORWARD_CUM_TSN)) ||
  ------------------
  |  |  487|  1.81k|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (5518:9): [True: 1.81k, False: 2.07k]
  |  Branch (5518:46): [True: 14, False: 1.80k]
  ------------------
 5519|  3.88k|			    ((stcb->asoc.idata_supported == 0) && (ch->chunk_type == SCTP_IFORWARD_CUM_TSN))) {
  ------------------
  |  |  490|  2.07k|#define SCTP_IFORWARD_CUM_TSN	0xc2
  ------------------
  |  Branch (5519:9): [True: 2.07k, False: 1.80k]
  |  Branch (5519:46): [True: 1, False: 2.07k]
  ------------------
 5520|     15|				if (ch->chunk_type == SCTP_FORWARD_CUM_TSN) {
  ------------------
  |  |  487|     15|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (5520:9): [True: 14, False: 1]
  ------------------
 5521|     14|					SCTP_SNPRINTF(msg, sizeof(msg), "%s", "FORWARD-TSN chunk received when I-FORWARD-TSN was negotiated");
  ------------------
  |  |  820|     14|	if (snprintf(data, __VA_ARGS__) < 0) {					\
  |  |  ------------------
  |  |  |  Branch (820:6): [True: 0, False: 14]
  |  |  ------------------
  |  |  821|      0|		data[0] = '\0';							\
  |  |  822|      0|	}
  ------------------
 5522|     14|				} 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|     15|				op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
  ------------------
  |  |  378|     15|#define SCTP_CAUSE_PROTOCOL_VIOLATION	0x000d
  ------------------
 5526|     15|				sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     15|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 5527|     15|				*offset = length;
 5528|     15|				return (NULL);
 5529|     15|			}
 5530|  3.88k|			*fwd_tsn_seen = 1;
 5531|  3.88k|			if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  ------------------
  |  |  546|  3.88k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5531:8): [True: 0, False: 3.88k]
  ------------------
 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|  3.88k|			stcb->asoc.last_data_chunk_from = stcb->asoc.last_control_chunk_from;
 5554|  3.88k|			abort_flag = 0;
 5555|  3.88k|			sctp_handle_forward_tsn(stcb,
 5556|  3.88k|			                        (struct sctp_forward_tsn_chunk *)ch, &abort_flag, m, *offset);
 5557|  3.88k|			if (abort_flag) {
  ------------------
  |  Branch (5557:8): [True: 89, False: 3.79k]
  ------------------
 5558|     89|				*offset = length;
 5559|     89|				return (NULL);
 5560|     89|			}
 5561|  3.79k|			break;
 5562|  16.9k|		case SCTP_STREAM_RESET:
  ------------------
  |  |  481|  16.9k|#define SCTP_STREAM_RESET       0x82
  ------------------
  |  Branch (5562:3): [True: 16.9k, False: 850k]
  ------------------
 5563|  16.9k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_STREAM_RESET\n");
 5564|  16.9k|			if (stcb == NULL) {
  ------------------
  |  Branch (5564:8): [True: 0, False: 16.9k]
  ------------------
 5565|      0|				break;
 5566|      0|			}
 5567|  16.9k|			if (stcb->asoc.reconfig_supported == 0) {
  ------------------
  |  Branch (5567:8): [True: 0, False: 16.9k]
  ------------------
 5568|      0|				goto unknown_chunk;
 5569|      0|			}
 5570|  16.9k|			if (chk_length < sizeof(struct sctp_stream_reset_tsn_req)) {
  ------------------
  |  Branch (5570:8): [True: 1.47k, False: 15.4k]
  ------------------
 5571|  1.47k|				break;
 5572|  1.47k|			}
 5573|  15.4k|			if (sctp_handle_stream_reset(stcb, m, *offset, ch)) {
  ------------------
  |  Branch (5573:8): [True: 0, False: 15.4k]
  ------------------
 5574|       |				/* stop processing */
 5575|      0|				*offset = length;
 5576|      0|				return (NULL);
 5577|      0|			}
 5578|  15.4k|			break;
 5579|  15.4k|		case SCTP_PACKET_DROPPED:
  ------------------
  |  |  479|  12.2k|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (5579:3): [True: 12.2k, False: 855k]
  ------------------
 5580|  12.2k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_PACKET_DROPPED\n");
 5581|  12.2k|			if (stcb == NULL) {
  ------------------
  |  Branch (5581:8): [True: 0, False: 12.2k]
  ------------------
 5582|      0|				break;
 5583|      0|			}
 5584|  12.2k|			if (stcb->asoc.pktdrop_supported == 0) {
  ------------------
  |  Branch (5584:8): [True: 762, False: 11.4k]
  ------------------
 5585|    762|				goto unknown_chunk;
 5586|    762|			}
 5587|  11.4k|			if (chk_length < sizeof(struct sctp_pktdrop_chunk)) {
  ------------------
  |  Branch (5587:8): [True: 1.26k, False: 10.2k]
  ------------------
 5588|  1.26k|				break;
 5589|  1.26k|			}
 5590|  10.2k|			if ((netp != NULL) && (*netp != NULL)) {
  ------------------
  |  Branch (5590:8): [True: 10.2k, False: 0]
  |  Branch (5590:26): [True: 10.2k, False: 0]
  ------------------
 5591|  10.2k|				sctp_handle_packet_dropped((struct sctp_pktdrop_chunk *)ch,
 5592|  10.2k|				                           stcb, *netp,
 5593|  10.2k|				                           min(chk_length, contiguous));
  ------------------
  |  |   66|  10.2k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 120, False: 10.0k]
  |  |  ------------------
  ------------------
 5594|  10.2k|			}
 5595|  10.2k|			break;
 5596|  3.27k|		case SCTP_AUTHENTICATION:
  ------------------
  |  |  470|  3.27k|#define SCTP_AUTHENTICATION     0x0f
  ------------------
  |  Branch (5596:3): [True: 3.27k, False: 864k]
  ------------------
 5597|  3.27k|			SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_AUTHENTICATION\n");
 5598|  3.27k|			if (stcb == NULL) {
  ------------------
  |  Branch (5598:8): [True: 0, False: 3.27k]
  ------------------
 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.27k|			if (stcb->asoc.auth_supported == 0) {
  ------------------
  |  Branch (5608:8): [True: 0, False: 3.27k]
  ------------------
 5609|      0|				goto unknown_chunk;
 5610|      0|			}
 5611|  3.27k|			if ((chk_length < (sizeof(struct sctp_auth_chunk))) ||
  ------------------
  |  Branch (5611:8): [True: 4, False: 3.27k]
  ------------------
 5612|  3.27k|			    (chk_length > (sizeof(struct sctp_auth_chunk) +
  ------------------
  |  Branch (5612:8): [True: 5, False: 3.26k]
  ------------------
 5613|  3.27k|			                  SCTP_AUTH_DIGEST_LEN_MAX))) {
  ------------------
  |  |   43|  3.27k|#define SCTP_AUTH_DIGEST_LEN_MAX	SCTP_AUTH_DIGEST_LEN_SHA256
  |  |  ------------------
  |  |  |  |   42|  3.27k|#define SCTP_AUTH_DIGEST_LEN_SHA256	32
  |  |  ------------------
  ------------------
 5614|       |				/* Its not ours */
 5615|      9|				*offset = length;
 5616|      9|				return (stcb);
 5617|      9|			}
 5618|  3.26k|			if (got_auth == 1) {
  ------------------
  |  Branch (5618:8): [True: 718, False: 2.55k]
  ------------------
 5619|       |				/* skip this chunk... it's already auth'd */
 5620|    718|				break;
 5621|    718|			}
 5622|  2.55k|			got_auth = 1;
 5623|  2.55k|			if (sctp_handle_auth(stcb, (struct sctp_auth_chunk *)ch, m, *offset)) {
  ------------------
  |  Branch (5623:8): [True: 0, False: 2.55k]
  ------------------
 5624|       |				/* auth HMAC failed so dump the packet */
 5625|      0|				*offset = length;
 5626|      0|				return (stcb);
 5627|  2.55k|			} else {
 5628|       |				/* remaining chunks are HMAC checked */
 5629|  2.55k|				stcb->asoc.authenticated = 1;
 5630|  2.55k|			}
 5631|  2.55k|			break;
 5632|       |
 5633|   159k|		default:
  ------------------
  |  Branch (5633:3): [True: 159k, False: 708k]
  ------------------
 5634|   161k|		unknown_chunk:
 5635|       |			/* it's an unknown chunk! */
 5636|   161k|			if ((ch->chunk_type & 0x40) &&
  ------------------
  |  Branch (5636:8): [True: 156k, False: 5.18k]
  ------------------
 5637|   156k|			    (stcb != NULL) &&
  ------------------
  |  Branch (5637:8): [True: 156k, False: 0]
  ------------------
 5638|   156k|			    (SCTP_GET_STATE(stcb) != SCTP_STATE_EMPTY) &&
  ------------------
  |  |  472|   156k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|   156k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) != SCTP_STATE_EMPTY) &&
  ------------------
  |  |  455|   156k|#define SCTP_STATE_EMPTY		0x0000
  ------------------
  |  Branch (5638:8): [True: 156k, False: 0]
  ------------------
 5639|   156k|			    (SCTP_GET_STATE(stcb) != SCTP_STATE_INUSE) &&
  ------------------
  |  |  472|   156k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|   156k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) != SCTP_STATE_INUSE) &&
  ------------------
  |  |  456|   156k|#define SCTP_STATE_INUSE		0x0001
  ------------------
  |  Branch (5639:8): [True: 156k, False: 0]
  ------------------
 5640|   156k|			    (SCTP_GET_STATE(stcb) != SCTP_STATE_COOKIE_WAIT)) {
  ------------------
  |  |  472|   156k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|   156k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) != SCTP_STATE_COOKIE_WAIT)) {
  ------------------
  |  |  457|   156k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (5640:8): [True: 146k, False: 10.0k]
  ------------------
 5641|   146k|				struct sctp_gen_error_cause *cause;
 5642|   146k|				int len;
 5643|       |
 5644|   146k|				op_err = sctp_get_mbuf_for_msg(sizeof(struct sctp_gen_error_cause),
 5645|   146k|				                               0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|   146k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              				                               0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|   146k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5646|   146k|				if (op_err != NULL) {
  ------------------
  |  Branch (5646:9): [True: 146k, False: 0]
  ------------------
 5647|   146k|					len = min(SCTP_SIZE32(chk_length), (uint32_t)(length - *offset));
  ------------------
  |  |   66|   146k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 33, False: 146k]
  |  |  ------------------
  ------------------
 5648|   146k|					cause = mtod(op_err, struct sctp_gen_error_cause *);
  ------------------
  |  |   96|   146k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|   146k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5649|   146k|					cause->code = htons(SCTP_CAUSE_UNRECOG_CHUNK);
 5650|   146k|					cause->length = htons((uint16_t)(len + sizeof(struct sctp_gen_error_cause)));
 5651|   146k|					SCTP_BUF_LEN(op_err) = sizeof(struct sctp_gen_error_cause);
  ------------------
  |  |  801|   146k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   146k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5652|   146k|					SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(m, *offset, len, M_NOWAIT);
  ------------------
  |  |  802|   146k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   146k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
              					SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(m, *offset, len, M_NOWAIT);
  ------------------
  |  |  770|   146k|#define SCTP_M_COPYM	m_copym
  ------------------
              					SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(m, *offset, len, M_NOWAIT);
  ------------------
  |  |   60|   146k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 5653|   146k|					if (SCTP_BUF_NEXT(op_err) != NULL) {
  ------------------
  |  |  802|   146k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   146k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (5653:10): [True: 146k, 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|   146k|						sctp_queue_op_err(stcb, op_err);
 5660|   146k|					} else {
 5661|      0|						sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5662|      0|					}
 5663|   146k|				}
 5664|   146k|			}
 5665|   161k|			if ((ch->chunk_type & 0x80) == 0) {
  ------------------
  |  Branch (5665:8): [True: 50, False: 161k]
  ------------------
 5666|       |				/* discard this packet */
 5667|     50|				*offset = length;
 5668|     50|				return (stcb);
 5669|     50|			}	/* else skip this bad chunk and continue... */
 5670|   161k|			break;
 5671|   867k|		}		/* switch (ch->chunk_type) */
 5672|       |
 5673|   859k|	next_chunk:
 5674|       |		/* get the next chunk */
 5675|   859k|		*offset += SCTP_SIZE32(chk_length);
  ------------------
  |  |  383|   859k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5676|   859k|		if (*offset >= length) {
  ------------------
  |  Branch (5676:7): [True: 8.99k, False: 850k]
  ------------------
 5677|       |			/* no more data left in the mbuf chain */
 5678|  8.99k|			break;
 5679|  8.99k|		}
 5680|   850k|		ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, *offset,
 5681|   850k|		                                           sizeof(struct sctp_chunkhdr), chunk_buf);
 5682|   850k|		if (ch == NULL) {
  ------------------
  |  Branch (5682:7): [True: 870, False: 849k]
  ------------------
 5683|    870|			*offset = length;
 5684|    870|			return (stcb);
 5685|    870|		}
 5686|   850k|	}			/* while */
 5687|       |
 5688|  10.6k|	if ((asconf_cnt > 0) && (stcb != NULL)) {
  ------------------
  |  Branch (5688:6): [True: 1.46k, False: 9.16k]
  |  Branch (5688:26): [True: 1.46k, False: 0]
  ------------------
 5689|  1.46k|		sctp_send_asconf_ack(stcb);
 5690|  1.46k|	}
 5691|  10.6k|	return (stcb);
 5692|  22.3k|}
sctp_input.c:sctp_handle_init_ack:
 1358|  9.22k|{
 1359|  9.22k|	struct sctp_init_ack *init_ack;
 1360|  9.22k|	struct mbuf *op_err;
 1361|       |
 1362|  9.22k|	SCTPDBG(SCTP_DEBUG_INPUT2,
 1363|  9.22k|		"sctp_handle_init_ack: handling INIT-ACK\n");
 1364|       |
 1365|  9.22k|	if (stcb == NULL) {
  ------------------
  |  Branch (1365:6): [True: 0, False: 9.22k]
  ------------------
 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|  9.22k|	if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  472|  9.22k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  9.22k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  457|  9.22k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (1371:6): [True: 9.22k, False: 2]
  ------------------
 1372|  9.22k|		init_ack = &cp->init;
 1373|       |		/* Validate parameters. */
 1374|  9.22k|		if ((ntohl(init_ack->initiate_tag) == 0) ||
  ------------------
  |  Branch (1374:7): [True: 1, False: 9.22k]
  ------------------
 1375|  9.22k|		    (ntohl(init_ack->a_rwnd) < SCTP_MIN_RWND) ||
  ------------------
  |  |  687|  9.22k|#define SCTP_MIN_RWND	1500
  ------------------
  |  Branch (1375:7): [True: 3, False: 9.21k]
  ------------------
 1376|  9.21k|		    (ntohs(init_ack->num_inbound_streams) == 0) ||
  ------------------
  |  Branch (1376:7): [True: 5, False: 9.21k]
  ------------------
 1377|  9.21k|		    (ntohs(init_ack->num_outbound_streams) == 0)) {
  ------------------
  |  Branch (1377:7): [True: 8, False: 9.20k]
  ------------------
 1378|       |			/* One of the mandatory parameters is illegal. */
 1379|     17|			op_err = sctp_generate_cause(SCTP_CAUSE_INVALID_PARAM, "");
  ------------------
  |  |  372|     17|#define SCTP_CAUSE_INVALID_PARAM	0x0007
  ------------------
 1380|     17|			sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen,
 1381|     17|			                       src, dst, sh, op_err,
 1382|       |	#if defined(__FreeBSD__) && !defined(__Userspace__)
 1383|       |			                       mflowtype, mflowid,
 1384|       |	#endif
 1385|     17|			                       vrf_id, net->port);
 1386|     17|			*abort_no_unlock = 1;
 1387|     17|			return (-1);
 1388|     17|		}
 1389|  9.20k|		if (stcb->asoc.primary_destination->dest_state &
  ------------------
  |  Branch (1389:7): [True: 0, False: 9.20k]
  ------------------
 1390|  9.20k|		    SCTP_ADDR_UNCONFIRMED) {
  ------------------
  |  |  487|  9.20k|#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|  9.20k|		if (sctp_process_init_ack(m, iphlen, offset, src, dst, sh, cp, stcb,
  ------------------
  |  Branch (1402:7): [True: 502, False: 8.70k]
  ------------------
 1403|  9.20k|		                          net, abort_no_unlock,
 1404|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 1405|       |		                          mflowtype, mflowid,
 1406|       |#endif
 1407|  9.20k|		                          vrf_id) < 0) {
 1408|       |			/* error in parsing parameters */
 1409|    502|			return (-1);
 1410|    502|		}
 1411|       |		/* Update our state. */
 1412|  8.70k|		SCTPDBG(SCTP_DEBUG_INPUT2, "moving to COOKIE-ECHOED state\n");
 1413|  8.70k|		SCTP_SET_STATE(stcb, SCTP_STATE_COOKIE_ECHOED);
  ------------------
  |  |  474|  8.70k|	sctp_set_state(_stcb, _state)
  ------------------
 1414|       |
 1415|       |		/* Reset the RTO calculation. */
 1416|  8.70k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|  8.70k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|  8.70k|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (1416:7): [True: 0, False: 8.70k]
  ------------------
 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|  8.70k|		stcb->asoc.overall_error_count = 0;
 1424|  8.70k|		(void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_entered);
  ------------------
  |  |  991|  8.70k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 1425|       |		/*
 1426|       |		 * Collapse the init timer back in case of a exponential
 1427|       |		 * backoff.
 1428|       |		 */
 1429|  8.70k|		sctp_timer_start(SCTP_TIMER_TYPE_COOKIE, stcb->sctp_ep,
  ------------------
  |  |  537|  8.70k|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
 1430|  8.70k|		    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|  8.70k|		SCTPDBG(SCTP_DEBUG_INPUT1, "Leaving handle-init-ack end\n");
 1436|  8.70k|		return (0);
 1437|  9.20k|	} else {
 1438|      2|		return (-1);
 1439|      2|	}
 1440|  9.22k|}
sctp_input.c:sctp_process_init_ack:
  414|  9.20k|{
  415|  9.20k|	struct sctp_association *asoc;
  416|  9.20k|	struct mbuf *op_err;
  417|  9.20k|	int retval, abort_flag, cookie_found;
  418|  9.20k|	int initack_limit;
  419|  9.20k|	int nat_friendly = 0;
  420|       |
  421|       |	/* First verify that we have no illegal param's */
  422|  9.20k|	abort_flag = 0;
  423|  9.20k|	cookie_found = 0;
  424|       |
  425|  9.20k|	op_err = sctp_arethere_unrecognized_parameters(m,
  426|  9.20k|						       (offset + sizeof(struct sctp_init_chunk)),
  427|  9.20k|						       &abort_flag, (struct sctp_chunkhdr *)cp,
  428|  9.20k|						       &nat_friendly, &cookie_found, NULL);
  429|  9.20k|	if (abort_flag) {
  ------------------
  |  Branch (429:6): [True: 89, False: 9.11k]
  ------------------
  430|       |		/* Send an abort and notify peer */
  431|     89|		sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen,
  432|     89|		                       src, dst, sh, op_err,
  433|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  434|       |		                       mflowtype, mflowid,
  435|       |#endif
  436|     89|		                       vrf_id, net->port);
  437|     89|		*abort_no_unlock = 1;
  438|     89|		return (-1);
  439|     89|	}
  440|  9.11k|	if (!cookie_found) {
  ------------------
  |  Branch (440:6): [True: 191, False: 8.92k]
  ------------------
  441|    191|		uint16_t len;
  442|       |
  443|       |		/* Only report the missing cookie parameter */
  444|    191|		if (op_err != NULL) {
  ------------------
  |  Branch (444:7): [True: 59, False: 132]
  ------------------
  445|     59|			sctp_m_freem(op_err);
  ------------------
  |  |   52|     59|#define sctp_m_freem m_freem
  ------------------
  446|     59|		}
  447|    191|		len = (uint16_t)(sizeof(struct sctp_error_missing_param) + sizeof(uint16_t));
  448|       |		/* We abort with an error of missing mandatory param */
  449|    191|		op_err = sctp_get_mbuf_for_msg(len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    191|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		op_err = sctp_get_mbuf_for_msg(len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    191|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
  450|    191|		if (op_err != NULL) {
  ------------------
  |  Branch (450:7): [True: 191, False: 0]
  ------------------
  451|    191|			struct sctp_error_missing_param *cause;
  452|       |
  453|    191|			SCTP_BUF_LEN(op_err) = len;
  ------------------
  |  |  801|    191|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    191|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  454|    191|			cause = mtod(op_err, struct sctp_error_missing_param *);
  ------------------
  |  |   96|    191|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    191|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
  455|       |			/* Subtract the reserved param */
  456|    191|			cause->cause.code = htons(SCTP_CAUSE_MISSING_PARAM);
  457|    191|			cause->cause.length = htons(len);
  458|    191|			cause->num_missing_params = htonl(1);
  459|    191|			cause->type[0] = htons(SCTP_STATE_COOKIE);
  460|    191|		}
  461|    191|		sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen,
  462|    191|		                       src, dst, sh, op_err,
  463|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  464|       |		                       mflowtype, mflowid,
  465|       |#endif
  466|    191|		                       vrf_id, net->port);
  467|    191|		*abort_no_unlock = 1;
  468|    191|		return (-3);
  469|    191|	}
  470|  8.92k|	asoc = &stcb->asoc;
  471|  8.92k|	asoc->peer_supports_nat = (uint8_t)nat_friendly;
  472|       |	/* process the peer's parameters in the INIT-ACK */
  473|  8.92k|	if (sctp_process_init((struct sctp_init_chunk *)cp, stcb) < 0) {
  ------------------
  |  Branch (473:6): [True: 0, False: 8.92k]
  ------------------
  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.92k|	initack_limit = offset + ntohs(cp->ch.chunk_length);
  489|       |	/* load all addresses */
  490|  8.92k|	if ((retval = sctp_load_addresses_from_init(stcb, m,
  ------------------
  |  Branch (490:6): [True: 222, False: 8.70k]
  ------------------
  491|  8.92k|	                                            offset + sizeof(struct sctp_init_chunk),
  492|  8.92k|	                                            initack_limit, src, dst, NULL, stcb->asoc.port)) < 0) {
  493|    222|		if (op_err != NULL) {
  ------------------
  |  Branch (493:7): [True: 71, False: 151]
  ------------------
  494|     71|			sctp_m_freem(op_err);
  ------------------
  |  |   52|     71|#define sctp_m_freem m_freem
  ------------------
  495|     71|		}
  496|    222|		op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code),
  ------------------
  |  |  590|    222|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  497|    222|		                             "Problem with address parameters");
  498|    222|		SCTPDBG(SCTP_DEBUG_INPUT1,
  499|    222|		        "Load addresses from INIT causes an abort %d\n",
  500|    222|		        retval);
  501|    222|		sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen,
  502|    222|		                       src, dst, sh, op_err,
  503|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  504|       |		                       mflowtype, mflowid,
  505|       |#endif
  506|    222|		                       vrf_id, net->port);
  507|    222|		*abort_no_unlock = 1;
  508|    222|		return (-1);
  509|    222|	}
  510|       |	/* if the peer doesn't support asconf, flush the asconf queue */
  511|  8.70k|	if (asoc->asconf_supported == 0) {
  ------------------
  |  Branch (511:6): [True: 636, False: 8.06k]
  ------------------
  512|    636|		struct sctp_asconf_addr *param, *nparam;
  513|       |
  514|    636|		TAILQ_FOREACH_SAFE(param, &asoc->asconf_queue, next, nparam) {
  ------------------
  |  | 1129|    636|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    636|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 636]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|    636|              (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|    636|	}
  519|       |
  520|  8.70k|	stcb->asoc.peer_hmac_id = sctp_negotiate_hmacid(stcb->asoc.peer_hmacs,
  521|  8.70k|	    stcb->asoc.local_hmacs);
  522|  8.70k|	if (op_err) {
  ------------------
  |  Branch (522:6): [True: 223, False: 8.48k]
  ------------------
  523|    223|		sctp_queue_op_err(stcb, op_err);
  524|       |		/* queuing will steal away the mbuf chain to the out queue */
  525|    223|		op_err = NULL;
  526|    223|	}
  527|       |	/* extract the cookie and queue it to "echo" it back... */
  528|  8.70k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|  8.70k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|  8.70k|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (528:6): [True: 0, False: 8.70k]
  ------------------
  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|  8.70k|	sctp_timer_stop(SCTP_TIMER_TYPE_INIT, stcb->sctp_ep, stcb,
  ------------------
  |  |  533|  8.70k|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
  543|  8.70k|	    asoc->primary_destination, SCTP_FROM_SCTP_INPUT + SCTP_LOC_3);
  ------------------
  |  |  755|  8.70k|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              	    asoc->primary_destination, SCTP_FROM_SCTP_INPUT + SCTP_LOC_3);
  ------------------
  |  |  771|  8.70k|#define SCTP_LOC_3  0x00000003
  ------------------
  544|       |
  545|       |	/* calculate the RTO */
  546|  8.70k|	if (asoc->overall_error_count == 0) {
  ------------------
  |  Branch (546:6): [True: 8.70k, False: 0]
  ------------------
  547|  8.70k|		sctp_calculate_rto(stcb, asoc, net, &asoc->time_entered,
  548|  8.70k|		                   SCTP_RTT_FROM_NON_DATA);
  ------------------
  |  |  340|  8.70k|#define SCTP_RTT_FROM_NON_DATA 0
  ------------------
  549|  8.70k|	}
  550|  8.70k|	stcb->asoc.overall_error_count = 0;
  551|  8.70k|	net->error_count = 0;
  552|  8.70k|#if defined(__Userspace__)
  553|  8.70k|	if (stcb->sctp_ep->recv_callback) {
  ------------------
  |  Branch (553:6): [True: 0, False: 8.70k]
  ------------------
  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|  8.70k|#endif
  577|  8.70k|	retval = sctp_send_cookie_echo(m, offset, initack_limit, stcb, net);
  578|  8.70k|	return (retval);
  579|  8.70k|}
sctp_input.c:sctp_process_init:
  257|  8.92k|{
  258|  8.92k|	struct sctp_init *init;
  259|  8.92k|	struct sctp_association *asoc;
  260|  8.92k|	struct sctp_nets *lnet;
  261|  8.92k|	unsigned int i;
  262|       |
  263|  8.92k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  8.92k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  8.92k|	do {                         \
  |  |  |  |  113|  8.92k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 8.92k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.92k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 8.92k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  264|       |
  265|  8.92k|	init = &cp->init;
  266|  8.92k|	asoc = &stcb->asoc;
  267|       |	/* save off parameters */
  268|  8.92k|	asoc->peer_vtag = ntohl(init->initiate_tag);
  269|  8.92k|	asoc->peers_rwnd = ntohl(init->a_rwnd);
  270|       |	/* init tsn's */
  271|  8.92k|	asoc->highest_tsn_inside_map = asoc->asconf_seq_in = ntohl(init->initial_tsn) - 1;
  272|       |
  273|  8.92k|	if (!TAILQ_EMPTY(&asoc->nets)) {
  ------------------
  |  Branch (273:6): [True: 8.92k, False: 0]
  ------------------
  274|       |		/* update any ssthresh's that may have a default */
  275|  8.92k|		TAILQ_FOREACH(lnet, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (275:3): [True: 8.92k, False: 8.92k]
  ------------------
  276|  8.92k|			lnet->ssthresh = asoc->peers_rwnd;
  277|  8.92k|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & (SCTP_CWND_MONITOR_ENABLE|SCTP_CWND_LOGGING_ENABLE)) {
  ------------------
  |  |  590|  8.92k|#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.92k|#define SCTP_CWND_MONITOR_ENABLE			0x00000002
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & (SCTP_CWND_MONITOR_ENABLE|SCTP_CWND_LOGGING_ENABLE)) {
  ------------------
  |  |  645|  8.92k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (277:8): [True: 0, False: 8.92k]
  ------------------
  278|      0|				sctp_log_cwnd(stcb, lnet, 0, SCTP_CWND_INITIALIZATION);
  ------------------
  |  |  166|      0|#define SCTP_CWND_INITIALIZATION    62
  ------------------
  279|      0|			}
  280|  8.92k|		}
  281|  8.92k|	}
  282|  8.92k|	if (asoc->pre_open_streams > ntohs(init->num_inbound_streams)) {
  ------------------
  |  Branch (282:6): [True: 465, False: 8.46k]
  ------------------
  283|    465|		unsigned int newcnt;
  284|    465|		struct sctp_stream_out *outs;
  285|    465|		struct sctp_stream_queue_pending *sp, *nsp;
  286|    465|		struct sctp_tmit_chunk *chk, *nchk;
  287|       |
  288|       |		/* abandon the upper streams */
  289|    465|		newcnt = ntohs(init->num_inbound_streams);
  290|    465|		TAILQ_FOREACH_SAFE(chk, &asoc->send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|    465|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    465|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 465]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|    465|              (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|    465|		if (asoc->strmout) {
  ------------------
  |  Branch (314:7): [True: 465, False: 0]
  ------------------
  315|  76.2k|			for (i = newcnt; i < asoc->pre_open_streams; i++) {
  ------------------
  |  Branch (315:21): [True: 75.8k, False: 465]
  ------------------
  316|  75.8k|				outs = &asoc->strmout[i];
  317|  75.8k|				TAILQ_FOREACH_SAFE(sp, &outs->outqueue, next, nsp) {
  ------------------
  |  | 1129|  75.8k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  75.8k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 75.8k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  75.8k|              (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|  75.8k|				outs->state = SCTP_STREAM_CLOSED;
  ------------------
  |  |  668|  75.8k|#define SCTP_STREAM_CLOSED           0x00
  ------------------
  336|  75.8k|			}
  337|    465|		}
  338|       |		/* cut back the count */
  339|    465|		asoc->pre_open_streams = newcnt;
  340|    465|	}
  341|  8.92k|	asoc->streamoutcnt = asoc->pre_open_streams;
  342|  8.92k|	if (asoc->strmout) {
  ------------------
  |  Branch (342:6): [True: 8.92k, False: 0]
  ------------------
  343|  2.22M|		for (i = 0; i < asoc->streamoutcnt; i++) {
  ------------------
  |  Branch (343:15): [True: 2.21M, False: 8.92k]
  ------------------
  344|  2.21M|			asoc->strmout[i].state = SCTP_STREAM_OPEN;
  ------------------
  |  |  670|  2.21M|#define SCTP_STREAM_OPEN             0x02
  ------------------
  345|  2.21M|		}
  346|  8.92k|	}
  347|       |	/* EY - nr_sack: initialize highest tsn in nr_mapping_array */
  348|  8.92k|	asoc->highest_tsn_inside_nr_map = asoc->highest_tsn_inside_map;
  349|  8.92k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  590|  8.92k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  649|  8.92k|#define SCTP_MAP_LOGGING_ENABLE				0x00000100
  ------------------
  |  Branch (349:6): [True: 0, False: 8.92k]
  ------------------
  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.92k|	asoc->str_reset_seq_in = asoc->asconf_seq_in + 1;
  354|       |
  355|  8.92k|	asoc->mapping_array_base_tsn = ntohl(init->initial_tsn);
  356|  8.92k|	asoc->tsn_last_delivered = asoc->cumulative_tsn = asoc->asconf_seq_in;
  357|       |
  358|  8.92k|	asoc->advanced_peer_ack_point = asoc->last_acked_seq;
  359|       |	/* open the requested streams */
  360|       |
  361|  8.92k|	if (asoc->strmin != NULL) {
  ------------------
  |  Branch (361:6): [True: 0, False: 8.92k]
  ------------------
  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.92k|	if (asoc->max_inbound_streams > ntohs(init->num_outbound_streams)) {
  ------------------
  |  Branch (369:6): [True: 336, False: 8.59k]
  ------------------
  370|    336|		asoc->streamincnt = ntohs(init->num_outbound_streams);
  371|  8.59k|	} else {
  372|  8.59k|		asoc->streamincnt = asoc->max_inbound_streams;
  373|  8.59k|	}
  374|  8.92k|	SCTP_MALLOC(asoc->strmin, struct sctp_stream_in *, asoc->streamincnt *
  ------------------
  |  |  675|  8.92k|	do {								\
  |  |  676|  8.92k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  8.92k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  8.92k|    do {								\
  |  |  |  |  198|  8.92k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  17.8k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 8.92k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  8.92k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 8.92k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  8.92k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 8.92k]
  |  |  ------------------
  ------------------
  375|  8.92k|		    sizeof(struct sctp_stream_in), SCTP_M_STRMI);
  376|  8.92k|	if (asoc->strmin == NULL) {
  ------------------
  |  Branch (376:6): [True: 0, False: 8.92k]
  ------------------
  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.24M|	for (i = 0; i < asoc->streamincnt; i++) {
  ------------------
  |  Branch (381:14): [True: 2.23M, False: 8.92k]
  ------------------
  382|  2.23M|		asoc->strmin[i].sid = i;
  383|  2.23M|		asoc->strmin[i].last_mid_delivered = 0xffffffff;
  384|  2.23M|		TAILQ_INIT(&asoc->strmin[i].inqueue);
  ------------------
  |  Branch (384:3): [Folded, False: 2.23M]
  ------------------
  385|  2.23M|		TAILQ_INIT(&asoc->strmin[i].uno_inqueue);
  ------------------
  |  Branch (385:3): [Folded, False: 2.23M]
  ------------------
  386|  2.23M|		asoc->strmin[i].pd_api_started = 0;
  387|  2.23M|		asoc->strmin[i].delivery_started = 0;
  388|  2.23M|	}
  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.92k|	return (0);
  400|  8.92k|}
sctp_input.c:sctp_handle_heartbeat_ack:
  584|  4.02k|{
  585|  4.02k|	union sctp_sockstore store;
  586|  4.02k|	struct sctp_nets *r_net, *f_net;
  587|  4.02k|	struct timeval tv;
  588|  4.02k|	int req_prim = 0;
  589|  4.02k|	uint16_t old_error_counter;
  590|       |
  591|  4.02k|	if (ntohs(cp->ch.chunk_length) != sizeof(struct sctp_heartbeat_chunk)) {
  ------------------
  |  Branch (591:6): [True: 0, False: 4.02k]
  ------------------
  592|       |		/* Invalid length */
  593|      0|		return;
  594|      0|	}
  595|       |
  596|  4.02k|	memset(&store, 0, sizeof(store));
  597|  4.02k|	switch (cp->heartbeat.hb_info.addr_family) {
  598|      0|#ifdef INET
  599|    583|	case AF_INET:
  ------------------
  |  Branch (599:2): [True: 583, False: 3.44k]
  ------------------
  600|    583|		if (cp->heartbeat.hb_info.addr_len == sizeof(struct sockaddr_in)) {
  ------------------
  |  Branch (600:7): [True: 464, False: 119]
  ------------------
  601|    464|			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|    464|			store.sin.sin_port = stcb->rport;
  606|    464|			memcpy(&store.sin.sin_addr, cp->heartbeat.hb_info.address,
  607|    464|			       sizeof(store.sin.sin_addr));
  608|    464|		} else {
  609|    119|			return;
  610|    119|		}
  611|    464|		break;
  612|    464|#endif
  613|    464|#ifdef INET6
  614|    734|	case AF_INET6:
  ------------------
  |  Branch (614:2): [True: 734, False: 3.29k]
  ------------------
  615|    734|		if (cp->heartbeat.hb_info.addr_len == sizeof(struct sockaddr_in6)) {
  ------------------
  |  Branch (615:7): [True: 612, False: 122]
  ------------------
  616|    612|			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|    612|			store.sin6.sin6_port = stcb->rport;
  621|    612|			memcpy(&store.sin6.sin6_addr, cp->heartbeat.hb_info.address, sizeof(struct in6_addr));
  622|    612|		} else {
  623|    122|			return;
  624|    122|		}
  625|    612|		break;
  626|    612|#endif
  627|    612|#if defined(__Userspace__)
  628|  2.12k|	case AF_CONN:
  ------------------
  |  | 1014|  2.12k|#define AF_CONN 123
  ------------------
  |  Branch (628:2): [True: 2.12k, False: 1.90k]
  ------------------
  629|  2.12k|		if (cp->heartbeat.hb_info.addr_len == sizeof(struct sockaddr_conn)) {
  ------------------
  |  Branch (629:7): [True: 1.98k, False: 134]
  ------------------
  630|  1.98k|			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.98k|			store.sconn.sconn_port = stcb->rport;
  635|  1.98k|			memcpy(&store.sconn.sconn_addr, cp->heartbeat.hb_info.address, sizeof(void *));
  636|  1.98k|		} else {
  637|    134|			return;
  638|    134|		}
  639|  1.98k|		break;
  640|  1.98k|#endif
  641|  1.98k|	default:
  ------------------
  |  Branch (641:2): [True: 587, False: 3.44k]
  ------------------
  642|    587|		return;
  643|  4.02k|	}
  644|  3.06k|	r_net = sctp_findnet(stcb, &store.sa);
  645|  3.06k|	if (r_net == NULL) {
  ------------------
  |  Branch (645:6): [True: 910, False: 2.15k]
  ------------------
  646|    910|		SCTPDBG(SCTP_DEBUG_INPUT1, "Huh? I can't find the address I sent it to, discard\n");
  647|    910|		return;
  648|    910|	}
  649|  2.15k|	if ((r_net && (r_net->dest_state & SCTP_ADDR_UNCONFIRMED)) &&
  ------------------
  |  |  487|  2.15k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (649:7): [True: 2.15k, False: 0]
  |  Branch (649:16): [True: 210, False: 1.94k]
  ------------------
  650|    210|	    (r_net->heartbeat_random1 == cp->heartbeat.hb_info.random_value1) &&
  ------------------
  |  Branch (650:6): [True: 137, False: 73]
  ------------------
  651|    137|	    (r_net->heartbeat_random2 == cp->heartbeat.hb_info.random_value2)) {
  ------------------
  |  Branch (651:6): [True: 36, False: 101]
  ------------------
  652|       |		/*
  653|       |		 * If the its a HB and it's random value is correct when can
  654|       |		 * confirm the destination.
  655|       |		 */
  656|     36|		r_net->dest_state &= ~SCTP_ADDR_UNCONFIRMED;
  ------------------
  |  |  487|     36|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  657|     36|		if (r_net->dest_state & SCTP_ADDR_REQ_PRIMARY) {
  ------------------
  |  |  488|     36|#define SCTP_ADDR_REQ_PRIMARY           0x400
  ------------------
  |  Branch (657:7): [True: 2, False: 34]
  ------------------
  658|      2|			stcb->asoc.primary_destination = r_net;
  659|      2|			r_net->dest_state &= ~SCTP_ADDR_REQ_PRIMARY;
  ------------------
  |  |  488|      2|#define SCTP_ADDR_REQ_PRIMARY           0x400
  ------------------
  660|      2|			f_net = TAILQ_FIRST(&stcb->asoc.nets);
  661|      2|			if (f_net != r_net) {
  ------------------
  |  Branch (661:8): [True: 2, 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|      2|				TAILQ_REMOVE(&stcb->asoc.nets, r_net, sctp_next);
  ------------------
  |  Branch (667:5): [True: 1, False: 1]
  |  Branch (667:5): [Folded, False: 2]
  ------------------
  668|      2|				TAILQ_INSERT_HEAD(&stcb->asoc.nets, r_net, sctp_next);
  ------------------
  |  Branch (668:5): [True: 2, False: 0]
  |  Branch (668:5): [Folded, False: 2]
  ------------------
  669|      2|			}
  670|      2|			req_prim = 1;
  671|      2|		}
  672|     36|		sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_CONFIRMED,
  ------------------
  |  |  718|     36|#define SCTP_NOTIFY_INTERFACE_CONFIRMED         16
  ------------------
  673|     36|		    stcb, 0, (void *)r_net, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     36|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  674|     36|		sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb,
  ------------------
  |  |  536|     36|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  675|     36|		                r_net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_4);
  ------------------
  |  |  755|     36|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              		                r_net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_4);
  ------------------
  |  |  772|     36|#define SCTP_LOC_4  0x00000004
  ------------------
  676|     36|		sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, r_net);
  ------------------
  |  |  536|     36|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  677|     36|	}
  678|  2.15k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|  2.15k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|  2.15k|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (678:6): [True: 0, False: 2.15k]
  ------------------
  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|  2.15k|	stcb->asoc.overall_error_count = 0;
  686|  2.15k|	old_error_counter = r_net->error_count;
  687|  2.15k|	r_net->error_count = 0;
  688|  2.15k|	r_net->hb_responded = 1;
  689|  2.15k|	tv.tv_sec = cp->heartbeat.hb_info.time_value_1;
  690|  2.15k|	tv.tv_usec = cp->heartbeat.hb_info.time_value_2;
  691|       |	/* Now lets do a RTO with this */
  692|  2.15k|	sctp_calculate_rto(stcb, &stcb->asoc, r_net, &tv,
  693|  2.15k|	                   SCTP_RTT_FROM_NON_DATA);
  ------------------
  |  |  340|  2.15k|#define SCTP_RTT_FROM_NON_DATA 0
  ------------------
  694|  2.15k|	if ((r_net->dest_state & SCTP_ADDR_REACHABLE) == 0) {
  ------------------
  |  |  481|  2.15k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (694:6): [True: 0, False: 2.15k]
  ------------------
  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|  2.15k|	if (r_net->dest_state & SCTP_ADDR_PF) {
  ------------------
  |  |  490|  2.15k|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (699:6): [True: 0, False: 2.15k]
  ------------------
  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|  2.15k|	if (old_error_counter > 0) {
  ------------------
  |  Branch (703:6): [True: 0, False: 2.15k]
  ------------------
  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|  2.15k|	if (r_net == stcb->asoc.primary_destination) {
  ------------------
  |  Branch (708:6): [True: 1.74k, False: 406]
  ------------------
  709|  1.74k|		if (stcb->asoc.alternate) {
  ------------------
  |  Branch (709:7): [True: 122, False: 1.62k]
  ------------------
  710|       |			/* release the alternate, primary is good */
  711|    122|			sctp_free_remote_addr(stcb->asoc.alternate);
  ------------------
  |  |  228|    122|#define sctp_free_remote_addr(__net) { \
  |  |  229|    122|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 122, False: 0]
  |  |  ------------------
  |  |  230|    122|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|    122|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|    122|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 122]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  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|    122|	} \
  |  |  245|    122|}
  ------------------
  712|    122|			stcb->asoc.alternate = NULL;
  713|    122|		}
  714|  1.74k|	}
  715|       |	/* Mobility adaptation */
  716|  2.15k|	if (req_prim) {
  ------------------
  |  Branch (716:6): [True: 2, False: 2.15k]
  ------------------
  717|      2|		if ((sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|      4|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 2]
  |  |  ------------------
  ------------------
  718|      2|		                                 SCTP_MOBILITY_BASE) ||
  719|      2|		    sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|      2|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 2]
  |  |  ------------------
  ------------------
  720|      2|		                                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|      2|		                                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|      2|	}
  739|  2.15k|}
sctp_input.c:sctp_handle_abort:
  813|     98|{
  814|       |#if defined(__APPLE__) && !defined(__Userspace__)
  815|       |	struct socket *so;
  816|       |#endif
  817|     98|	uint16_t len;
  818|     98|	uint16_t error;
  819|       |
  820|     98|	SCTPDBG(SCTP_DEBUG_INPUT2, "sctp_handle_abort: handling ABORT\n");
  821|     98|	if (stcb == NULL)
  ------------------
  |  Branch (821:6): [True: 0, False: 98]
  ------------------
  822|      0|		return (0);
  823|       |
  824|     98|	len = ntohs(abort->ch.chunk_length);
  825|     98|	if (len >= sizeof(struct sctp_chunkhdr) + sizeof(struct sctp_error_cause)) {
  ------------------
  |  Branch (825:6): [True: 63, False: 35]
  ------------------
  826|       |		/* Need to check the cause codes for our
  827|       |		 * two magic nat aborts which don't kill the assoc
  828|       |		 * necessarily.
  829|       |		 */
  830|     63|		struct sctp_error_cause *cause;
  831|       |
  832|     63|		cause = (struct sctp_error_cause *)(abort + 1);
  833|     63|		error = ntohs(cause->code);
  834|     63|		if (error == SCTP_CAUSE_NAT_COLLIDING_STATE) {
  ------------------
  |  |  388|     63|#define SCTP_CAUSE_NAT_COLLIDING_STATE  0x00b0
  ------------------
  |  Branch (834:7): [True: 5, False: 58]
  ------------------
  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: 4, False: 1]
  ------------------
  838|      4|				return (0);
  839|      4|			}
  840|     58|		} else if (error == SCTP_CAUSE_NAT_MISSING_STATE) {
  ------------------
  |  |  389|     58|#define SCTP_CAUSE_NAT_MISSING_STATE    0x00b1
  ------------------
  |  Branch (840:14): [True: 1, False: 57]
  ------------------
  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|     63|	} else {
  848|     35|		error = 0;
  849|     35|	}
  850|       |	/* stop any receive timers */
  851|     93|	sctp_timer_stop(SCTP_TIMER_TYPE_RECV, stcb->sctp_ep, stcb, NULL,
  ------------------
  |  |  534|     93|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
  852|     93|	                SCTP_FROM_SCTP_INPUT + SCTP_LOC_7);
  ------------------
  |  |  755|     93|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              	                SCTP_FROM_SCTP_INPUT + SCTP_LOC_7);
  ------------------
  |  |  775|     93|#define SCTP_LOC_7  0x00000007
  ------------------
  853|       |	/* notify user of the abort and clean up... */
  854|     93|	sctp_abort_notification(stcb, true, false, error, abort, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     93|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  855|       |	/* free the tcb */
  856|     93|	SCTP_STAT_INCR_COUNTER32(sctps_aborted);
  ------------------
  |  | 1127|     93|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|     93|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     93|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     93|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  857|     93|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|     93|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|     93|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|     93|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (857:6): [True: 24, False: 69]
  ------------------
  858|     69|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|     69|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|     69|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|     69|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (858:6): [True: 3, False: 66]
  ------------------
  859|     27|		SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|     27|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|     27|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|     27|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|     27|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  860|     27|	}
  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|     93|	(void)sctp_free_assoc(stcb->sctp_ep, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|     93|#define SCTP_NORMAL_PROC      0
  ------------------
  873|     93|			      SCTP_FROM_SCTP_INPUT + SCTP_LOC_8);
  ------------------
  |  |  755|     93|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              			      SCTP_FROM_SCTP_INPUT + SCTP_LOC_8);
  ------------------
  |  |  776|     93|#define SCTP_LOC_8  0x00000008
  ------------------
  874|       |#if defined(__APPLE__) && !defined(__Userspace__)
  875|       |	SCTP_SOCKET_UNLOCK(so, 1);
  876|       |#endif
  877|     93|	SCTPDBG(SCTP_DEBUG_INPUT2, "sctp_handle_abort: finished\n");
  878|     93|	return (1);
  879|     98|}
sctp_input.c:sctp_handle_nat_colliding_state:
  743|  16.6k|{
  744|       |	/*
  745|       |	 * Return 0 means we want you to proceed with the abort
  746|       |	 * non-zero means no abort processing.
  747|       |	 */
  748|  16.6k|	uint32_t new_vtag;
  749|  16.6k|	struct sctpasochead *head;
  750|       |
  751|  16.6k|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|  16.6k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  16.6k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|  16.6k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (751:6): [True: 14.9k, False: 1.75k]
  ------------------
  752|  15.1k|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|  1.75k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  1.75k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|  1.75k|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (752:6): [True: 192, False: 1.56k]
  ------------------
  753|  15.1k|		atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|  15.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
  754|  15.1k|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  15.1k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  15.1k|	do {                         \
  |  |  |  |  113|  15.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 15.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|  15.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 15.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  755|  15.1k|		SCTP_INP_INFO_WLOCK();
  ------------------
  |  |  297|  15.1k|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  15.1k|	do {                         \
  |  |  |  |  113|  15.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 15.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|  15.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 15.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  756|  15.1k|		SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  15.1k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  15.1k|	do {                         \
  |  |  |  |  113|  15.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 15.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|  15.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 15.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  757|  15.1k|		atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|  15.1k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
  758|  15.1k|	} else {
  759|  1.56k|		return (0);
  760|  1.56k|	}
  761|  15.1k|	new_vtag = sctp_select_a_tag(stcb->sctp_ep, stcb->sctp_ep->sctp_lport, stcb->rport, 1);
  ------------------
  |  |  426|  15.1k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  15.1k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  15.1k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  762|  15.1k|	if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  472|  15.1k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  15.1k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  457|  15.1k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (762:6): [True: 14.9k, False: 192]
  ------------------
  763|       |		/* generate a new vtag and send init */
  764|  14.9k|		LIST_REMOVE(stcb, sctp_asocs);
  ------------------
  |  Branch (764:3): [True: 17, False: 14.8k]
  |  Branch (764:3): [Folded, False: 14.9k]
  ------------------
  765|  14.9k|		stcb->asoc.my_vtag = new_vtag;
  766|  14.9k|		head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(stcb->asoc.my_vtag, SCTP_BASE_INFO(hashasocmark))];
  ------------------
  |  |  587|  14.9k|#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|  14.9k|#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|  14.9k|		LIST_INSERT_HEAD(head, stcb, sctp_asocs);
  ------------------
  |  Branch (768:3): [True: 17, False: 14.8k]
  |  Branch (768:3): [Folded, False: 14.9k]
  ------------------
  769|  14.9k|		SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|  14.9k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  14.9k|	do {                         \
  |  |  |  |  113|  14.9k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 14.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|  14.9k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 14.9k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  770|  14.9k|		sctp_send_initiate(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  14.9k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  771|  14.9k|		return (1);
  772|  14.9k|	} 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|    192|		LIST_REMOVE(stcb, sctp_asocs);
  ------------------
  |  Branch (779:3): [True: 0, False: 192]
  |  Branch (779:3): [Folded, False: 192]
  ------------------
  780|    192|		SCTP_SET_STATE(stcb, SCTP_STATE_COOKIE_WAIT);
  ------------------
  |  |  474|    192|	sctp_set_state(_stcb, _state)
  ------------------
  781|    192|		sctp_stop_all_cookie_timers(stcb);
  782|    192|		sctp_toss_old_cookies(stcb, &stcb->asoc);
  783|    192|		stcb->asoc.my_vtag = new_vtag;
  784|    192|		head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(stcb->asoc.my_vtag, SCTP_BASE_INFO(hashasocmark))];
  ------------------
  |  |  587|    192|#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|    192|#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|    192|		LIST_INSERT_HEAD(head, stcb, sctp_asocs);
  ------------------
  |  Branch (786:3): [True: 0, False: 192]
  |  Branch (786:3): [Folded, False: 192]
  ------------------
  787|    192|		SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|    192|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    192|	do {                         \
  |  |  |  |  113|    192|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 192]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    192|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 192]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  788|    192|		sctp_send_initiate(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    192|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  789|    192|		return (1);
  790|    192|	}
  791|      0|	return (0);
  792|  15.1k|}
sctp_input.c:sctp_stop_all_cookie_timers:
   66|  22.0k|{
   67|  22.0k|	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|  22.0k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  22.0k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  22.0k|	do {                         \
  |  |  |  |  113|  22.0k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 22.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|  22.0k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 22.0k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   75|  29.5k|	TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (75:2): [True: 29.5k, False: 22.0k]
  ------------------
   76|  29.5k|		if (net->rxt_timer.type == SCTP_TIMER_TYPE_COOKIE) {
  ------------------
  |  |  537|  29.5k|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
  |  Branch (76:7): [True: 10.2k, False: 19.3k]
  ------------------
   77|  10.2k|			sctp_timer_stop(SCTP_TIMER_TYPE_COOKIE,
  ------------------
  |  |  537|  10.2k|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
   78|  10.2k|					stcb->sctp_ep,
   79|  10.2k|					stcb,
   80|  10.2k|					net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_1);
  ------------------
  |  |  755|  10.2k|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              					net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_1);
  ------------------
  |  |  769|  10.2k|#define SCTP_LOC_1  0x00000001
  ------------------
   81|  19.3k|		} else if (net->rxt_timer.type == SCTP_TIMER_TYPE_INIT) {
  ------------------
  |  |  533|  19.3k|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
  |  Branch (81:14): [True: 10.0k, False: 9.30k]
  ------------------
   82|  10.0k|			sctp_timer_stop(SCTP_TIMER_TYPE_INIT,
  ------------------
  |  |  533|  10.0k|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
   83|  10.0k|					stcb->sctp_ep,
   84|  10.0k|					stcb,
   85|  10.0k|					net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_2);
  ------------------
  |  |  755|  10.0k|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              					net, SCTP_FROM_SCTP_INPUT + SCTP_LOC_2);
  ------------------
  |  |  770|  10.0k|#define SCTP_LOC_2  0x00000002
  ------------------
   86|  10.0k|		}
   87|  29.5k|	}
   88|  22.0k|}
sctp_input.c:sctp_handle_nat_missing_state:
  797|    618|{
  798|       |	/* return 0 means we want you to proceed with the abort
  799|       |	 * non-zero means no abort processing
  800|       |	 */
  801|    618|	if (stcb->asoc.auth_supported == 0) {
  ------------------
  |  Branch (801:6): [True: 0, False: 618]
  ------------------
  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|    618|	sctp_asconf_send_nat_state_update(stcb, net);
  806|    618|	return (1);
  807|    618|}
sctp_input.c:sctp_handle_shutdown:
  946|  2.09k|{
  947|  2.09k|	int some_on_streamwheel;
  948|  2.09k|	int old_state;
  949|       |#if defined(__APPLE__) && !defined(__Userspace__)
  950|       |	struct socket *so;
  951|       |#endif
  952|       |
  953|  2.09k|	SCTPDBG(SCTP_DEBUG_INPUT2, "sctp_handle_shutdown: handling SHUTDOWN\n");
  954|  2.09k|	if (stcb == NULL)
  ------------------
  |  Branch (954:6): [True: 0, False: 2.09k]
  ------------------
  955|      0|		return;
  956|  2.09k|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|  2.09k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  2.09k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|  2.09k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (956:6): [True: 724, 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: 327, False: 1.04k]
  ------------------
  958|  1.05k|		return;
  959|  1.05k|	}
  960|  1.04k|	if (ntohs(cp->ch.chunk_length) != sizeof(struct sctp_shutdown_chunk)) {
  ------------------
  |  Branch (960:6): [True: 0, False: 1.04k]
  ------------------
  961|       |		/* Shutdown NOT the expected size */
  962|      0|		return;
  963|      0|	}
  964|  1.04k|	old_state = SCTP_GET_STATE(stcb);
  ------------------
  |  |  472|  1.04k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  1.04k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
  965|  1.04k|	sctp_update_acked(stcb, cp, abort_flag);
  966|  1.04k|	if (*abort_flag) {
  ------------------
  |  Branch (966:6): [True: 127, False: 920]
  ------------------
  967|    127|		return;
  968|    127|	}
  969|    920|	sctp_check_data_from_peer(stcb, abort_flag);
  970|    920|	if (*abort_flag) {
  ------------------
  |  Branch (970:6): [True: 0, False: 920]
  ------------------
  971|      0|		return;
  972|      0|	}
  973|    920|	if (stcb->sctp_socket) {
  ------------------
  |  Branch (973:6): [True: 920, False: 0]
  ------------------
  974|    920|		if ((SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_RECEIVED) &&
  ------------------
  |  |  472|    920|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    920|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_RECEIVED) &&
  ------------------
  |  |  461|    920|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (974:7): [True: 637, False: 283]
  ------------------
  975|    637|		    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT) &&
  ------------------
  |  |  472|    637|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    637|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT) &&
  ------------------
  |  |  462|    637|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (975:7): [True: 110, False: 527]
  ------------------
  976|    110|		    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT)) {
  ------------------
  |  |  472|    110|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    110|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT)) {
  ------------------
  |  |  460|    110|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (976:7): [True: 110, False: 0]
  ------------------
  977|    110|			SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_RECEIVED);
  ------------------
  |  |  474|    110|	sctp_set_state(_stcb, _state)
  ------------------
  978|       |			/* notify upper layer that peer has initiated a shutdown */
  979|    110|			sctp_ulp_notify(SCTP_NOTIFY_PEER_SHUTDOWN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  713|    110|#define SCTP_NOTIFY_PEER_SHUTDOWN               11
  ------------------
              			sctp_ulp_notify(SCTP_NOTIFY_PEER_SHUTDOWN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    110|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  980|       |
  981|       |			/* reset time */
  982|    110|			(void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_entered);
  ------------------
  |  |  991|    110|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
  983|    110|		}
  984|    920|	}
  985|    920|	if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) {
  ------------------
  |  |  472|    920|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    920|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) {
  ------------------
  |  |  460|    920|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (985:6): [True: 0, False: 920]
  ------------------
  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|    920|	some_on_streamwheel = sctp_is_there_unsent_data(stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    920|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  995|       |
  996|    920|	if (!TAILQ_EMPTY(&stcb->asoc.send_queue) ||
  ------------------
  |  Branch (996:6): [True: 58, False: 862]
  ------------------
  997|    862|	    !TAILQ_EMPTY(&stcb->asoc.sent_queue) ||
  ------------------
  |  Branch (997:6): [True: 234, False: 628]
  ------------------
  998|    628|	    some_on_streamwheel) {
  ------------------
  |  Branch (998:6): [True: 43, False: 585]
  ------------------
  999|       |		/* By returning we will push more data out */
 1000|    335|		return;
 1001|    585|	} else {
 1002|       |		/* no outstanding data to send, so move on... */
 1003|       |		/* send SHUTDOWN-ACK */
 1004|       |		/* move to SHUTDOWN-ACK-SENT state */
 1005|    585|		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|    585|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    585|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|    585|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (1005:7): [True: 0, False: 585]
  ------------------
 1006|    585|		    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|    585|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    585|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|    585|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (1006:7): [True: 58, False: 527]
  ------------------
 1007|     58|			SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|     58|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|     58|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|     58|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|     58|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1008|     58|		}
 1009|    585|		if (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT) {
  ------------------
  |  |  472|    585|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    585|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT) {
  ------------------
  |  |  462|    585|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (1009:7): [True: 58, False: 527]
  ------------------
 1010|     58|			SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_ACK_SENT);
  ------------------
  |  |  474|     58|	sctp_set_state(_stcb, _state)
  ------------------
 1011|     58|			sctp_stop_timers_for_shutdown(stcb);
 1012|     58|			sctp_send_shutdown_ack(stcb, net);
 1013|     58|			sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNACK,
  ------------------
  |  |  540|     58|#define SCTP_TIMER_TYPE_SHUTDOWNACK	9
  ------------------
 1014|     58|			                 stcb->sctp_ep, stcb, net);
 1015|    527|		} else if (old_state == SCTP_STATE_SHUTDOWN_ACK_SENT) {
  ------------------
  |  |  462|    527|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (1015:14): [True: 527, False: 0]
  ------------------
 1016|    527|			sctp_send_shutdown_ack(stcb, net);
 1017|    527|		}
 1018|    585|	}
 1019|    920|}
sctp_input.c:sctp_check_data_from_peer:
  913|    921|{
  914|    921|	char msg[SCTP_DIAG_INFO_LEN];
  915|    921|	struct sctp_association *asoc;
  916|    921|	struct mbuf *op_err;
  917|    921|	unsigned int i;
  918|       |
  919|    921|	*abort_flag = 0;
  920|    921|	asoc = &stcb->asoc;
  921|    921|	if (SCTP_TSN_GT(asoc->highest_tsn_inside_map, asoc->cumulative_tsn) ||
  ------------------
  |  |  889|    921|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  1.84k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 35, False: 886]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 35]
  |  |  |  |  ------------------
  |  |  |  |  884|  1.84k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 921]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  922|    921|	    SCTP_TSN_GT(asoc->highest_tsn_inside_nr_map, asoc->cumulative_tsn)) {
  ------------------
  |  |  889|    921|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    921|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 921]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|    921|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 921]
  |  |  |  |  |  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|    921|	if (!*abort_flag) {
  ------------------
  |  Branch (926:6): [True: 921, False: 0]
  ------------------
  927|   237k|		for (i = 0; i < asoc->streamincnt; i++) {
  ------------------
  |  Branch (927:15): [True: 236k, False: 921]
  ------------------
  928|   236k|			if (!TAILQ_EMPTY(&asoc->strmin[i].inqueue) ||
  ------------------
  |  Branch (928:8): [True: 0, False: 236k]
  ------------------
  929|   236k|			    !TAILQ_EMPTY(&asoc->strmin[i].uno_inqueue)) {
  ------------------
  |  Branch (929:8): [True: 0, False: 236k]
  ------------------
  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|   236k|		}
  935|    921|	}
  936|    921|	if (*abort_flag) {
  ------------------
  |  Branch (936:6): [True: 0, False: 921]
  ------------------
  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|    921|}
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: 7, False: 5]
  ------------------
 1040|      8|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|      5|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      5|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|      5|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (1040:6): [True: 1, False: 4]
  ------------------
 1041|       |		/* unexpected SHUTDOWN-ACK... do OOTB handling... */
 1042|      8|		sctp_send_shutdown_complete(stcb, net, 1);
 1043|      8|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|      8|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1044|      8|		return;
 1045|      8|	}
 1046|      4|	if ((SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT) &&
  ------------------
  |  |  472|      4|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      4|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT) &&
  ------------------
  |  |  460|      4|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (1046:6): [True: 4, False: 0]
  ------------------
 1047|      4|	    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT)) {
  ------------------
  |  |  472|      4|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      4|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT)) {
  ------------------
  |  |  462|      4|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (1047:6): [True: 3, False: 1]
  ------------------
 1048|       |		/* unexpected SHUTDOWN-ACK... so ignore... */
 1049|      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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1050|      3|		return;
 1051|      3|	}
 1052|      1|	sctp_check_data_from_peer(stcb, &abort_flag);
 1053|      1|	if (abort_flag) {
  ------------------
  |  Branch (1053:6): [True: 0, False: 1]
  ------------------
 1054|      0|		return;
 1055|      0|	}
 1056|      1|#ifdef INVARIANTS
 1057|      1|	if (!TAILQ_EMPTY(&stcb->asoc.send_queue) ||
  ------------------
  |  Branch (1057:6): [True: 0, False: 1]
  ------------------
 1058|      1|	    !TAILQ_EMPTY(&stcb->asoc.sent_queue) ||
  ------------------
  |  Branch (1058:6): [True: 0, False: 1]
  ------------------
 1059|      1|	    sctp_is_there_unsent_data(stcb, SCTP_SO_NOT_LOCKED)) {
  ------------------
  |  |  960|      1|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  |  Branch (1059:6): [True: 0, False: 1]
  ------------------
 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|      1|#endif
 1063|       |	/* stop the timer */
 1064|      1|	sctp_timer_stop(SCTP_TIMER_TYPE_SHUTDOWN, stcb->sctp_ep, stcb, net,
  ------------------
  |  |  535|      1|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
 1065|      1|	                SCTP_FROM_SCTP_INPUT + SCTP_LOC_10);
  ------------------
  |  |  755|      1|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              	                SCTP_FROM_SCTP_INPUT + SCTP_LOC_10);
  ------------------
  |  |  778|      1|#define SCTP_LOC_10 0x0000000a
  ------------------
 1066|       |	/* send SHUTDOWN-COMPLETE */
 1067|      1|	sctp_send_shutdown_complete(stcb, net, 0);
 1068|       |	/* notify upper layer protocol */
 1069|      1|	if (stcb->sctp_socket) {
  ------------------
  |  Branch (1069:6): [True: 1, False: 0]
  ------------------
 1070|      1|		if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      1|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (1070:7): [True: 1, False: 0]
  ------------------
 1071|      1|		    (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|      1|			SCTP_SB_CLEAR(stcb->sctp_socket->so_snd);
  ------------------
  |  |  979|      1|	(sb).sb_cc = 0;		\
  |  |  980|      1|	(sb).sb_mb = NULL;	\
  |  |  981|      1|	(sb).sb_mbcnt = 0;
  ------------------
 1073|      1|		}
 1074|      1|		sctp_ulp_notify(SCTP_NOTIFY_ASSOC_DOWN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  704|      1|#define SCTP_NOTIFY_ASSOC_DOWN                   2
  ------------------
              		sctp_ulp_notify(SCTP_NOTIFY_ASSOC_DOWN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|      1|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1075|      1|	}
 1076|      1|	SCTP_STAT_INCR_COUNTER32(sctps_shutdown);
  ------------------
  |  | 1127|      1|#define SCTP_STAT_INCR_COUNTER32(_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)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 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|      1|	(void)sctp_free_assoc(stcb->sctp_ep, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|      1|#define SCTP_NORMAL_PROC      0
  ------------------
 1086|      1|	                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_11);
  ------------------
  |  |  755|      1|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              	                      SCTP_FROM_SCTP_INPUT + SCTP_LOC_11);
  ------------------
  |  |  779|      1|#define SCTP_LOC_11 0x0000000b
  ------------------
 1087|       |#if defined(__APPLE__) && !defined(__Userspace__)
 1088|       |	SCTP_SOCKET_UNLOCK(so, 1);
 1089|       |#endif
 1090|      1|}
sctp_input.c:sctp_handle_error:
 1155|   562k|{
 1156|   562k|	struct sctp_error_cause *cause;
 1157|   562k|	struct sctp_association *asoc;
 1158|   562k|	uint32_t remaining_length, adjust;
 1159|   562k|	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|   562k|	asoc = &stcb->asoc;
 1166|   562k|	cause = (struct sctp_error_cause *)((caddr_t)ch +
 1167|   562k|	    sizeof(struct sctp_chunkhdr));
 1168|   562k|	remaining_length = ntohs(ch->chunk_length);
 1169|   562k|	if (remaining_length > limit) {
  ------------------
  |  Branch (1169:6): [True: 341, False: 561k]
  ------------------
 1170|    341|		remaining_length = limit;
 1171|    341|	}
 1172|   562k|	if (remaining_length >= sizeof(struct sctp_chunkhdr)) {
  ------------------
  |  Branch (1172:6): [True: 562k, False: 0]
  ------------------
 1173|   562k|		remaining_length -= sizeof(struct sctp_chunkhdr);
 1174|   562k|	} else {
 1175|      0|		remaining_length = 0;
 1176|      0|	}
 1177|   562k|	code = 0;
 1178|   616k|	while (remaining_length >= sizeof(struct sctp_error_cause)) {
  ------------------
  |  Branch (1178:9): [True: 75.6k, False: 540k]
  ------------------
 1179|       |		/* Process an Error Cause */
 1180|  75.6k|		cause_code = ntohs(cause->code);
 1181|  75.6k|		cause_length = ntohs(cause->length);
 1182|  75.6k|		if ((cause_length > remaining_length) || (cause_length == 0)) {
  ------------------
  |  Branch (1182:7): [True: 4.78k, False: 70.8k]
  |  Branch (1182:44): [True: 1.03k, False: 69.8k]
  ------------------
 1183|       |			/* Invalid cause length, possibly due to truncation. */
 1184|  5.81k|			SCTPDBG(SCTP_DEBUG_INPUT1, "Bogus length in cause - bytes left: %u cause length: %u\n",
 1185|  5.81k|				remaining_length, cause_length);
 1186|  5.81k|			return (0);
 1187|  5.81k|		}
 1188|  69.8k|		if (code == 0) {
  ------------------
  |  Branch (1188:7): [True: 28.2k, False: 41.6k]
  ------------------
 1189|       |			/* report the first error cause */
 1190|  28.2k|			code = cause_code;
 1191|  28.2k|		}
 1192|  69.8k|		switch (cause_code) {
 1193|     30|		case SCTP_CAUSE_INVALID_STREAM:
  ------------------
  |  |  366|     30|#define SCTP_CAUSE_INVALID_STREAM	0x0001
  ------------------
  |  Branch (1193:3): [True: 30, False: 69.8k]
  ------------------
 1194|     30|		case SCTP_CAUSE_MISSING_PARAM:
  ------------------
  |  |  367|     30|#define SCTP_CAUSE_MISSING_PARAM	0x0002
  ------------------
  |  Branch (1194:3): [True: 0, False: 69.8k]
  ------------------
 1195|     39|		case SCTP_CAUSE_INVALID_PARAM:
  ------------------
  |  |  372|     39|#define SCTP_CAUSE_INVALID_PARAM	0x0007
  ------------------
  |  Branch (1195:3): [True: 9, False: 69.8k]
  ------------------
 1196|     43|		case SCTP_CAUSE_NO_USER_DATA:
  ------------------
  |  |  374|     43|#define SCTP_CAUSE_NO_USER_DATA		0x0009
  ------------------
  |  Branch (1196:3): [True: 4, False: 69.8k]
  ------------------
 1197|     43|			SCTPDBG(SCTP_DEBUG_INPUT1, "Software error we got a %u back? We have a bug :/ (or do they?)\n",
 1198|     43|				cause_code);
 1199|     43|			break;
 1200|  16.6k|		case SCTP_CAUSE_NAT_COLLIDING_STATE:
  ------------------
  |  |  388|  16.6k|#define SCTP_CAUSE_NAT_COLLIDING_STATE  0x00b0
  ------------------
  |  Branch (1200:3): [True: 16.6k, False: 53.1k]
  ------------------
 1201|  16.6k|			SCTPDBG(SCTP_DEBUG_INPUT2, "Received Colliding state, ERROR flags: %x\n",
 1202|  16.6k|				ch->chunk_flags);
 1203|  16.6k|			if (sctp_handle_nat_colliding_state(stcb)) {
  ------------------
  |  Branch (1203:8): [True: 15.0k, False: 1.56k]
  ------------------
 1204|  15.0k|				return (0);
 1205|  15.0k|			}
 1206|  1.56k|			break;
 1207|  1.56k|		case SCTP_CAUSE_NAT_MISSING_STATE:
  ------------------
  |  |  389|    617|#define SCTP_CAUSE_NAT_MISSING_STATE    0x00b1
  ------------------
  |  Branch (1207:3): [True: 617, False: 69.2k]
  ------------------
 1208|    617|			SCTPDBG(SCTP_DEBUG_INPUT2, "Received missing state, ERROR flags: %x\n",
 1209|    617|			                           ch->chunk_flags);
 1210|    617|			if (sctp_handle_nat_missing_state(stcb, net)) {
  ------------------
  |  Branch (1210:8): [True: 617, False: 0]
  ------------------
 1211|    617|				return (0);
 1212|    617|			}
 1213|      0|			break;
 1214|    421|		case SCTP_CAUSE_STALE_COOKIE:
  ------------------
  |  |  368|    421|#define SCTP_CAUSE_STALE_COOKIE		0x0003
  ------------------
  |  Branch (1214:3): [True: 421, False: 69.4k]
  ------------------
 1215|       |			/*
 1216|       |			 * We only act if we have echoed a cookie and are
 1217|       |			 * waiting.
 1218|       |			 */
 1219|    421|			if ((cause_length >= sizeof(struct sctp_error_stale_cookie)) &&
  ------------------
  |  Branch (1219:8): [True: 346, False: 75]
  ------------------
 1220|    346|			    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|    346|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    346|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|    346|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (1220:8): [True: 67, False: 279]
  ------------------
 1221|     67|				struct timeval now;
 1222|     67|				struct sctp_error_stale_cookie *stale_cookie;
 1223|     67|				uint64_t stale_time;
 1224|       |
 1225|     67|				asoc->stale_cookie_count++;
 1226|     67|				if (asoc->stale_cookie_count > asoc->max_init_times) {
  ------------------
  |  Branch (1226:9): [True: 0, False: 67]
  ------------------
 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|     67|				stale_cookie = (struct sctp_error_stale_cookie *)cause;
 1244|     67|				stale_time = ntohl(stale_cookie->stale_time);
 1245|     67|				if (stale_time == 0) {
  ------------------
  |  Branch (1245:9): [True: 11, False: 56]
  ------------------
 1246|       |					/* Use an RTT as an approximation. */
 1247|     11|					(void)SCTP_GETTIME_TIMEVAL(&now);
  ------------------
  |  |  991|     11|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 1248|     11|					timevalsub(&now, &asoc->time_entered);
  ------------------
  |  | 1116|     11|	do {                                       \
  |  | 1117|     11|		(tp1)->tv_sec -= (tp2)->tv_sec;    \
  |  | 1118|     11|		(tp1)->tv_usec -= (tp2)->tv_usec;  \
  |  | 1119|     11|		if ((tp1)->tv_usec < 0) {          \
  |  |  ------------------
  |  |  |  Branch (1119:7): [True: 0, False: 11]
  |  |  ------------------
  |  | 1120|      0|			(tp1)->tv_sec--;           \
  |  | 1121|      0|			(tp1)->tv_usec += 1000000; \
  |  | 1122|      0|		}                                  \
  |  | 1123|     11|	} while (0)
  |  |  ------------------
  |  |  |  Branch (1123:11): [Folded, False: 11]
  |  |  ------------------
  ------------------
 1249|     11|					stale_time = (uint64_t)1000000 * (uint64_t)now.tv_sec + (uint64_t)now.tv_usec;
 1250|     11|					if (stale_time == 0) {
  ------------------
  |  Branch (1250:10): [True: 0, False: 11]
  ------------------
 1251|      0|						stale_time = 1;
 1252|      0|					}
 1253|     11|				}
 1254|       |				/*
 1255|       |				 * stale_time is in usec, convert it to msec.
 1256|       |				 * Round upwards, to ensure that it is non-zero.
 1257|       |				 */
 1258|     67|				stale_time = (stale_time + 999) / 1000;
 1259|       |				/* Double it, to be more robust on RTX. */
 1260|     67|				stale_time = 2 * stale_time;
 1261|     67|				asoc->cookie_preserve_req = (uint32_t)stale_time;
 1262|     67|				if (asoc->overall_error_count == 0) {
  ------------------
  |  Branch (1262:9): [True: 67, False: 0]
  ------------------
 1263|     67|					sctp_calculate_rto(stcb, asoc, net, &asoc->time_entered,
 1264|     67|					                   SCTP_RTT_FROM_NON_DATA);
  ------------------
  |  |  340|     67|#define SCTP_RTT_FROM_NON_DATA 0
  ------------------
 1265|     67|				}
 1266|     67|				asoc->overall_error_count = 0;
 1267|       |				/* Blast back to INIT state */
 1268|     67|				sctp_toss_old_cookies(stcb, &stcb->asoc);
 1269|     67|				sctp_stop_all_cookie_timers(stcb);
 1270|     67|				SCTP_SET_STATE(stcb, SCTP_STATE_COOKIE_WAIT);
  ------------------
  |  |  474|     67|	sctp_set_state(_stcb, _state)
  ------------------
 1271|     67|				(void)SCTP_GETTIME_TIMEVAL(&asoc->time_entered);
  ------------------
  |  |  991|     67|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 1272|     67|				sctp_send_initiate(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     67|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1273|     67|			}
 1274|    421|			break;
 1275|    421|		case SCTP_CAUSE_UNRESOLVABLE_ADDR:
  ------------------
  |  |  370|      8|#define SCTP_CAUSE_UNRESOLVABLE_ADDR	0x0005
  ------------------
  |  Branch (1275:3): [True: 8, False: 69.8k]
  ------------------
 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|      8|			break;
 1288|  3.90k|		case SCTP_CAUSE_UNRECOG_CHUNK:
  ------------------
  |  |  371|  3.90k|#define SCTP_CAUSE_UNRECOG_CHUNK	0x0006
  ------------------
  |  Branch (1288:3): [True: 3.90k, False: 65.9k]
  ------------------
 1289|  3.90k|			if (cause_length >= sizeof(struct sctp_error_unrecognized_chunk)) {
  ------------------
  |  Branch (1289:8): [True: 3.49k, False: 401]
  ------------------
 1290|  3.49k|				struct sctp_error_unrecognized_chunk *unrec_chunk;
 1291|       |
 1292|  3.49k|				unrec_chunk = (struct sctp_error_unrecognized_chunk *)cause;
 1293|  3.49k|				sctp_process_unrecog_chunk(stcb, unrec_chunk->ch.chunk_type);
 1294|  3.49k|			}
 1295|  3.90k|			break;
 1296|  3.86k|		case SCTP_CAUSE_UNRECOG_PARAM:
  ------------------
  |  |  373|  3.86k|#define SCTP_CAUSE_UNRECOG_PARAM	0x0008
  ------------------
  |  Branch (1296:3): [True: 3.86k, False: 65.9k]
  ------------------
 1297|       |			/* XXX: We only consider the first parameter */
 1298|  3.86k|			if (cause_length >= sizeof(struct sctp_error_cause) + sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (1298:8): [True: 3.28k, False: 588]
  ------------------
 1299|  3.28k|				struct sctp_paramhdr *unrec_parameter;
 1300|       |
 1301|  3.28k|				unrec_parameter = (struct sctp_paramhdr *)(cause + 1);
 1302|  3.28k|				sctp_process_unrecog_param(stcb, ntohs(unrec_parameter->param_type));
 1303|  3.28k|			}
 1304|  3.86k|			break;
 1305|      0|		case SCTP_CAUSE_COOKIE_IN_SHUTDOWN:
  ------------------
  |  |  375|      0|#define SCTP_CAUSE_COOKIE_IN_SHUTDOWN	0x000a
  ------------------
  |  Branch (1305:3): [True: 0, False: 69.8k]
  ------------------
 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|      2|		case SCTP_CAUSE_DELETING_LAST_ADDR:
  ------------------
  |  |  381|      2|#define SCTP_CAUSE_DELETING_LAST_ADDR	0x00a0
  ------------------
  |  Branch (1313:3): [True: 2, False: 69.8k]
  ------------------
 1314|      2|		case SCTP_CAUSE_RESOURCE_SHORTAGE:
  ------------------
  |  |  382|      2|#define SCTP_CAUSE_RESOURCE_SHORTAGE	0x00a1
  ------------------
  |  Branch (1314:3): [True: 0, False: 69.8k]
  ------------------
 1315|      2|		case SCTP_CAUSE_DELETING_SRC_ADDR:
  ------------------
  |  |  383|      2|#define SCTP_CAUSE_DELETING_SRC_ADDR	0x00a2
  ------------------
  |  Branch (1315:3): [True: 0, False: 69.8k]
  ------------------
 1316|       |			/*
 1317|       |			 * We should NOT get these here, but in a
 1318|       |			 * ASCONF-ACK.
 1319|       |			 */
 1320|      2|			SCTPDBG(SCTP_DEBUG_INPUT2, "Peer sends ASCONF errors in a error cause with code %u.\n",
 1321|      2|				cause_code);
 1322|      2|			break;
 1323|     43|		case SCTP_CAUSE_OUT_OF_RESC:
  ------------------
  |  |  369|     43|#define SCTP_CAUSE_OUT_OF_RESC		0x0004
  ------------------
  |  Branch (1323:3): [True: 43, False: 69.8k]
  ------------------
 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|     43|			break;
 1332|  44.2k|		default:
  ------------------
  |  Branch (1332:3): [True: 44.2k, False: 25.5k]
  ------------------
 1333|  44.2k|			SCTPDBG(SCTP_DEBUG_INPUT1, "sctp_handle_error: unknown code 0x%x\n",
 1334|  44.2k|				cause_code);
 1335|  44.2k|			break;
 1336|  69.8k|		}
 1337|  54.1k|		adjust = SCTP_SIZE32(cause_length);
  ------------------
  |  |  383|  54.1k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 1338|  54.1k|		if (remaining_length >= adjust) {
  ------------------
  |  Branch (1338:7): [True: 53.4k, False: 680]
  ------------------
 1339|  53.4k|			remaining_length -= adjust;
 1340|  53.4k|		} else {
 1341|    680|			remaining_length = 0;
 1342|    680|		}
 1343|  54.1k|		cause = (struct sctp_error_cause *)((caddr_t)cause + adjust);
 1344|  54.1k|	}
 1345|   540k|	sctp_ulp_notify(SCTP_NOTIFY_REMOTE_ERROR, stcb, code, ch, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  731|   540k|#define SCTP_NOTIFY_REMOTE_ERROR                29
  ------------------
              	sctp_ulp_notify(SCTP_NOTIFY_REMOTE_ERROR, stcb, code, ch, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|   540k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 1346|   540k|	return (0);
 1347|   562k|}
sctp_input.c:sctp_process_unrecog_chunk:
 1094|  3.49k|{
 1095|  3.49k|	switch (chunk_type) {
 1096|     80|	case SCTP_ASCONF_ACK:
  ------------------
  |  |  477|     80|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (1096:2): [True: 80, False: 3.41k]
  ------------------
 1097|    773|	case SCTP_ASCONF:
  ------------------
  |  |  489|    773|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (1097:2): [True: 693, False: 2.80k]
  ------------------
 1098|    773|		sctp_asconf_cleanup(stcb);
 1099|    773|		break;
 1100|    351|	case SCTP_IFORWARD_CUM_TSN:
  ------------------
  |  |  490|    351|#define SCTP_IFORWARD_CUM_TSN	0xc2
  ------------------
  |  Branch (1100:2): [True: 351, False: 3.14k]
  ------------------
 1101|    910|	case SCTP_FORWARD_CUM_TSN:
  ------------------
  |  |  487|    910|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (1101:2): [True: 559, False: 2.94k]
  ------------------
 1102|    910|		stcb->asoc.prsctp_supported = 0;
 1103|    910|		break;
 1104|  1.81k|	default:
  ------------------
  |  Branch (1104:2): [True: 1.81k, False: 1.68k]
  ------------------
 1105|  1.81k|		SCTPDBG(SCTP_DEBUG_INPUT2,
 1106|  1.81k|			"Peer does not support chunk type %d (0x%x).\n",
 1107|  1.81k|			chunk_type, chunk_type);
 1108|  1.81k|		break;
 1109|  3.49k|	}
 1110|  3.49k|}
sctp_input.c:sctp_process_unrecog_param:
 1120|  3.28k|{
 1121|  3.28k|	switch (parameter_type) {
 1122|       |		/* pr-sctp draft */
 1123|    353|	case SCTP_PRSCTP_SUPPORTED:
  ------------------
  |  |  428|    353|#define SCTP_PRSCTP_SUPPORTED		0xc000
  ------------------
  |  Branch (1123:2): [True: 353, False: 2.92k]
  ------------------
 1124|    353|		stcb->asoc.prsctp_supported = 0;
 1125|    353|		break;
 1126|      0|	case SCTP_SUPPORTED_CHUNK_EXT:
  ------------------
  |  |  425|      0|#define SCTP_SUPPORTED_CHUNK_EXT	0x8008
  ------------------
  |  Branch (1126:2): [True: 0, False: 3.28k]
  ------------------
 1127|      0|		break;
 1128|       |		/* draft-ietf-tsvwg-addip-sctp */
 1129|  1.00k|	case SCTP_HAS_NAT_SUPPORT:
  ------------------
  |  |  437|  1.00k|#define SCTP_HAS_NAT_SUPPORT		0xc007
  ------------------
  |  Branch (1129:2): [True: 1.00k, False: 2.27k]
  ------------------
 1130|  1.00k|	        stcb->asoc.peer_supports_nat = 0;
 1131|  1.00k|	        break;
 1132|    508|	case SCTP_ADD_IP_ADDRESS:
  ------------------
  |  |  430|    508|#define SCTP_ADD_IP_ADDRESS		0xc001
  ------------------
  |  Branch (1132:2): [True: 508, False: 2.77k]
  ------------------
 1133|    603|	case SCTP_DEL_IP_ADDRESS:
  ------------------
  |  |  431|    603|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (1133:2): [True: 95, False: 3.18k]
  ------------------
 1134|  1.13k|	case SCTP_SET_PRIM_ADDR:
  ------------------
  |  |  433|  1.13k|#define SCTP_SET_PRIM_ADDR		0xc004
  ------------------
  |  Branch (1134:2): [True: 527, False: 2.75k]
  ------------------
 1135|  1.13k|		stcb->asoc.asconf_supported = 0;
 1136|  1.13k|		break;
 1137|    243|	case SCTP_SUCCESS_REPORT:
  ------------------
  |  |  434|    243|#define SCTP_SUCCESS_REPORT		0xc005
  ------------------
  |  Branch (1137:2): [True: 243, False: 3.03k]
  ------------------
 1138|    467|	case SCTP_ERROR_CAUSE_IND:
  ------------------
  |  |  432|    467|#define SCTP_ERROR_CAUSE_IND		0xc003
  ------------------
  |  Branch (1138:2): [True: 224, False: 3.05k]
  ------------------
 1139|    467|		SCTPDBG(SCTP_DEBUG_INPUT2, "Huh, the peer does not support success? or error cause?\n");
 1140|    467|		SCTPDBG(SCTP_DEBUG_INPUT2,
 1141|    467|			"Turning off ASCONF to this strange peer\n");
 1142|    467|		stcb->asoc.asconf_supported = 0;
 1143|    467|		break;
 1144|    328|	default:
  ------------------
  |  Branch (1144:2): [True: 328, False: 2.95k]
  ------------------
 1145|    328|		SCTPDBG(SCTP_DEBUG_INPUT2,
 1146|    328|			"Peer does not support param type %d (0x%x)??\n",
 1147|    328|			parameter_type, parameter_type);
 1148|    328|		break;
 1149|  3.28k|	}
 1150|  3.28k|}
sctp_input.c:sctp_handle_cookie_echo:
 2524|     43|{
 2525|     43|	struct sctp_state_cookie *cookie;
 2526|     43|	struct sctp_tcb *l_stcb = *stcb;
 2527|     43|	struct sctp_inpcb *l_inp;
 2528|     43|	struct sockaddr *to;
 2529|     43|	struct sctp_pcb *ep;
 2530|     43|	struct mbuf *m_sig;
 2531|     43|	uint8_t calc_sig[SCTP_SIGNATURE_SIZE], tmp_sig[SCTP_SIGNATURE_SIZE];
 2532|     43|	uint8_t *sig;
 2533|     43|#if defined(__Userspace__) && defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
 2534|     43|	uint8_t cookie_ok = 1;
 2535|       |#else
 2536|       |	uint8_t cookie_ok = 0;
 2537|       |#endif
 2538|     43|	unsigned int sig_offset, cookie_offset;
 2539|     43|	unsigned int cookie_len;
 2540|     43|	struct timeval now;
 2541|     43|	struct timeval time_entered, time_expires;
 2542|     43|	int notification = 0;
 2543|     43|	struct sctp_nets *netl;
 2544|     43|	int had_a_existing_tcb = 0;
 2545|     43|	int send_int_conf = 0;
 2546|     43|#ifdef INET
 2547|     43|	struct sockaddr_in sin;
 2548|     43|#endif
 2549|     43|#ifdef INET6
 2550|     43|	struct sockaddr_in6 sin6;
 2551|     43|#endif
 2552|     43|#if defined(__Userspace__)
 2553|     43|	struct sockaddr_conn sconn;
 2554|     43|#endif
 2555|       |
 2556|     43|	SCTPDBG(SCTP_DEBUG_INPUT2,
 2557|     43|		"sctp_handle_cookie: handling COOKIE-ECHO\n");
 2558|       |
 2559|     43|	if (inp_p == NULL) {
  ------------------
  |  Branch (2559:6): [True: 0, False: 43]
  ------------------
 2560|      0|		return (NULL);
 2561|      0|	}
 2562|     43|	cookie = &cp->cookie;
 2563|     43|	cookie_offset = offset + sizeof(struct sctp_chunkhdr);
 2564|     43|	cookie_len = ntohs(cp->ch.chunk_length);
 2565|       |
 2566|     43|	if (cookie_len < sizeof(struct sctp_cookie_echo_chunk) +
  ------------------
  |  Branch (2566:6): [True: 13, False: 30]
  ------------------
 2567|     43|	    sizeof(struct sctp_init_chunk) +
 2568|     43|	    sizeof(struct sctp_init_ack_chunk) + SCTP_SIGNATURE_SIZE) {
  ------------------
  |  |  300|     43|#define SCTP_SIGNATURE_SIZE	SCTP_AUTH_DIGEST_LEN_SHA1
  |  |  ------------------
  |  |  |  |   41|     43|#define SCTP_AUTH_DIGEST_LEN_SHA1	20
  |  |  ------------------
  ------------------
 2569|       |		/* cookie too small */
 2570|     13|		return (NULL);
 2571|     13|	}
 2572|     30|	if ((cookie->peerport != sh->src_port) ||
  ------------------
  |  Branch (2572:6): [True: 6, False: 24]
  ------------------
 2573|     24|	    (cookie->myport != sh->dest_port) ||
  ------------------
  |  Branch (2573:6): [True: 23, False: 1]
  ------------------
 2574|     30|	    (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|     30|		return (NULL);
 2583|     30|	}
 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.64k|{
  884|  5.64k|	uint32_t cnt_hb_sent;
  885|  5.64k|	struct sctp_nets *net;
  886|       |
  887|  5.64k|	cnt_hb_sent = 0;
  888|  7.58k|	TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (888:2): [True: 7.58k, False: 5.64k]
  ------------------
  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.58k|		sctp_timer_start(SCTP_TIMER_TYPE_PATHMTURAISE, stcb->sctp_ep, stcb, net);
  ------------------
  |  |  539|  7.58k|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
  897|  7.58k|		sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, net);
  ------------------
  |  |  536|  7.58k|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  898|  7.58k|		if ((net->dest_state & SCTP_ADDR_UNCONFIRMED) &&
  ------------------
  |  |  487|  7.58k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (898:7): [True: 1.28k, False: 6.30k]
  ------------------
  899|  1.28k|		    (cnt_hb_sent < SCTP_BASE_SYSCTL(sctp_hb_maxburst))) {
  ------------------
  |  |  590|  1.28k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (899:7): [True: 715, False: 565]
  ------------------
  900|    715|			sctp_send_hb(stcb, net, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    715|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  901|    715|			cnt_hb_sent++;
  902|    715|		}
  903|  7.58k|	}
  904|  5.64k|	if (cnt_hb_sent) {
  ------------------
  |  Branch (904:6): [True: 317, False: 5.32k]
  ------------------
  905|    317|		sctp_chunk_output(stcb->sctp_ep, stcb,
  906|    317|				  SCTP_OUTPUT_FROM_COOKIE_ACK,
  ------------------
  |  |  375|    317|#define SCTP_OUTPUT_FROM_COOKIE_ACK     14
  ------------------
  907|    317|				  SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    317|#define SCTP_SO_NOT_LOCKED	0
  ------------------
  908|    317|	}
  909|  5.64k|}
sctp_input.c:sctp_handle_ecn_echo:
 3253|  6.64k|{
 3254|  6.64k|	struct sctp_nets *net;
 3255|  6.64k|	struct sctp_tmit_chunk *lchk;
 3256|  6.64k|	struct sctp_ecne_chunk bkup;
 3257|  6.64k|	uint8_t override_bit;
 3258|  6.64k|	uint32_t tsn, window_data_tsn;
 3259|  6.64k|	int len;
 3260|  6.64k|	unsigned int pkt_cnt;
 3261|       |
 3262|  6.64k|	len = ntohs(cp->ch.chunk_length);
 3263|  6.64k|	if (len == sizeof(struct old_sctp_ecne_chunk)) {
  ------------------
  |  Branch (3263:6): [True: 5.97k, False: 678]
  ------------------
 3264|       |		/* Its the old format */
 3265|  5.97k|		memcpy(&bkup, cp, sizeof(struct old_sctp_ecne_chunk));
 3266|  5.97k|		bkup.num_pkts_since_cwr = htonl(1);
 3267|  5.97k|		cp = &bkup;
 3268|  5.97k|	}
 3269|  6.64k|	SCTP_STAT_INCR(sctps_recvecne);
  ------------------
  |  | 1112|  6.64k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  6.64k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  6.64k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3270|  6.64k|	tsn = ntohl(cp->tsn);
 3271|  6.64k|	pkt_cnt = ntohl(cp->num_pkts_since_cwr);
 3272|  6.64k|	lchk = TAILQ_LAST(&stcb->asoc.send_queue, sctpchunk_listhead);
 3273|  6.64k|	if (lchk == NULL) {
  ------------------
  |  Branch (3273:6): [True: 6.00k, False: 649]
  ------------------
 3274|  6.00k|		window_data_tsn = stcb->asoc.sending_seq - 1;
 3275|  6.00k|	} else {
 3276|    649|		window_data_tsn = lchk->rec.data.tsn;
 3277|    649|	}
 3278|       |
 3279|       |	/* Find where it was sent to if possible. */
 3280|  6.64k|	net = NULL;
 3281|  6.64k|	TAILQ_FOREACH(lchk, &stcb->asoc.sent_queue, sctp_next) {
  ------------------
  |  Branch (3281:2): [True: 5.45k, False: 5.42k]
  ------------------
 3282|  5.45k|		if (lchk->rec.data.tsn == tsn) {
  ------------------
  |  Branch (3282:7): [True: 0, False: 5.45k]
  ------------------
 3283|      0|			net = lchk->whoTo;
 3284|      0|			net->ecn_prev_cwnd = lchk->rec.data.cwnd_at_send;
 3285|      0|			break;
 3286|      0|		}
 3287|  5.45k|		if (SCTP_TSN_GT(lchk->rec.data.tsn, tsn)) {
  ------------------
  |  |  889|  5.45k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  5.45k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 3.09k, False: 2.35k]
  |  |  |  |  |  Branch (883:43): [True: 508, False: 2.58k]
  |  |  |  |  ------------------
  |  |  |  |  884|  5.45k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 2.35k, False: 2.58k]
  |  |  |  |  |  Branch (884:43): [True: 712, False: 1.64k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3288|  1.22k|			break;
 3289|  1.22k|		}
 3290|  5.45k|	}
 3291|  6.64k|	if (net == NULL) {
  ------------------
  |  Branch (3291:6): [True: 6.64k, 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|  10.3k|		TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (3297:3): [True: 10.3k, False: 6.64k]
  ------------------
 3298|  10.3k|			if (tsn == net->last_cwr_tsn) {
  ------------------
  |  Branch (3298:8): [True: 0, False: 10.3k]
  ------------------
 3299|       |				/* Found him, send it off */
 3300|      0|				break;
 3301|      0|			}
 3302|  10.3k|		}
 3303|  6.64k|		if (net == NULL) {
  ------------------
  |  Branch (3303:7): [True: 6.64k, 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.64k|			net = TAILQ_FIRST(&stcb->asoc.nets);
 3310|  6.64k|			if (net == NULL) {
  ------------------
  |  Branch (3310:8): [True: 0, False: 6.64k]
  ------------------
 3311|       |				/* TSNH */
 3312|      0|				return;
 3313|      0|			}
 3314|  6.64k|			override_bit = SCTP_CWR_REDUCE_OVERRIDE;
  ------------------
  |  |  501|  6.64k|#define SCTP_CWR_REDUCE_OVERRIDE 0x01
  ------------------
 3315|  6.64k|		} else {
 3316|      0|			override_bit = 0;
 3317|      0|		}
 3318|  6.64k|	} else {
 3319|      0|		override_bit = 0;
 3320|      0|	}
 3321|  6.64k|	if (SCTP_TSN_GT(tsn, net->cwr_window_tsn) &&
  ------------------
  |  |  889|  6.64k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  13.2k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 3.50k, False: 3.14k]
  |  |  |  |  |  Branch (883:43): [True: 1.28k, False: 2.21k]
  |  |  |  |  ------------------
  |  |  |  |  884|  13.2k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 3.14k, False: 2.21k]
  |  |  |  |  |  Branch (884:43): [True: 2.31k, False: 832]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3322|  3.59k|	    ((override_bit&SCTP_CWR_REDUCE_OVERRIDE) == 0)) {
  ------------------
  |  |  501|  3.59k|#define SCTP_CWR_REDUCE_OVERRIDE 0x01
  ------------------
  |  Branch (3322:6): [True: 0, False: 3.59k]
  ------------------
 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.64k|	} else {
 3334|  6.64k|		override_bit |= SCTP_CWR_IN_SAME_WINDOW;
  ------------------
  |  |  502|  6.64k|#define SCTP_CWR_IN_SAME_WINDOW  0x02
  ------------------
 3335|  6.64k|		if (SCTP_TSN_GT(tsn, net->last_cwr_tsn) &&
  ------------------
  |  |  889|  6.64k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  13.2k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 3.50k, False: 3.14k]
  |  |  |  |  |  Branch (883:43): [True: 1.28k, False: 2.21k]
  |  |  |  |  ------------------
  |  |  |  |  884|  13.2k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 3.14k, False: 2.21k]
  |  |  |  |  |  Branch (884:43): [True: 2.31k, False: 832]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3336|  3.59k|		    ((override_bit&SCTP_CWR_REDUCE_OVERRIDE) == 0)) {
  ------------------
  |  |  501|  3.59k|#define SCTP_CWR_REDUCE_OVERRIDE 0x01
  ------------------
  |  Branch (3336:7): [True: 0, False: 3.59k]
  ------------------
 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.64k|	}
 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.64k|	sctp_send_cwr(stcb, net, net->last_cwr_tsn, override_bit);
 3363|  6.64k|}
sctp_input.c:sctp_handle_ecn_cwr:
 3367|  2.00k|{
 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|  2.00k|	struct sctp_tmit_chunk *chk, *nchk;
 3374|  2.00k|	struct sctp_ecne_chunk *ecne;
 3375|  2.00k|	int override;
 3376|  2.00k|	uint32_t cwr_tsn;
 3377|       |
 3378|  2.00k|	cwr_tsn = ntohl(cp->tsn);
 3379|  2.00k|	override = cp->ch.chunk_flags & SCTP_CWR_REDUCE_OVERRIDE;
  ------------------
  |  |  501|  2.00k|#define SCTP_CWR_REDUCE_OVERRIDE 0x01
  ------------------
 3380|   169k|	TAILQ_FOREACH_SAFE(chk, &stcb->asoc.control_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  2.00k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|   172k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 169k, False: 2.00k]
  |  |  |  Branch (1130:24): [True: 169k, False: 0]
  |  |  ------------------
  |  | 1131|   169k|              (var) = (tvar))
  ------------------
 3381|   169k|		if (chk->rec.chunk_id.id != SCTP_ECN_ECHO) {
  ------------------
  |  |  466|   169k|#define SCTP_ECN_ECHO		0x0c
  ------------------
  |  Branch (3381:7): [True: 169k, False: 0]
  ------------------
 3382|   169k|			continue;
 3383|   169k|		}
 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|  2.00k|}
sctp_input.c:sctp_handle_shutdown_complete:
 3408|      4|{
 3409|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3410|       |	struct socket *so;
 3411|       |#endif
 3412|       |
 3413|      4|	SCTPDBG(SCTP_DEBUG_INPUT2,
 3414|      4|		"sctp_handle_shutdown_complete: handling SHUTDOWN-COMPLETE\n");
 3415|      4|	if (stcb == NULL)
  ------------------
  |  Branch (3415:6): [True: 0, False: 4]
  ------------------
 3416|      0|		return;
 3417|       |
 3418|       |	/* process according to association state */
 3419|      4|	if (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT) {
  ------------------
  |  |  472|      4|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|      4|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_ACK_SENT) {
  ------------------
  |  |  462|      4|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (3419:6): [True: 4, False: 0]
  ------------------
 3420|       |		/* unexpected SHUTDOWN-COMPLETE... so ignore... */
 3421|      4|		SCTPDBG(SCTP_DEBUG_INPUT2,
 3422|      4|			"sctp_handle_shutdown_complete: not in SCTP_STATE_SHUTDOWN_ACK_SENT --- ignore\n");
 3423|      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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3424|      4|		return;
 3425|      4|	}
 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.4k|{
 4356|  15.4k|	uint16_t remaining_length, param_len, ptype;
 4357|  15.4k|	struct sctp_paramhdr pstore;
 4358|  15.4k|	uint8_t cstore[SCTP_CHUNK_BUFFER_SIZE];
 4359|  15.4k|	uint32_t seq = 0;
 4360|  15.4k|	int num_req = 0;
 4361|  15.4k|	int trunc = 0;
 4362|  15.4k|	struct sctp_tmit_chunk *chk;
 4363|  15.4k|	struct sctp_chunkhdr *ch;
 4364|  15.4k|	struct sctp_paramhdr *ph;
 4365|  15.4k|	int ret_code = 0;
 4366|  15.4k|	int num_param = 0;
 4367|       |
 4368|       |	/* now it may be a reset or a reset-response */
 4369|  15.4k|	remaining_length = ntohs(ch_req->chunk_length) - sizeof(struct sctp_chunkhdr);
 4370|       |
 4371|       |	/* setup for adding the response */
 4372|  15.4k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  15.4k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  15.4k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  8.74k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  8.74k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  8.74k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 8.74k, False: 0]
  |  |  ------------------
  |  |  173|  8.74k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  8.74k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  8.74k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  8.74k|			(_chk)->whoTo = NULL; \
  |  |  175|  8.74k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  8.74k|		} \
  |  |  177|  8.74k|	} else { \
  |  |  178|  6.70k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  6.70k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  6.70k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  6.70k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  6.70k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  6.70k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  6.70k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  6.70k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  6.70k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  6.70k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  6.70k|	} \
  |  |  185|  15.4k|}
  ------------------
  |  Branch (4372:2): [True: 424, False: 6.28k]
  |  Branch (4372:2): [Folded, False: 6.70k]
  |  Branch (4372:2): [True: 8.74k, False: 6.70k]
  ------------------
 4373|  15.4k|	if (chk == NULL) {
  ------------------
  |  Branch (4373:6): [True: 0, False: 15.4k]
  ------------------
 4374|      0|		return (ret_code);
 4375|      0|	}
 4376|  15.4k|	chk->copy_by_ref = 0;
 4377|  15.4k|	chk->rec.chunk_id.id = SCTP_STREAM_RESET;
  ------------------
  |  |  481|  15.4k|#define SCTP_STREAM_RESET       0x82
  ------------------
 4378|  15.4k|	chk->rec.chunk_id.can_take_data = 0;
 4379|  15.4k|	chk->flags = 0;
 4380|  15.4k|	chk->asoc = &stcb->asoc;
 4381|  15.4k|	chk->no_fr_allowed = 0;
 4382|  15.4k|	chk->book_size = chk->send_size = sizeof(struct sctp_chunkhdr);
 4383|  15.4k|	chk->book_size_scale = 0;
 4384|  15.4k|	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|  15.4k|#define MCLBYTES 2048
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  15.4k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  15.4k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 4385|  15.4k|	if (chk->data == NULL) {
  ------------------
  |  Branch (4385:6): [True: 0, False: 15.4k]
  ------------------
 4386|  5.47k|	strres_nochunk:
 4387|  5.47k|		if (chk->data) {
  ------------------
  |  Branch (4387:7): [True: 5.47k, False: 0]
  ------------------
 4388|  5.47k|			sctp_m_freem(chk->data);
  ------------------
  |  |   52|  5.47k|#define sctp_m_freem m_freem
  ------------------
 4389|  5.47k|			chk->data = NULL;
 4390|  5.47k|		}
 4391|  5.47k|		sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|  5.47k|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|  5.47k|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 5.47k]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|  5.47k|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 5.47k, False: 0]
  |  |  ------------------
  |  |  149|  5.47k|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|  5.47k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.47k|	do {                         \
  |  |  |  |  |  |  113|  5.47k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.47k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.47k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.47k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|  5.47k|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 5.47k]
  |  |  ------------------
  |  |  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.47k|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|  5.47k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 5.47k]
  |  |  ------------------
  |  |  155|  5.47k|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|  5.47k|#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.47k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 5.47k]
  |  |  ------------------
  |  |  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.47k|		} else { \
  |  |  159|  5.47k|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|  5.47k|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|  5.47k|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|  5.47k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|  5.47k|		} \
  |  |  163|  5.47k|	} 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.47k|}
  ------------------
  |  Branch (4391:3): [Folded, False: 5.47k]
  ------------------
 4392|  5.47k|		return (ret_code);
 4393|  5.47k|	}
 4394|  15.4k|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  15.4k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  15.4k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4395|       |
 4396|       |	/* setup chunk parameters */
 4397|  15.4k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  15.4k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 4398|  15.4k|	chk->snd_count = 0;
 4399|  15.4k|	chk->whoTo = NULL;
 4400|       |
 4401|  15.4k|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  15.4k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  15.4k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4402|  15.4k|	ch->chunk_type = SCTP_STREAM_RESET;
  ------------------
  |  |  481|  15.4k|#define SCTP_STREAM_RESET       0x82
  ------------------
 4403|  15.4k|	ch->chunk_flags = 0;
 4404|  15.4k|	ch->chunk_length = htons(chk->send_size);
 4405|  15.4k|	SCTP_BUF_LEN(chk->data) = SCTP_SIZE32(chk->send_size);
  ------------------
  |  |  801|  15.4k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  15.4k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
              	SCTP_BUF_LEN(chk->data) = SCTP_SIZE32(chk->send_size);
  ------------------
  |  |  383|  15.4k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 4406|  15.4k|	offset += sizeof(struct sctp_chunkhdr);
 4407|  27.9k|	while (remaining_length >= sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (4407:9): [True: 20.6k, False: 7.33k]
  ------------------
 4408|  20.6k|		ph = (struct sctp_paramhdr *)sctp_m_getptr(m, offset, sizeof(pstore), (uint8_t *)&pstore);
 4409|  20.6k|		if (ph == NULL) {
  ------------------
  |  Branch (4409:7): [True: 0, False: 20.6k]
  ------------------
 4410|       |			/* TSNH */
 4411|      0|			break;
 4412|      0|		}
 4413|  20.6k|		param_len = ntohs(ph->param_length);
 4414|  20.6k|		if ((param_len > remaining_length) ||
  ------------------
  |  Branch (4414:7): [True: 2.92k, False: 17.6k]
  ------------------
 4415|  17.6k|		    (param_len < (sizeof(struct sctp_paramhdr) + sizeof(uint32_t)))) {
  ------------------
  |  Branch (4415:7): [True: 1.13k, False: 16.5k]
  ------------------
 4416|       |			/* bad parameter length */
 4417|  4.05k|			break;
 4418|  4.05k|		}
 4419|  16.5k|		ph = (struct sctp_paramhdr *)sctp_m_getptr(m, offset, min(param_len, sizeof(cstore)),
  ------------------
  |  |   66|  16.5k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 225, False: 16.3k]
  |  |  ------------------
  ------------------
 4420|  16.5k|							   (uint8_t *)&cstore);
 4421|  16.5k|		if (ph == NULL) {
  ------------------
  |  Branch (4421:7): [True: 0, False: 16.5k]
  ------------------
 4422|       |			/* TSNH */
 4423|      0|			break;
 4424|      0|		}
 4425|  16.5k|		ptype = ntohs(ph->param_type);
 4426|  16.5k|		num_param++;
 4427|  16.5k|		if (param_len > sizeof(cstore)) {
  ------------------
  |  Branch (4427:7): [True: 225, False: 16.3k]
  ------------------
 4428|    225|			trunc = 1;
 4429|  16.3k|		} else {
 4430|  16.3k|			trunc = 0;
 4431|  16.3k|		}
 4432|  16.5k|		if (num_param > SCTP_MAX_RESET_PARAMS) {
  ------------------
  |  |  410|  16.5k|#define SCTP_MAX_RESET_PARAMS 2
  ------------------
  |  Branch (4432:7): [True: 509, False: 16.0k]
  ------------------
 4433|       |			/* hit the max of parameters already sorry.. */
 4434|    509|			break;
 4435|    509|		}
 4436|  16.0k|		if (ptype == SCTP_STR_RESET_OUT_REQUEST) {
  ------------------
  |  |  403|  16.0k|#define SCTP_STR_RESET_OUT_REQUEST	0x000d
  ------------------
  |  Branch (4436:7): [True: 2.03k, False: 14.0k]
  ------------------
 4437|  2.03k|			struct sctp_stream_reset_out_request *req_out;
 4438|       |
 4439|  2.03k|			if (param_len < sizeof(struct sctp_stream_reset_out_request)) {
  ------------------
  |  Branch (4439:8): [True: 127, False: 1.90k]
  ------------------
 4440|    127|				break;
 4441|    127|			}
 4442|  1.90k|			req_out = (struct sctp_stream_reset_out_request *)ph;
 4443|  1.90k|			num_req++;
 4444|  1.90k|			if (stcb->asoc.stream_reset_outstanding) {
  ------------------
  |  Branch (4444:8): [True: 531, False: 1.37k]
  ------------------
 4445|    531|				seq = ntohl(req_out->response_seq);
 4446|    531|				if (seq == stcb->asoc.str_reset_seq_out) {
  ------------------
  |  Branch (4446:9): [True: 0, False: 531]
  ------------------
 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|    531|			}
 4451|  1.90k|			sctp_handle_str_reset_request_out(stcb, chk, req_out, trunc);
 4452|  14.0k|		} else if (ptype == SCTP_STR_RESET_ADD_OUT_STREAMS) {
  ------------------
  |  |  407|  14.0k|#define SCTP_STR_RESET_ADD_OUT_STREAMS	0x0011
  ------------------
  |  Branch (4452:14): [True: 2.37k, False: 11.6k]
  ------------------
 4453|  2.37k|			struct sctp_stream_reset_add_strm  *str_add;
 4454|       |
 4455|  2.37k|			if (param_len < sizeof(struct sctp_stream_reset_add_strm)) {
  ------------------
  |  Branch (4455:8): [True: 403, False: 1.96k]
  ------------------
 4456|    403|				break;
 4457|    403|			}
 4458|  1.96k|			str_add = (struct sctp_stream_reset_add_strm  *)ph;
 4459|  1.96k|			num_req++;
 4460|  1.96k|			sctp_handle_str_reset_add_strm(stcb, chk, str_add);
 4461|  11.6k|		} else if (ptype == SCTP_STR_RESET_ADD_IN_STREAMS) {
  ------------------
  |  |  408|  11.6k|#define SCTP_STR_RESET_ADD_IN_STREAMS	0x0012
  ------------------
  |  Branch (4461:14): [True: 1.38k, False: 10.2k]
  ------------------
 4462|  1.38k|			struct sctp_stream_reset_add_strm  *str_add;
 4463|       |
 4464|  1.38k|			if (param_len < sizeof(struct sctp_stream_reset_add_strm)) {
  ------------------
  |  Branch (4464:8): [True: 209, False: 1.18k]
  ------------------
 4465|    209|				break;
 4466|    209|			}
 4467|  1.18k|			str_add = (struct sctp_stream_reset_add_strm  *)ph;
 4468|  1.18k|			num_req++;
 4469|  1.18k|			sctp_handle_str_reset_add_out_strm(stcb, chk, str_add);
 4470|  10.2k|		} else if (ptype == SCTP_STR_RESET_IN_REQUEST) {
  ------------------
  |  |  404|  10.2k|#define SCTP_STR_RESET_IN_REQUEST	0x000e
  ------------------
  |  Branch (4470:14): [True: 6.97k, False: 3.28k]
  ------------------
 4471|  6.97k|			struct sctp_stream_reset_in_request *req_in;
 4472|       |
 4473|  6.97k|			num_req++;
 4474|  6.97k|			req_in = (struct sctp_stream_reset_in_request *)ph;
 4475|  6.97k|			sctp_handle_str_reset_request_in(stcb, chk, req_in, trunc);
 4476|  6.97k|		} else if (ptype == SCTP_STR_RESET_TSN_REQUEST) {
  ------------------
  |  |  405|  3.28k|#define SCTP_STR_RESET_TSN_REQUEST	0x000f
  ------------------
  |  Branch (4476:14): [True: 1.19k, False: 2.09k]
  ------------------
 4477|  1.19k|			struct sctp_stream_reset_tsn_request *req_tsn;
 4478|       |
 4479|  1.19k|			num_req++;
 4480|  1.19k|			req_tsn = (struct sctp_stream_reset_tsn_request *)ph;
 4481|  1.19k|			if (sctp_handle_str_reset_request_tsn(stcb, chk, req_tsn)) {
  ------------------
  |  Branch (4481:8): [True: 0, False: 1.19k]
  ------------------
 4482|      0|				ret_code = 1;
 4483|      0|				goto strres_nochunk;
 4484|      0|			}
 4485|       |			/* no more */
 4486|  1.19k|			break;
 4487|  2.09k|		} else if (ptype == SCTP_STR_RESET_RESPONSE) {
  ------------------
  |  |  406|  2.09k|#define SCTP_STR_RESET_RESPONSE		0x0010
  ------------------
  |  Branch (4487:14): [True: 675, False: 1.41k]
  ------------------
 4488|    675|			struct sctp_stream_reset_response *resp;
 4489|    675|			uint32_t result;
 4490|       |
 4491|    675|			if (param_len < sizeof(struct sctp_stream_reset_response)) {
  ------------------
  |  Branch (4491:8): [True: 205, False: 470]
  ------------------
 4492|    205|				break;
 4493|    205|			}
 4494|    470|			resp = (struct sctp_stream_reset_response *)ph;
 4495|    470|			seq = ntohl(resp->response_seq);
 4496|    470|			result = ntohl(resp->result);
 4497|    470|			if (sctp_handle_stream_reset_response(stcb, seq, result, resp)) {
  ------------------
  |  Branch (4497:8): [True: 0, False: 470]
  ------------------
 4498|      0|				ret_code = 1;
 4499|      0|				goto strres_nochunk;
 4500|      0|			}
 4501|  1.41k|		} else {
 4502|  1.41k|			break;
 4503|  1.41k|		}
 4504|  12.5k|		offset += SCTP_SIZE32(param_len);
  ------------------
  |  |  383|  12.5k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 4505|  12.5k|		if (remaining_length >= SCTP_SIZE32(param_len)) {
  ------------------
  |  |  383|  12.5k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (4505:7): [True: 11.7k, False: 714]
  ------------------
 4506|  11.7k|			remaining_length -= SCTP_SIZE32(param_len);
  ------------------
  |  |  383|  11.7k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 4507|  11.7k|		} else {
 4508|    714|			remaining_length = 0;
 4509|    714|		}
 4510|  12.5k|	}
 4511|  15.4k|	if (num_req == 0) {
  ------------------
  |  Branch (4511:6): [True: 5.47k, False: 9.98k]
  ------------------
 4512|       |		/* we have no response free the stuff */
 4513|  5.47k|		goto strres_nochunk;
 4514|  5.47k|	}
 4515|       |	/* ok we have a chunk to link in */
 4516|  15.4k|	TAILQ_INSERT_TAIL(&stcb->asoc.control_send_queue,
  ------------------
  |  Branch (4516:2): [Folded, False: 9.98k]
  ------------------
 4517|  9.98k|			  chk,
 4518|  9.98k|			  sctp_next);
 4519|  9.98k|	stcb->asoc.ctrl_queue_cnt++;
 4520|  9.98k|	return (ret_code);
 4521|  15.4k|}
sctp_input.c:sctp_handle_stream_reset_response:
 3839|    470|{
 3840|    470|	uint16_t type;
 3841|    470|	int lparam_len;
 3842|    470|	struct sctp_association *asoc = &stcb->asoc;
 3843|    470|	struct sctp_tmit_chunk *chk;
 3844|    470|	struct sctp_stream_reset_request *req_param;
 3845|    470|	struct sctp_stream_reset_out_request *req_out_param;
 3846|    470|	struct sctp_stream_reset_in_request *req_in_param;
 3847|    470|	uint32_t number_entries;
 3848|       |
 3849|    470|	if (asoc->stream_reset_outstanding == 0) {
  ------------------
  |  Branch (3849:6): [True: 201, False: 269]
  ------------------
 3850|       |		/* duplicate */
 3851|    201|		return (0);
 3852|    201|	}
 3853|    269|	if (seq == stcb->asoc.str_reset_seq_out) {
  ------------------
  |  Branch (3853:6): [True: 0, False: 269]
  ------------------
 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|    269|	if (asoc->stream_reset_outstanding == 0) {
  ------------------
  |  Branch (3985:6): [True: 0, False: 269]
  ------------------
 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|    269|	return (0);
 3989|    269|}
sctp_input.c:sctp_reset_out_streams:
 3725|     64|{
 3726|     64|	uint32_t i;
 3727|     64|	uint16_t temp;
 3728|       |
 3729|     64|	if (number_entries > 0) {
  ------------------
  |  Branch (3729:6): [True: 0, False: 64]
  ------------------
 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|     64|	} else {
 3740|  16.5k|		for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (3740:15): [True: 16.4k, False: 64]
  ------------------
 3741|  16.4k|			stcb->asoc.strmout[i].next_mid_ordered = 0;
 3742|  16.4k|			stcb->asoc.strmout[i].next_mid_unordered = 0;
 3743|  16.4k|		}
 3744|     64|	}
 3745|     64|	sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_SEND, stcb, number_entries, (void *)list, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  720|     64|#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|     64|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3746|     64|}
sctp_input.c:sctp_handle_str_reset_request_out:
 4126|  1.90k|{
 4127|  1.90k|	uint32_t seq, tsn;
 4128|  1.90k|	int number_entries, len;
 4129|  1.90k|	struct sctp_association *asoc = &stcb->asoc;
 4130|       |
 4131|  1.90k|	seq = ntohl(req->request_seq);
 4132|       |
 4133|       |	/* now if its not a duplicate we process it */
 4134|  1.90k|	if (asoc->str_reset_seq_in == seq) {
  ------------------
  |  Branch (4134:6): [True: 828, False: 1.08k]
  ------------------
 4135|    828|		len = ntohs(req->ph.param_length);
 4136|    828|		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|    828|		tsn = ntohl(req->send_reset_at_tsn);
 4145|       |
 4146|       |		/* move the reset action back one */
 4147|    828|		asoc->last_reset_action[1] = asoc->last_reset_action[0];
 4148|    828|		if ((asoc->local_strreset_support & SCTP_ENABLE_RESET_STREAM_REQ) == 0) {
  ------------------
  |  |  180|    828|#define SCTP_ENABLE_RESET_STREAM_REQ 	0x00000001
  ------------------
  |  Branch (4148:7): [True: 0, False: 828]
  ------------------
 4149|      0|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4150|    828|		} else if (trunc) {
  ------------------
  |  Branch (4150:14): [True: 1, False: 827]
  ------------------
 4151|      1|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      1|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4152|    827|		} else if (SCTP_TSN_GE(asoc->cumulative_tsn, tsn)) {
  ------------------
  |  |  890|    827|#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
  |  |  ------------------
  |  |  |  |  885|    827|#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: 377, False: 450]
  |  |  |  |  |  |  |  Branch (883:43): [True: 0, False: 377]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  884|  1.65k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (884:32): [True: 438, False: 389]
  |  |  |  |  |  |  |  Branch (884:43): [True: 245, False: 193]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (885:55): [True: 12, False: 570]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4153|       |			/* we can do it now */
 4154|    257|			sctp_reset_in_stream(stcb, number_entries, req->list_of_streams);
 4155|    257|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_PERFORMED;
  ------------------
  |  |  479|    257|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
 4156|    570|		} 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|    570|			struct sctp_stream_reset_list *liste;
 4162|    570|			int siz;
 4163|       |
 4164|    570|			siz = sizeof(struct sctp_stream_reset_list) + (number_entries * sizeof(uint16_t));
 4165|    570|			SCTP_MALLOC(liste, struct sctp_stream_reset_list *,
  ------------------
  |  |  675|    570|	do {								\
  |  |  676|    570|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|    570|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|    570|    do {								\
  |  |  |  |  198|    570|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.14k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 570]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|    570|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 570]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|    570|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 570]
  |  |  ------------------
  ------------------
 4166|    570|				    siz, SCTP_M_STRESET);
 4167|    570|			if (liste == NULL) {
  ------------------
  |  Branch (4167:8): [True: 0, False: 570]
  ------------------
 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|    570|			liste->seq = seq;
 4174|    570|			liste->tsn = tsn;
 4175|    570|			liste->number_entries = number_entries;
 4176|    570|			memcpy(&liste->list_of_streams, req->list_of_streams, number_entries * sizeof(uint16_t));
 4177|    570|			TAILQ_INSERT_TAIL(&asoc->resetHead, liste, next_resp);
  ------------------
  |  Branch (4177:4): [Folded, False: 570]
  ------------------
 4178|    570|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_IN_PROGRESS;
  ------------------
  |  |  484|    570|#define SCTP_STREAM_RESET_RESULT_IN_PROGRESS     0x00000006 /* XXX: unused */
  ------------------
 4179|    570|		}
 4180|    828|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4181|    828|		asoc->str_reset_seq_in++;
 4182|  1.08k|	} else if ((asoc->str_reset_seq_in - 1) == seq) {
  ------------------
  |  Branch (4182:13): [True: 370, False: 711]
  ------------------
 4183|       |		/*
 4184|       |		 * one seq back, just echo back last action since my
 4185|       |		 * response was lost.
 4186|       |		 */
 4187|    370|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4188|    711|	} else if ((asoc->str_reset_seq_in - 2) == seq) {
  ------------------
  |  Branch (4188:13): [True: 219, False: 492]
  ------------------
 4189|       |		/*
 4190|       |		 * two seq back, just echo back last action since my
 4191|       |		 * response was lost.
 4192|       |		 */
 4193|    219|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[1]);
 4194|    492|	} else {
 4195|    492|		sctp_add_stream_reset_result(chk, seq, SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO);
  ------------------
  |  |  483|    492|#define SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO   0x00000005
  ------------------
 4196|    492|	}
 4197|  1.90k|}
sctp_input.c:sctp_handle_str_reset_add_strm:
 4202|  1.96k|{
 4203|       |	/*
 4204|       |	 * Peer is requesting to add more streams.
 4205|       |	 * If its within our max-streams we will
 4206|       |	 * allow it.
 4207|       |	 */
 4208|  1.96k|	uint32_t num_stream, i;
 4209|  1.96k|	uint32_t seq;
 4210|  1.96k|	struct sctp_association *asoc = &stcb->asoc;
 4211|  1.96k|	struct sctp_queued_to_read *ctl, *nctl;
 4212|       |
 4213|       |	/* Get the number. */
 4214|  1.96k|	seq = ntohl(str_add->request_seq);
 4215|  1.96k|	num_stream = ntohs(str_add->number_of_streams);
 4216|       |	/* Now what would be the new total? */
 4217|  1.96k|	if (asoc->str_reset_seq_in == seq) {
  ------------------
  |  Branch (4217:6): [True: 86, False: 1.88k]
  ------------------
 4218|     86|		num_stream += stcb->asoc.streamincnt;
 4219|     86|		stcb->asoc.last_reset_action[1] = stcb->asoc.last_reset_action[0];
 4220|     86|		if ((asoc->local_strreset_support & SCTP_ENABLE_CHANGE_ASSOC_REQ) == 0) {
  ------------------
  |  |  182|     86|#define SCTP_ENABLE_CHANGE_ASSOC_REQ 	0x00000004
  ------------------
  |  Branch (4220:7): [True: 0, False: 86]
  ------------------
 4221|      0|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4222|     86|		} else if ((num_stream > stcb->asoc.max_inbound_streams) ||
  ------------------
  |  Branch (4222:14): [True: 29, 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|     29|  denied:
 4226|     29|			stcb->asoc.last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|     29|#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|     86|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4274|     86|		asoc->str_reset_seq_in++;
 4275|  1.88k|	} else if ((asoc->str_reset_seq_in - 1) == seq) {
  ------------------
  |  Branch (4275:13): [True: 386, False: 1.49k]
  ------------------
 4276|       |		/*
 4277|       |		 * one seq back, just echo back last action since my
 4278|       |		 * response was lost.
 4279|       |		 */
 4280|    386|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4281|  1.49k|	} else if ((asoc->str_reset_seq_in - 2) == seq) {
  ------------------
  |  Branch (4281:13): [True: 280, False: 1.21k]
  ------------------
 4282|       |		/*
 4283|       |		 * two seq back, just echo back last action since my
 4284|       |		 * response was lost.
 4285|       |		 */
 4286|    280|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[1]);
 4287|  1.21k|	} else {
 4288|  1.21k|		sctp_add_stream_reset_result(chk, seq, SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO);
  ------------------
  |  |  483|  1.21k|#define SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO   0x00000005
  ------------------
 4289|  1.21k|	}
 4290|  1.96k|}
sctp_input.c:sctp_handle_str_reset_add_out_strm:
 4295|  1.18k|{
 4296|       |	/*
 4297|       |	 * Peer is requesting to add more streams.
 4298|       |	 * If its within our max-streams we will
 4299|       |	 * allow it.
 4300|       |	 */
 4301|  1.18k|	uint16_t num_stream;
 4302|  1.18k|	uint32_t seq;
 4303|  1.18k|	struct sctp_association *asoc = &stcb->asoc;
 4304|       |
 4305|       |	/* Get the number. */
 4306|  1.18k|	seq = ntohl(str_add->request_seq);
 4307|  1.18k|	num_stream = ntohs(str_add->number_of_streams);
 4308|       |	/* Now what would be the new total? */
 4309|  1.18k|	if (asoc->str_reset_seq_in == seq) {
  ------------------
  |  Branch (4309:6): [True: 129, False: 1.05k]
  ------------------
 4310|    129|		stcb->asoc.last_reset_action[1] = stcb->asoc.last_reset_action[0];
 4311|    129|		if ((asoc->local_strreset_support & SCTP_ENABLE_CHANGE_ASSOC_REQ) == 0) {
  ------------------
  |  |  182|    129|#define SCTP_ENABLE_CHANGE_ASSOC_REQ 	0x00000004
  ------------------
  |  Branch (4311:7): [True: 0, False: 129]
  ------------------
 4312|      0|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4313|    129|		} else if (stcb->asoc.stream_reset_outstanding) {
  ------------------
  |  Branch (4313:14): [True: 18, False: 111]
  ------------------
 4314|       |			/* We must reject it we have something pending */
 4315|     18|			stcb->asoc.last_reset_action[0] = SCTP_STREAM_RESET_RESULT_ERR_IN_PROGRESS;
  ------------------
  |  |  482|     18|#define SCTP_STREAM_RESET_RESULT_ERR_IN_PROGRESS 0x00000004
  ------------------
 4316|    111|		} else {
 4317|       |			/* Ok, we can do that :-) */
 4318|    111|			int mychk;
 4319|    111|			mychk = stcb->asoc.streamoutcnt;
 4320|    111|			mychk += num_stream;
 4321|    111|			if (mychk < 0x10000) {
  ------------------
  |  Branch (4321:8): [True: 104, False: 7]
  ------------------
 4322|    104|				stcb->asoc.last_reset_action[0] = SCTP_STREAM_RESET_RESULT_PERFORMED;
  ------------------
  |  |  479|    104|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
 4323|    104|				if (sctp_send_str_reset_req(stcb, 0, NULL, 0, 0, 1, num_stream, 0, 1)) {
  ------------------
  |  Branch (4323:9): [True: 0, False: 104]
  ------------------
 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|    104|			} else {
 4327|      7|				stcb->asoc.last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      7|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4328|      7|			}
 4329|    111|		}
 4330|    129|		sctp_add_stream_reset_result(chk, seq, stcb->asoc.last_reset_action[0]);
 4331|    129|		asoc->str_reset_seq_in++;
 4332|  1.05k|	} else if ((asoc->str_reset_seq_in - 1) == seq) {
  ------------------
  |  Branch (4332:13): [True: 257, False: 794]
  ------------------
 4333|       |		/*
 4334|       |		 * one seq back, just echo back last action since my
 4335|       |		 * response was lost.
 4336|       |		 */
 4337|    257|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4338|    794|	} else if ((asoc->str_reset_seq_in - 2) == seq) {
  ------------------
  |  Branch (4338:13): [True: 263, False: 531]
  ------------------
 4339|       |		/*
 4340|       |		 * two seq back, just echo back last action since my
 4341|       |		 * response was lost.
 4342|       |		 */
 4343|    263|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[1]);
 4344|    531|	} else {
 4345|    531|		sctp_add_stream_reset_result(chk, seq, SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO);
  ------------------
  |  |  483|    531|#define SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO   0x00000005
  ------------------
 4346|    531|	}
 4347|  1.18k|}
sctp_input.c:sctp_handle_str_reset_request_in:
 3995|  6.97k|{
 3996|  6.97k|	uint32_t seq;
 3997|  6.97k|	int len, i;
 3998|  6.97k|	int number_entries;
 3999|  6.97k|	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|  6.97k|	struct sctp_association *asoc = &stcb->asoc;
 4006|       |
 4007|  6.97k|	seq = ntohl(req->request_seq);
 4008|  6.97k|	if (asoc->str_reset_seq_in == seq) {
  ------------------
  |  Branch (4008:6): [True: 298, False: 6.67k]
  ------------------
 4009|    298|		asoc->last_reset_action[1] = asoc->last_reset_action[0];
 4010|    298|		if ((asoc->local_strreset_support & SCTP_ENABLE_RESET_STREAM_REQ) == 0) {
  ------------------
  |  |  180|    298|#define SCTP_ENABLE_RESET_STREAM_REQ 	0x00000001
  ------------------
  |  Branch (4010:7): [True: 0, False: 298]
  ------------------
 4011|      0|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4012|    298|		} else if (trunc) {
  ------------------
  |  Branch (4012:14): [True: 1, False: 297]
  ------------------
 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|    297|		} else if (stcb->asoc.stream_reset_out_is_outstanding == 0) {
  ------------------
  |  Branch (4015:14): [True: 297, False: 0]
  ------------------
 4016|    297|			len = ntohs(req->ph.param_length);
 4017|    297|			number_entries = ((len - sizeof(struct sctp_stream_reset_in_request)) / sizeof(uint16_t));
 4018|    297|			if (number_entries) {
  ------------------
  |  Branch (4018:8): [True: 208, False: 89]
  ------------------
 4019|  1.38k|				for (i = 0; i < number_entries; i++) {
  ------------------
  |  Branch (4019:17): [True: 1.21k, False: 173]
  ------------------
 4020|  1.21k|					temp = ntohs(req->list_of_streams[i]);
 4021|  1.21k|					if (temp >= stcb->asoc.streamoutcnt) {
  ------------------
  |  Branch (4021:10): [True: 35, False: 1.17k]
  ------------------
 4022|     35|						asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|     35|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4023|     35|						goto bad_boy;
 4024|     35|					}
 4025|  1.17k|					req->list_of_streams[i] = temp;
 4026|  1.17k|				}
 4027|  1.29k|				for (i = 0; i < number_entries; i++) {
  ------------------
  |  Branch (4027:17): [True: 1.12k, False: 173]
  ------------------
 4028|  1.12k|					if (stcb->asoc.strmout[req->list_of_streams[i]].state == SCTP_STREAM_OPEN) {
  ------------------
  |  |  670|  1.12k|#define SCTP_STREAM_OPEN             0x02
  ------------------
  |  Branch (4028:10): [True: 740, False: 385]
  ------------------
 4029|    740|						stcb->asoc.strmout[req->list_of_streams[i]].state = SCTP_STREAM_RESET_PENDING;
  ------------------
  |  |  671|    740|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
 4030|    740|					}
 4031|  1.12k|				}
 4032|    173|			} else {
 4033|       |				/* Its all */
 4034|  22.9k|				for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (4034:17): [True: 22.8k, False: 89]
  ------------------
 4035|  22.8k|					if (stcb->asoc.strmout[i].state == SCTP_STREAM_OPEN)
  ------------------
  |  |  670|  22.8k|#define SCTP_STREAM_OPEN             0x02
  ------------------
  |  Branch (4035:10): [True: 20.1k, False: 2.74k]
  ------------------
 4036|  20.1k|						stcb->asoc.strmout[i].state = SCTP_STREAM_RESET_PENDING;
  ------------------
  |  |  671|  20.1k|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
 4037|  22.8k|				}
 4038|     89|			}
 4039|    262|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_PERFORMED;
  ------------------
  |  |  479|    262|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
 4040|    262|		} 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|    298|	bad_boy:
 4045|    298|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4046|    298|		asoc->str_reset_seq_in++;
 4047|  6.67k|	} else if (asoc->str_reset_seq_in - 1 == seq) {
  ------------------
  |  Branch (4047:13): [True: 360, False: 6.31k]
  ------------------
 4048|    360|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[0]);
 4049|  6.31k|	} else if (asoc->str_reset_seq_in - 2 == seq) {
  ------------------
  |  Branch (4049:13): [True: 1.58k, False: 4.73k]
  ------------------
 4050|  1.58k|		sctp_add_stream_reset_result(chk, seq, asoc->last_reset_action[1]);
 4051|  4.73k|	} else {
 4052|  4.73k|		sctp_add_stream_reset_result(chk, seq, SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO);
  ------------------
  |  |  483|  4.73k|#define SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO   0x00000005
  ------------------
 4053|  4.73k|	}
 4054|  6.97k|	sctp_send_stream_reset_out_if_possible(stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  6.97k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 4055|  6.97k|}
sctp_input.c:sctp_handle_str_reset_request_tsn:
 4061|  1.19k|{
 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|  1.19k|	struct sctp_forward_tsn_chunk fwdtsn;
 4069|  1.19k|	struct sctp_association *asoc = &stcb->asoc;
 4070|  1.19k|	int abort_flag = 0;
 4071|  1.19k|	uint32_t seq;
 4072|       |
 4073|  1.19k|	seq = ntohl(req->request_seq);
 4074|  1.19k|	if (asoc->str_reset_seq_in == seq) {
  ------------------
  |  Branch (4074:6): [True: 64, False: 1.12k]
  ------------------
 4075|     64|		asoc->last_reset_action[1] = stcb->asoc.last_reset_action[0];
 4076|     64|		if ((asoc->local_strreset_support & SCTP_ENABLE_CHANGE_ASSOC_REQ) == 0) {
  ------------------
  |  |  182|     64|#define SCTP_ENABLE_CHANGE_ASSOC_REQ 	0x00000004
  ------------------
  |  Branch (4076:7): [True: 0, False: 64]
  ------------------
 4077|      0|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_DENIED;
  ------------------
  |  |  480|      0|#define SCTP_STREAM_RESET_RESULT_DENIED          0x00000002
  ------------------
 4078|     64|		} else {
 4079|     64|			fwdtsn.ch.chunk_length = htons(sizeof(struct sctp_forward_tsn_chunk));
 4080|     64|			fwdtsn.ch.chunk_type = SCTP_FORWARD_CUM_TSN;
  ------------------
  |  |  487|     64|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
 4081|     64|			fwdtsn.ch.chunk_flags = 0;
 4082|     64|			fwdtsn.new_cumulative_tsn = htonl(stcb->asoc.highest_tsn_inside_map + 1);
 4083|     64|			sctp_handle_forward_tsn(stcb, &fwdtsn, &abort_flag, NULL, 0);
 4084|     64|			if (abort_flag) {
  ------------------
  |  Branch (4084:8): [True: 0, False: 64]
  ------------------
 4085|      0|				return (1);
 4086|      0|			}
 4087|     64|			asoc->highest_tsn_inside_map += SCTP_STREAM_RESET_TSN_DELTA;
  ------------------
  |  |  411|     64|#define SCTP_STREAM_RESET_TSN_DELTA	0x1000
  ------------------
 4088|     64|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  590|     64|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
  ------------------
  |  |  649|     64|#define SCTP_MAP_LOGGING_ENABLE				0x00000100
  ------------------
  |  Branch (4088:8): [True: 0, False: 64]
  ------------------
 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|     64|			asoc->tsn_last_delivered = asoc->cumulative_tsn = asoc->highest_tsn_inside_map;
 4092|     64|			asoc->mapping_array_base_tsn = asoc->highest_tsn_inside_map + 1;
 4093|     64|			memset(asoc->mapping_array, 0, asoc->mapping_array_size);
 4094|     64|			asoc->highest_tsn_inside_nr_map = asoc->highest_tsn_inside_map;
 4095|     64|			memset(asoc->nr_mapping_array, 0, asoc->mapping_array_size);
 4096|     64|			atomic_add_int(&asoc->sending_seq, 1);
  ------------------
  |  |   94|     64|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 4097|       |			/* save off historical data for retrans */
 4098|     64|			asoc->last_sending_seq[1] = asoc->last_sending_seq[0];
 4099|     64|			asoc->last_sending_seq[0] = asoc->sending_seq;
 4100|     64|			asoc->last_base_tsnsent[1] = asoc->last_base_tsnsent[0];
 4101|     64|			asoc->last_base_tsnsent[0] = asoc->mapping_array_base_tsn;
 4102|     64|			sctp_reset_out_streams(stcb, 0, (uint16_t *) NULL);
 4103|     64|			sctp_reset_in_stream(stcb, 0, (uint16_t *) NULL);
 4104|     64|			asoc->last_reset_action[0] = SCTP_STREAM_RESET_RESULT_PERFORMED;
  ------------------
  |  |  479|     64|#define SCTP_STREAM_RESET_RESULT_PERFORMED       0x00000001
  ------------------
 4105|     64|			sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_TSN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  726|     64|#define SCTP_NOTIFY_STR_RESET_TSN               24
  ------------------
              			sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_TSN, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|     64|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 4106|     64|		}
 4107|     64|		sctp_add_stream_reset_result_tsn(chk, seq, asoc->last_reset_action[0],
 4108|     64|		                                 asoc->last_sending_seq[0], asoc->last_base_tsnsent[0]);
 4109|     64|		asoc->str_reset_seq_in++;
 4110|  1.12k|	} else if (asoc->str_reset_seq_in - 1 == seq) {
  ------------------
  |  Branch (4110:13): [True: 583, False: 543]
  ------------------
 4111|    583|		sctp_add_stream_reset_result_tsn(chk, seq, asoc->last_reset_action[0],
 4112|    583|		                                 asoc->last_sending_seq[0], asoc->last_base_tsnsent[0]);
 4113|    583|	} else if (asoc->str_reset_seq_in - 2 == seq) {
  ------------------
  |  Branch (4113:13): [True: 204, False: 339]
  ------------------
 4114|    204|		sctp_add_stream_reset_result_tsn(chk, seq, asoc->last_reset_action[1],
 4115|    204|		                                 asoc->last_sending_seq[1], asoc->last_base_tsnsent[1]);
 4116|    339|	} else {
 4117|    339|		sctp_add_stream_reset_result(chk, seq, SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO);
  ------------------
  |  |  483|    339|#define SCTP_STREAM_RESET_RESULT_ERR_BAD_SEQNO   0x00000005
  ------------------
 4118|    339|	}
 4119|  1.19k|	return (0);
 4120|  1.19k|}
sctp_input.c:sctp_handle_packet_dropped:
 4532|  10.2k|{
 4533|  10.2k|	struct sctp_chunk_desc desc;
 4534|  10.2k|	struct sctp_chunkhdr *chk_hdr;
 4535|  10.2k|	struct sctp_data_chunk *data_chunk;
 4536|  10.2k|	struct sctp_idata_chunk *idata_chunk;
 4537|  10.2k|	uint32_t bottle_bw, on_queue;
 4538|  10.2k|	uint32_t offset, chk_len;
 4539|  10.2k|	uint16_t pktdrp_len;
 4540|  10.2k|	uint8_t pktdrp_flags;
 4541|       |
 4542|  10.2k|	KASSERT(sizeof(struct sctp_pktdrop_chunk) <= limit,
  ------------------
  |  |  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]
  |  |  ------------------
  ------------------
 4543|  10.2k|	        ("PKTDROP chunk too small"));
 4544|  10.2k|	pktdrp_flags = cp->ch.chunk_flags;
 4545|  10.2k|	pktdrp_len = ntohs(cp->ch.chunk_length);
 4546|  10.2k|	KASSERT(limit <= pktdrp_len, ("Inconsistent limit"));
  ------------------
  |  |  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]
  |  |  ------------------
  ------------------
 4547|  10.2k|	if (pktdrp_flags & SCTP_PACKET_TRUNCATED) {
  ------------------
  |  |  498|  10.2k|#define SCTP_PACKET_TRUNCATED	0x04
  ------------------
  |  Branch (4547:6): [True: 4.57k, False: 5.64k]
  ------------------
 4548|  4.57k|		if (ntohs(cp->trunc_len) <= pktdrp_len - sizeof(struct sctp_pktdrop_chunk)) {
  ------------------
  |  Branch (4548:7): [True: 310, False: 4.26k]
  ------------------
 4549|       |			/* The peer plays games with us. */
 4550|    310|			return;
 4551|    310|		}
 4552|  4.57k|	}
 4553|  9.90k|	limit -= sizeof(struct sctp_pktdrop_chunk);
 4554|  9.90k|	offset = 0;
 4555|  9.90k|	if (offset == limit) {
  ------------------
  |  Branch (4555:6): [True: 1.71k, False: 8.19k]
  ------------------
 4556|  1.71k|		if (pktdrp_flags & SCTP_FROM_MIDDLE_BOX) {
  ------------------
  |  |  496|  1.71k|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|  1.71k|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (4556:7): [True: 482, False: 1.22k]
  ------------------
 4557|    482|			SCTP_STAT_INCR(sctps_pdrpbwrpt);
  ------------------
  |  | 1112|    482|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    482|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    482|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4558|    482|		}
 4559|  8.19k|	} else if (offset + sizeof(struct sctphdr) > limit) {
  ------------------
  |  Branch (4559:13): [True: 1.30k, False: 6.89k]
  ------------------
 4560|       |		/* Only a partial SCTP common header. */
 4561|  1.30k|		SCTP_STAT_INCR(sctps_pdrpcrupt);
  ------------------
  |  | 1112|  1.30k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  1.30k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.30k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4562|  1.30k|		offset = limit;
 4563|  6.89k|	} else {
 4564|       |		/* XXX: Check embedded SCTP common header. */
 4565|  6.89k|		offset += sizeof(struct sctphdr);
 4566|  6.89k|	}
 4567|       |	/* Now parse through the chunks themselves. */
 4568|  69.1k|	while (offset < limit) {
  ------------------
  |  Branch (4568:9): [True: 61.8k, False: 7.32k]
  ------------------
 4569|  61.8k|		if (offset + sizeof(struct sctp_chunkhdr) > limit) {
  ------------------
  |  Branch (4569:7): [True: 217, False: 61.6k]
  ------------------
 4570|    217|			SCTP_STAT_INCR(sctps_pdrpcrupt);
  ------------------
  |  | 1112|    217|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    217|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    217|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4571|    217|			break;
 4572|    217|		}
 4573|  61.6k|		chk_hdr = (struct sctp_chunkhdr *)(cp->data + offset);
 4574|  61.6k|		desc.chunk_type = chk_hdr->chunk_type;
 4575|       |		/* get amount we need to move */
 4576|  61.6k|		chk_len = (uint32_t)ntohs(chk_hdr->chunk_length);
 4577|  61.6k|		if (chk_len < sizeof(struct sctp_chunkhdr)) {
  ------------------
  |  Branch (4577:7): [True: 719, False: 60.9k]
  ------------------
 4578|       |			/* Someone is lying... */
 4579|    719|			break;
 4580|    719|		}
 4581|  60.9k|		if (desc.chunk_type == SCTP_DATA) {
  ------------------
  |  |  454|  60.9k|#define SCTP_DATA		0x00
  ------------------
  |  Branch (4581:7): [True: 1.64k, False: 59.2k]
  ------------------
 4582|  1.64k|			if (stcb->asoc.idata_supported) {
  ------------------
  |  Branch (4582:8): [True: 373, False: 1.27k]
  ------------------
 4583|       |				/* Some is playing games with us. */
 4584|    373|				break;
 4585|    373|			}
 4586|  1.27k|			if (chk_len <= sizeof(struct sctp_data_chunk)) {
  ------------------
  |  Branch (4586:8): [True: 210, False: 1.06k]
  ------------------
 4587|       |				/* Some is playing games with us. */
 4588|    210|				break;
 4589|    210|			}
 4590|  1.06k|			if (chk_len < sizeof(struct sctp_data_chunk) + SCTP_NUM_DB_TO_VERIFY) {
  ------------------
  |  |  414|  1.06k|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
  |  Branch (4590:8): [True: 79, False: 987]
  ------------------
 4591|       |				/* Not enough data bytes available in the chunk. */
 4592|     79|				SCTP_STAT_INCR(sctps_pdrpnedat);
  ------------------
  |  | 1112|     79|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|     79|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     79|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4593|     79|				goto next_chunk;
 4594|     79|			}
 4595|    987|			if (offset + sizeof(struct sctp_data_chunk) + SCTP_NUM_DB_TO_VERIFY > limit) {
  ------------------
  |  |  414|    987|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
  |  Branch (4595:8): [True: 506, False: 481]
  ------------------
 4596|       |				/* Not enough data in buffer. */
 4597|    506|				break;
 4598|    506|			}
 4599|    481|			data_chunk = (struct sctp_data_chunk *)(cp->data + offset);
 4600|    481|			memcpy(desc.data_bytes, data_chunk + 1, SCTP_NUM_DB_TO_VERIFY);
  ------------------
  |  |  414|    481|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
 4601|    481|			desc.tsn_ifany = data_chunk->dp.tsn;
 4602|    481|			if (pktdrp_flags & SCTP_FROM_MIDDLE_BOX) {
  ------------------
  |  |  496|    481|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|    481|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (4602:8): [True: 298, False: 183]
  ------------------
 4603|    298|				SCTP_STAT_INCR(sctps_pdrpmbda);
  ------------------
  |  | 1112|    298|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    298|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    298|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4604|    298|			}
 4605|  59.2k|		} else if (desc.chunk_type == SCTP_IDATA) {
  ------------------
  |  |  474|  59.2k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (4605:14): [True: 1.77k, False: 57.5k]
  ------------------
 4606|  1.77k|			if (!stcb->asoc.idata_supported) {
  ------------------
  |  Branch (4606:8): [True: 227, False: 1.55k]
  ------------------
 4607|       |				/* Some is playing games with us. */
 4608|    227|				break;
 4609|    227|			}
 4610|  1.55k|			if (chk_len <= sizeof(struct sctp_idata_chunk)) {
  ------------------
  |  Branch (4610:8): [True: 228, False: 1.32k]
  ------------------
 4611|       |				/* Some is playing games with us. */
 4612|    228|				break;
 4613|    228|			}
 4614|  1.32k|			if (chk_len < sizeof(struct sctp_idata_chunk) + SCTP_NUM_DB_TO_VERIFY) {
  ------------------
  |  |  414|  1.32k|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
  |  Branch (4614:8): [True: 71, False: 1.25k]
  ------------------
 4615|       |				/* Not enough data bytes available in the chunk. */
 4616|     71|				SCTP_STAT_INCR(sctps_pdrpnedat);
  ------------------
  |  | 1112|     71|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|     71|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     71|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4617|     71|				goto next_chunk;
 4618|     71|			}
 4619|  1.25k|			if (offset + sizeof(struct sctp_idata_chunk) + SCTP_NUM_DB_TO_VERIFY > limit) {
  ------------------
  |  |  414|  1.25k|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
  |  Branch (4619:8): [True: 101, False: 1.15k]
  ------------------
 4620|       |				/* Not enough data in buffer. */
 4621|    101|				break;
 4622|    101|			}
 4623|  1.15k|			idata_chunk = (struct sctp_idata_chunk *)(cp->data + offset);
 4624|  1.15k|			memcpy(desc.data_bytes, idata_chunk + 1, SCTP_NUM_DB_TO_VERIFY);
  ------------------
  |  |  414|  1.15k|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
 4625|  1.15k|			desc.tsn_ifany = idata_chunk->dp.tsn;
 4626|  1.15k|			if (pktdrp_flags & SCTP_FROM_MIDDLE_BOX) {
  ------------------
  |  |  496|  1.15k|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|  1.15k|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (4626:8): [True: 631, False: 519]
  ------------------
 4627|    631|				SCTP_STAT_INCR(sctps_pdrpmbda);
  ------------------
  |  | 1112|    631|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    631|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    631|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4628|    631|			}
 4629|  57.5k|		} else {
 4630|  57.5k|			desc.tsn_ifany = htonl(0);
 4631|  57.5k|			memset(desc.data_bytes, 0, SCTP_NUM_DB_TO_VERIFY);
  ------------------
  |  |  414|  57.5k|#define SCTP_NUM_DB_TO_VERIFY 31
  ------------------
 4632|  57.5k|			if (pktdrp_flags & SCTP_FROM_MIDDLE_BOX) {
  ------------------
  |  |  496|  57.5k|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|  57.5k|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (4632:8): [True: 51.6k, False: 5.84k]
  ------------------
 4633|  51.6k|				SCTP_STAT_INCR(sctps_pdrpmbct);
  ------------------
  |  | 1112|  51.6k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  51.6k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  51.6k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4634|  51.6k|			}
 4635|  57.5k|		}
 4636|  59.1k|		if (process_chunk_drop(stcb, &desc, net, pktdrp_flags)) {
  ------------------
  |  Branch (4636:7): [True: 0, False: 59.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|  59.2k|next_chunk:
 4641|  59.2k|		offset += SCTP_SIZE32(chk_len);
  ------------------
  |  |  383|  59.2k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 4642|  59.2k|	}
 4643|       |	/* Now update any rwnd --- possibly */
 4644|  9.90k|	if ((pktdrp_flags & SCTP_FROM_MIDDLE_BOX) == 0) {
  ------------------
  |  |  496|  9.90k|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|  9.90k|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (4644:6): [True: 5.49k, False: 4.41k]
  ------------------
 4645|       |		/* From a peer, we get a rwnd report */
 4646|  5.49k|		uint32_t a_rwnd;
 4647|       |
 4648|  5.49k|		SCTP_STAT_INCR(sctps_pdrpfehos);
  ------------------
  |  | 1112|  5.49k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  5.49k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  5.49k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4649|       |
 4650|  5.49k|		bottle_bw = ntohl(cp->bottle_bw);
 4651|  5.49k|		on_queue = ntohl(cp->current_onq);
 4652|  5.49k|		if (bottle_bw && on_queue) {
  ------------------
  |  Branch (4652:7): [True: 4.84k, False: 651]
  |  Branch (4652:20): [True: 4.67k, False: 168]
  ------------------
 4653|       |			/* a rwnd report is in here */
 4654|  4.67k|			if (bottle_bw > on_queue)
  ------------------
  |  Branch (4654:8): [True: 2.77k, False: 1.90k]
  ------------------
 4655|  2.77k|				a_rwnd = bottle_bw - on_queue;
 4656|  1.90k|			else
 4657|  1.90k|				a_rwnd = 0;
 4658|       |
 4659|  4.67k|			if (a_rwnd == 0)
  ------------------
  |  Branch (4659:8): [True: 1.90k, False: 2.77k]
  ------------------
 4660|  1.90k|				stcb->asoc.peers_rwnd = 0;
 4661|  2.77k|			else {
 4662|  2.77k|				if (a_rwnd > stcb->asoc.total_flight) {
  ------------------
  |  Branch (4662:9): [True: 2.77k, False: 0]
  ------------------
 4663|  2.77k|					stcb->asoc.peers_rwnd =
 4664|  2.77k|					    a_rwnd - stcb->asoc.total_flight;
 4665|  2.77k|				} else {
 4666|      0|					stcb->asoc.peers_rwnd = 0;
 4667|      0|				}
 4668|  2.77k|				if (stcb->asoc.peers_rwnd <
  ------------------
  |  Branch (4668:9): [True: 666, False: 2.10k]
  ------------------
 4669|  2.77k|				    stcb->sctp_ep->sctp_ep.sctp_sws_sender) {
 4670|       |					/* SWS sender side engages */
 4671|    666|					stcb->asoc.peers_rwnd = 0;
 4672|    666|				}
 4673|  2.77k|			}
 4674|  4.67k|		}
 4675|  5.49k|	} else {
 4676|  4.41k|		SCTP_STAT_INCR(sctps_pdrpfmbox);
  ------------------
  |  | 1112|  4.41k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  4.41k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  4.41k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4677|  4.41k|	}
 4678|       |
 4679|       |	/* now middle boxes in sat networks get a cwnd bump */
 4680|  9.90k|	if ((pktdrp_flags & SCTP_FROM_MIDDLE_BOX) &&
  ------------------
  |  |  496|  9.90k|#define SCTP_FROM_MIDDLE_BOX	SCTP_HAD_NO_TCB
  |  |  ------------------
  |  |  |  |  493|  9.90k|#define SCTP_HAD_NO_TCB		0x01
  |  |  ------------------
  ------------------
  |  Branch (4680:6): [True: 4.41k, False: 5.49k]
  ------------------
 4681|  4.41k|	    (stcb->asoc.sat_t3_loss_recovery == 0) &&
  ------------------
  |  Branch (4681:6): [True: 4.41k, False: 0]
  ------------------
 4682|  4.41k|	    (stcb->asoc.sat_network)) {
  ------------------
  |  Branch (4682:6): [True: 0, False: 4.41k]
  ------------------
 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|  9.90k|}
sctp_input.c:process_chunk_drop:
 3463|  59.1k|{
 3464|  59.1k|	switch (desc->chunk_type) {
 3465|    481|	case SCTP_DATA:
  ------------------
  |  |  454|    481|#define SCTP_DATA		0x00
  ------------------
  |  Branch (3465:2): [True: 481, False: 58.6k]
  ------------------
 3466|  1.63k|	case SCTP_IDATA:
  ------------------
  |  |  474|  1.63k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (3466:2): [True: 1.15k, False: 57.9k]
  ------------------
 3467|       |		/* find the tsn to resend (possibly) */
 3468|  1.63k|	{
 3469|  1.63k|		uint32_t tsn;
 3470|  1.63k|		struct sctp_tmit_chunk *tp1;
 3471|       |
 3472|  1.63k|		tsn = ntohl(desc->tsn_ifany);
 3473|  1.63k|		TAILQ_FOREACH(tp1, &stcb->asoc.sent_queue, sctp_next) {
  ------------------
  |  Branch (3473:3): [True: 0, False: 1.63k]
  ------------------
 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.63k|		if (tp1 == NULL) {
  ------------------
  |  Branch (3484:7): [True: 1.63k, False: 0]
  ------------------
 3485|       |			/*
 3486|       |			 * Do it the other way , aka without paying
 3487|       |			 * attention to queue seq order.
 3488|       |			 */
 3489|  1.63k|			SCTP_STAT_INCR(sctps_pdrpdnfnd);
  ------------------
  |  | 1112|  1.63k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  1.63k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.63k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3490|  1.63k|			TAILQ_FOREACH(tp1, &stcb->asoc.sent_queue, sctp_next) {
  ------------------
  |  Branch (3490:4): [True: 0, False: 1.63k]
  ------------------
 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.63k|		}
 3497|  1.63k|		if (tp1 == NULL) {
  ------------------
  |  Branch (3497:7): [True: 1.63k, False: 0]
  ------------------
 3498|  1.63k|			SCTP_STAT_INCR(sctps_pdrptsnnf);
  ------------------
  |  | 1112|  1.63k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  1.63k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.63k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3499|  1.63k|		}
 3500|  1.63k|		if ((tp1) && (tp1->sent < SCTP_DATAGRAM_ACKED)) {
  ------------------
  |  |  355|      0|#define SCTP_DATAGRAM_ACKED		10010
  ------------------
  |  Branch (3500:7): [True: 0, False: 1.63k]
  |  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.63k|		} {
 3577|       |			/* audit code */
 3578|  1.63k|			unsigned int audit;
 3579|       |
 3580|  1.63k|			audit = 0;
 3581|  1.63k|			TAILQ_FOREACH(tp1, &stcb->asoc.sent_queue, sctp_next) {
  ------------------
  |  Branch (3581:4): [True: 0, False: 1.63k]
  ------------------
 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.63k|			TAILQ_FOREACH(tp1, &stcb->asoc.control_send_queue,
  ------------------
  |  Branch (3585:4): [True: 279k, False: 1.63k]
  ------------------
 3586|   279k|				      sctp_next) {
 3587|   279k|				if (tp1->sent == SCTP_DATAGRAM_RESEND)
  ------------------
  |  |  354|   279k|#define SCTP_DATAGRAM_RESEND		4
  ------------------
  |  Branch (3587:9): [True: 0, False: 279k]
  ------------------
 3588|      0|					audit++;
 3589|   279k|			}
 3590|  1.63k|			if (audit != stcb->asoc.sent_queue_retran_cnt) {
  ------------------
  |  Branch (3590:8): [True: 0, False: 1.63k]
  ------------------
 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.63k|		}
 3598|  1.63k|	}
 3599|      0|	break;
 3600|    893|	case SCTP_ASCONF:
  ------------------
  |  |  489|    893|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (3600:2): [True: 893, False: 58.2k]
  ------------------
 3601|    893|	{
 3602|    893|		struct sctp_tmit_chunk *asconf;
 3603|       |
 3604|    893|		TAILQ_FOREACH(asconf, &stcb->asoc.control_send_queue,
  ------------------
  |  Branch (3604:3): [True: 32.9k, False: 893]
  ------------------
 3605|  32.9k|			      sctp_next) {
 3606|  32.9k|			if (asconf->rec.chunk_id.id == SCTP_ASCONF) {
  ------------------
  |  |  489|  32.9k|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (3606:8): [True: 0, False: 32.9k]
  ------------------
 3607|      0|				break;
 3608|      0|			}
 3609|  32.9k|		}
 3610|    893|		if (asconf) {
  ------------------
  |  Branch (3610:7): [True: 0, False: 893]
  ------------------
 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|    893|	}
 3617|    893|	break;
 3618|  2.24k|	case SCTP_INITIATION:
  ------------------
  |  |  455|  2.24k|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (3618:2): [True: 2.24k, False: 56.8k]
  ------------------
 3619|       |		/* resend the INIT */
 3620|  2.24k|		stcb->asoc.dropped_special_cnt++;
 3621|  2.24k|		if (stcb->asoc.dropped_special_cnt < SCTP_RETRY_DROPPED_THRESH) {
  ------------------
  |  |  567|  2.24k|#define SCTP_RETRY_DROPPED_THRESH 4
  ------------------
  |  Branch (3621:7): [True: 125, False: 2.12k]
  ------------------
 3622|       |			/*
 3623|       |			 * If we can get it in, in a few attempts we do
 3624|       |			 * this, otherwise we let the timer fire.
 3625|       |			 */
 3626|    125|			sctp_timer_stop(SCTP_TIMER_TYPE_INIT, stcb->sctp_ep,
  ------------------
  |  |  533|    125|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
 3627|    125|					stcb, net,
 3628|    125|			                SCTP_FROM_SCTP_INPUT + SCTP_LOC_27);
  ------------------
  |  |  755|    125|#define SCTP_FROM_SCTP_INPUT        0x10000000
  ------------------
              			                SCTP_FROM_SCTP_INPUT + SCTP_LOC_27);
  ------------------
  |  |  795|    125|#define SCTP_LOC_27 0x0000001b
  ------------------
 3629|    125|			sctp_send_initiate(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    125|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3630|    125|		}
 3631|  2.24k|		break;
 3632|  5.63k|	case SCTP_SELECTIVE_ACK:
  ------------------
  |  |  457|  5.63k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (3632:2): [True: 5.63k, False: 53.5k]
  ------------------
 3633|  6.80k|	case SCTP_NR_SELECTIVE_ACK:
  ------------------
  |  |  472|  6.80k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (3633:2): [True: 1.17k, False: 57.9k]
  ------------------
 3634|       |		/* resend the sack */
 3635|  6.80k|		sctp_send_sack(stcb, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  6.80k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3636|  6.80k|		break;
 3637|  38.1k|	case SCTP_HEARTBEAT_REQUEST:
  ------------------
  |  |  458|  38.1k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
  |  Branch (3637:2): [True: 38.1k, False: 20.9k]
  ------------------
 3638|       |		/* resend a demand HB */
 3639|  38.1k|		if ((stcb->asoc.overall_error_count + 3) < stcb->asoc.max_send_times) {
  ------------------
  |  Branch (3639:7): [True: 38.1k, False: 0]
  ------------------
 3640|       |			/* Only retransmit if we KNOW we wont destroy the tcb */
 3641|  38.1k|			sctp_send_hb(stcb, net, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  38.1k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3642|  38.1k|		}
 3643|  38.1k|		break;
 3644|  1.89k|	case SCTP_SHUTDOWN:
  ------------------
  |  |  461|  1.89k|#define SCTP_SHUTDOWN		0x07
  ------------------
  |  Branch (3644:2): [True: 1.89k, False: 57.2k]
  ------------------
 3645|  1.89k|		sctp_send_shutdown(stcb, net);
 3646|  1.89k|		break;
 3647|    590|	case SCTP_SHUTDOWN_ACK:
  ------------------
  |  |  462|    590|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
  |  Branch (3647:2): [True: 590, False: 58.5k]
  ------------------
 3648|    590|		sctp_send_shutdown_ack(stcb, net);
 3649|    590|		break;
 3650|  1.04k|	case SCTP_COOKIE_ECHO:
  ------------------
  |  |  464|  1.04k|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (3650:2): [True: 1.04k, False: 58.0k]
  ------------------
 3651|  1.04k|	{
 3652|  1.04k|		struct sctp_tmit_chunk *cookie;
 3653|       |
 3654|  1.04k|		cookie = NULL;
 3655|  1.04k|		TAILQ_FOREACH(cookie, &stcb->asoc.control_send_queue,
  ------------------
  |  Branch (3655:3): [True: 39.3k, False: 1.04k]
  ------------------
 3656|  39.3k|			      sctp_next) {
 3657|  39.3k|			if (cookie->rec.chunk_id.id == SCTP_COOKIE_ECHO) {
  ------------------
  |  |  464|  39.3k|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (3657:8): [True: 0, False: 39.3k]
  ------------------
 3658|      0|				break;
 3659|      0|			}
 3660|  39.3k|		}
 3661|  1.04k|		if (cookie) {
  ------------------
  |  Branch (3661:7): [True: 0, False: 1.04k]
  ------------------
 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.04k|	}
 3668|  1.04k|	break;
 3669|    791|	case SCTP_COOKIE_ACK:
  ------------------
  |  |  465|    791|#define SCTP_COOKIE_ACK		0x0b
  ------------------
  |  Branch (3669:2): [True: 791, False: 58.3k]
  ------------------
 3670|    791|		sctp_send_cookie_ack(stcb);
 3671|    791|		break;
 3672|    333|	case SCTP_ASCONF_ACK:
  ------------------
  |  |  477|    333|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (3672:2): [True: 333, False: 58.8k]
  ------------------
 3673|       |		/* resend last asconf ack */
 3674|    333|		sctp_send_asconf_ack(stcb);
 3675|    333|		break;
 3676|    192|	case SCTP_IFORWARD_CUM_TSN:
  ------------------
  |  |  490|    192|#define SCTP_IFORWARD_CUM_TSN	0xc2
  ------------------
  |  Branch (3676:2): [True: 192, False: 58.9k]
  ------------------
 3677|    751|	case SCTP_FORWARD_CUM_TSN:
  ------------------
  |  |  487|    751|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (3677:2): [True: 559, False: 58.5k]
  ------------------
 3678|    751|		send_forward_tsn(stcb, &stcb->asoc);
 3679|    751|		break;
 3680|       |		/* can't do anything with these */
 3681|    261|	case SCTP_PACKET_DROPPED:
  ------------------
  |  |  479|    261|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (3681:2): [True: 261, False: 58.8k]
  ------------------
 3682|    261|	case SCTP_INITIATION_ACK:	/* this should not happen */
  ------------------
  |  |  456|    261|#define SCTP_INITIATION_ACK	0x02
  ------------------
  |  Branch (3682:2): [True: 0, False: 59.1k]
  ------------------
 3683|    417|	case SCTP_HEARTBEAT_ACK:
  ------------------
  |  |  459|    417|#define SCTP_HEARTBEAT_ACK	0x05
  ------------------
  |  Branch (3683:2): [True: 156, False: 58.9k]
  ------------------
 3684|    423|	case SCTP_ABORT_ASSOCIATION:
  ------------------
  |  |  460|    423|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
  |  Branch (3684:2): [True: 6, False: 59.1k]
  ------------------
 3685|  1.80k|	case SCTP_OPERATION_ERROR:
  ------------------
  |  |  463|  1.80k|#define SCTP_OPERATION_ERROR	0x09
  ------------------
  |  Branch (3685:2): [True: 1.37k, False: 57.7k]
  ------------------
 3686|  1.80k|	case SCTP_SHUTDOWN_COMPLETE:
  ------------------
  |  |  468|  1.80k|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
  |  Branch (3686:2): [True: 5, False: 59.1k]
  ------------------
 3687|  2.05k|	case SCTP_ECN_ECHO:
  ------------------
  |  |  466|  2.05k|#define SCTP_ECN_ECHO		0x0c
  ------------------
  |  Branch (3687:2): [True: 250, False: 58.8k]
  ------------------
 3688|  2.08k|	case SCTP_ECN_CWR:
  ------------------
  |  |  467|  2.08k|#define SCTP_ECN_CWR		0x0d
  ------------------
  |  Branch (3688:2): [True: 31, False: 59.1k]
  ------------------
 3689|  4.00k|	default:
  ------------------
  |  Branch (3689:2): [True: 1.92k, False: 57.2k]
  ------------------
 3690|  4.00k|		break;
 3691|  59.1k|	}
 3692|  59.1k|	return (0);
 3693|  59.1k|}
sctp_input.c:sctp_handle_cookie_ack:
 3125|  21.7k|{
 3126|       |	/* cp must not be used, others call this without a c-ack :-) */
 3127|  21.7k|	struct sctp_association *asoc;
 3128|  21.7k|	struct sctp_tmit_chunk *chk;
 3129|       |
 3130|  21.7k|	SCTPDBG(SCTP_DEBUG_INPUT2,
 3131|  21.7k|		"sctp_handle_cookie_ack: handling COOKIE-ACK\n");
 3132|  21.7k|	if ((stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (3132:6): [True: 0, False: 21.7k]
  |  Branch (3132:24): [True: 0, False: 21.7k]
  ------------------
 3133|      0|		return;
 3134|      0|	}
 3135|       |
 3136|  21.7k|	asoc = &stcb->asoc;
 3137|  21.7k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  590|  21.7k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_THRESHOLD_LOGGING) {
  ------------------
  |  |  666|  21.7k|#define SCTP_THRESHOLD_LOGGING				0x02000000
  ------------------
  |  Branch (3137:6): [True: 0, False: 21.7k]
  ------------------
 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|  21.7k|	sctp_stop_all_cookie_timers(stcb);
 3145|  21.7k|	sctp_toss_old_cookies(stcb, asoc);
 3146|       |	/* process according to association state */
 3147|  21.7k|	if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED) {
  ------------------
  |  |  472|  21.7k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  21.7k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED) {
  ------------------
  |  |  458|  21.7k|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (3147:6): [True: 5.64k, False: 16.1k]
  ------------------
 3148|       |		/* state change only needed when I am in right state */
 3149|  5.64k|		SCTPDBG(SCTP_DEBUG_INPUT2, "moving to OPEN state\n");
 3150|  5.64k|		SCTP_SET_STATE(stcb, SCTP_STATE_OPEN);
  ------------------
  |  |  474|  5.64k|	sctp_set_state(_stcb, _state)
  ------------------
 3151|  5.64k|		sctp_start_net_timers(stcb);
 3152|       |		/* update RTO */
 3153|  5.64k|		SCTP_STAT_INCR_COUNTER32(sctps_activeestab);
  ------------------
  |  | 1127|  5.64k|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  5.64k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  5.64k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  5.64k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3154|  5.64k|		SCTP_STAT_INCR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1129|  5.64k|#define SCTP_STAT_INCR_GAUGE32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  5.64k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  5.64k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  5.64k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3155|  5.64k|		if (asoc->overall_error_count == 0) {
  ------------------
  |  Branch (3155:7): [True: 5.64k, False: 0]
  ------------------
 3156|  5.64k|			sctp_calculate_rto(stcb, asoc, net, &asoc->time_entered,
 3157|  5.64k|			                   SCTP_RTT_FROM_NON_DATA);
  ------------------
  |  |  340|  5.64k|#define SCTP_RTT_FROM_NON_DATA 0
  ------------------
 3158|  5.64k|		}
 3159|       |		/*
 3160|       |		 * Since we did not send a HB make sure we don't double
 3161|       |		 * things.
 3162|       |		 */
 3163|  5.64k|		asoc->overall_error_count = 0;
 3164|  5.64k|		net->hb_responded = 1;
 3165|  5.64k|		(void)SCTP_GETTIME_TIMEVAL(&asoc->time_entered);
  ------------------
  |  |  991|  5.64k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 3166|  5.64k|		sctp_ulp_notify(SCTP_NOTIFY_ASSOC_UP, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  703|  5.64k|#define SCTP_NOTIFY_ASSOC_UP                     1
  ------------------
              		sctp_ulp_notify(SCTP_NOTIFY_ASSOC_UP, stcb, 0, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|  5.64k|#define SCTP_SO_NOT_LOCKED	0
  ------------------
 3167|  5.64k|		if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|  5.64k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (3167:7): [True: 5.64k, False: 0]
  ------------------
 3168|  5.64k|		    (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.64k|			sctp_pcb_add_flags(stcb->sctp_ep, SCTP_PCB_FLAGS_CONNECTED);
  ------------------
  |  |  539|  5.64k|#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.64k|			if ((stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET) == 0) {
  ------------------
  |  |  464|  5.64k|#define SCTP_STATE_CLOSED_SOCKET	0x0100
  ------------------
  |  Branch (3182:8): [True: 5.64k, False: 0]
  ------------------
 3183|  5.64k|				soisconnected(stcb->sctp_socket);
 3184|  5.64k|			}
 3185|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3186|       |			SCTP_SOCKET_UNLOCK(so, 1);
 3187|       |#endif
 3188|  5.64k|		}
 3189|       |
 3190|  5.64k|		if ((asoc->state & SCTP_STATE_SHUTDOWN_PENDING) &&
  ------------------
  |  |  463|  5.64k|#define SCTP_STATE_SHUTDOWN_PENDING	0x0080
  ------------------
  |  Branch (3190:7): [True: 0, False: 5.64k]
  ------------------
 3191|  5.64k|		    TAILQ_EMPTY(&asoc->send_queue) &&
  ------------------
  |  Branch (3191:7): [True: 0, False: 0]
  ------------------
 3192|  5.64k|		    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.64k|		if (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET) {
  ------------------
  |  |  464|  5.64k|#define SCTP_STATE_CLOSED_SOCKET	0x0100
  ------------------
  |  Branch (3205:7): [True: 0, False: 5.64k]
  ------------------
 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.64k|		sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep,
  ------------------
  |  |  536|  5.64k|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 3213|  5.64k|		    stcb, net);
 3214|       |
 3215|  5.64k|		if (stcb->asoc.sctp_autoclose_ticks &&
  ------------------
  |  Branch (3215:7): [True: 0, False: 5.64k]
  ------------------
 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.64k|		if ((sctp_is_feature_on(stcb->sctp_ep, SCTP_PCB_FLAGS_DO_ASCONF)) &&
  ------------------
  |  |   52|  5.64k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (3225:7): [True: 5.64k, False: 0]
  ------------------
 3226|  5.64k|		    (stcb->asoc.asconf_supported == 1) &&
  ------------------
  |  Branch (3226:7): [True: 5.63k, False: 5]
  ------------------
 3227|  5.63k|		    (!TAILQ_EMPTY(&stcb->asoc.asconf_queue))) {
  ------------------
  |  Branch (3227:7): [True: 0, False: 5.63k]
  ------------------
 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.64k|	}
 3238|  21.7k|closed_socket:
 3239|       |	/* Restart the timer if we have pending data */
 3240|  21.7k|	TAILQ_FOREACH(chk, &asoc->sent_queue, sctp_next) {
  ------------------
  |  Branch (3240:2): [True: 3.76k, False: 17.9k]
  ------------------
 3241|  3.76k|		if (chk->whoTo != NULL) {
  ------------------
  |  Branch (3241:7): [True: 3.76k, False: 0]
  ------------------
 3242|  3.76k|			break;
 3243|  3.76k|		}
 3244|  3.76k|	}
 3245|  21.7k|	if (chk != NULL) {
  ------------------
  |  Branch (3245:6): [True: 3.76k, False: 17.9k]
  ------------------
 3246|  3.76k|		sctp_timer_start(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, stcb, chk->whoTo);
  ------------------
  |  |  532|  3.76k|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 3247|  3.76k|	}
 3248|  21.7k|}

sctp_output.c:sctp_userspace_rtfree:
  875|    576|{
  876|    576|	if(rt == NULL) {
  ------------------
  |  Branch (876:5): [True: 0, False: 576]
  ------------------
  877|      0|		return;
  878|      0|	}
  879|    576|	if(--rt->rt_refcnt > 0) {
  ------------------
  |  Branch (879:5): [True: 0, False: 576]
  ------------------
  880|      0|		return;
  881|      0|	}
  882|    576|	free(rt);
  883|    576|}
sctp_pcb.c:sctp_userspace_rtfree:
  875|  50.4k|{
  876|  50.4k|	if(rt == NULL) {
  ------------------
  |  Branch (876:5): [True: 0, False: 50.4k]
  ------------------
  877|      0|		return;
  878|      0|	}
  879|  50.4k|	if(--rt->rt_refcnt > 0) {
  ------------------
  |  Branch (879:5): [True: 0, False: 50.4k]
  ------------------
  880|      0|		return;
  881|      0|	}
  882|  50.4k|	free(rt);
  883|  50.4k|}
sctp_pcb.c:sctp_userspace_rtalloc:
  842|  53.5k|{
  843|  53.5k|	if (ro->ro_rt != NULL) {
  ------------------
  |  Branch (843:6): [True: 0, False: 53.5k]
  ------------------
  844|      0|		ro->ro_rt->rt_refcnt++;
  845|      0|		return;
  846|      0|	}
  847|       |
  848|  53.5k|	ro->ro_rt = (sctp_rtentry_t *) malloc(sizeof(sctp_rtentry_t));
  849|  53.5k|	if (ro->ro_rt == NULL)
  ------------------
  |  Branch (849:6): [True: 0, False: 53.5k]
  ------------------
  850|      0|		return;
  851|       |
  852|       |	/* initialize */
  853|  53.5k|	memset(ro->ro_rt, 0, sizeof(sctp_rtentry_t));
  854|  53.5k|	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|  53.5k|	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|  53.5k|}
sctputil.c:sctp_userspace_rtfree:
  875|  2.54k|{
  876|  2.54k|	if(rt == NULL) {
  ------------------
  |  Branch (876:5): [True: 0, False: 2.54k]
  ------------------
  877|      0|		return;
  878|      0|	}
  879|  2.54k|	if(--rt->rt_refcnt > 0) {
  ------------------
  |  Branch (879:5): [True: 0, False: 2.54k]
  ------------------
  880|      0|		return;
  881|      0|	}
  882|  2.54k|	free(rt);
  883|  2.54k|}

sctp_add_addresses_to_i_ia:
 2063|  17.6k|{
 2064|  17.6k|	struct sctp_vrf *vrf = NULL;
 2065|  17.6k|	int cnt, limit_out = 0, total_count;
 2066|  17.6k|	uint32_t vrf_id;
 2067|       |
 2068|  17.6k|	vrf_id = inp->def_vrf_id;
 2069|  17.6k|	SCTP_IPI_ADDR_RLOCK();
  ------------------
  |  |  597|  17.6k|	KASSERT(pthread_rwlock_rdlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  17.6k|	do {                         \
  |  |  |  |  113|  17.6k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 17.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|  17.6k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 17.6k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2070|  17.6k|	vrf = sctp_find_vrf(vrf_id);
 2071|  17.6k|	if (vrf == NULL) {
  ------------------
  |  Branch (2071:6): [True: 0, False: 17.6k]
  ------------------
 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|  17.6k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUNDALL) {
  ------------------
  |  |  530|  17.6k|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  ------------------
  |  Branch (2075:6): [True: 0, False: 17.6k]
  ------------------
 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|  17.6k|	} else {
 2198|  17.6k|		struct sctp_laddr *laddr;
 2199|       |
 2200|  17.6k|		cnt = cnt_inits_to;
 2201|       |		/* First, how many ? */
 2202|  17.6k|		LIST_FOREACH(laddr, &inp->sctp_addr_list, sctp_nxt_addr) {
  ------------------
  |  Branch (2202:3): [True: 17.6k, False: 17.6k]
  ------------------
 2203|  17.6k|			if (laddr->ifa == NULL) {
  ------------------
  |  Branch (2203:8): [True: 0, False: 17.6k]
  ------------------
 2204|      0|				continue;
 2205|      0|			}
 2206|  17.6k|			if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED)
  ------------------
  |  |   90|  17.6k|#define SCTP_BEING_DELETED      0x00000002	/* being deleted,
  ------------------
  |  Branch (2206:8): [True: 0, False: 17.6k]
  ------------------
 2207|       |				/* Address being deleted by the system, dont
 2208|       |				 * list.
 2209|       |				 */
 2210|      0|				continue;
 2211|  17.6k|			if (laddr->action == SCTP_DEL_IP_ADDRESS) {
  ------------------
  |  |  431|  17.6k|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (2211:8): [True: 0, False: 17.6k]
  ------------------
 2212|       |				/* Address being deleted on this ep
 2213|       |				 * don't list.
 2214|       |				 */
 2215|      0|				continue;
 2216|      0|			}
 2217|  17.6k|#if defined(__Userspace__)
 2218|  17.6k|			if (laddr->ifa->address.sa.sa_family == AF_CONN) {
  ------------------
  |  | 1014|  17.6k|#define AF_CONN 123
  ------------------
  |  Branch (2218:8): [True: 17.6k, False: 0]
  ------------------
 2219|  17.6k|				continue;
 2220|  17.6k|			}
 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|  17.6k|		if (cnt > 1) {
  ------------------
  |  Branch (2233:7): [True: 0, False: 17.6k]
  ------------------
 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|  17.6k|	}
 2267|  17.6k|	SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|  17.6k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  17.6k|	do {                         \
  |  |  |  |  113|  17.6k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 17.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|  17.6k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 17.6k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2268|  17.6k|	return (m_at);
 2269|  17.6k|}
sctp_is_addr_restricted:
 2457|  35.3k|{
 2458|  35.3k|	struct sctp_laddr *laddr;
 2459|       |
 2460|  35.3k|	if (stcb == NULL) {
  ------------------
  |  Branch (2460:6): [True: 0, False: 35.3k]
  ------------------
 2461|       |		/* There are no restrictions, no TCB :-) */
 2462|      0|		return (0);
 2463|      0|	}
 2464|  35.3k|	LIST_FOREACH(laddr, &stcb->asoc.sctp_restricted_addrs, sctp_nxt_addr) {
  ------------------
  |  Branch (2464:2): [True: 0, False: 35.3k]
  ------------------
 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|  35.3k|	return (0);
 2476|  35.3k|}
sctp_is_addr_in_ep:
 2480|  6.88k|{
 2481|  6.88k|	struct sctp_laddr *laddr;
 2482|       |
 2483|  6.88k|	if (ifa == NULL)
  ------------------
  |  Branch (2483:6): [True: 0, False: 6.88k]
  ------------------
 2484|      0|		return (0);
 2485|  6.88k|	LIST_FOREACH(laddr, &inp->sctp_addr_list, sctp_nxt_addr) {
  ------------------
  |  Branch (2485:2): [True: 6.88k, False: 6.88k]
  ------------------
 2486|  6.88k|		if (laddr->ifa == NULL) {
  ------------------
  |  Branch (2486:7): [True: 0, False: 6.88k]
  ------------------
 2487|      0|			SCTPDBG(SCTP_DEBUG_OUTPUT1, "%s: NULL ifa\n",
 2488|      0|				__func__);
 2489|      0|			continue;
 2490|      0|		}
 2491|  6.88k|		if ((laddr->ifa == ifa) && laddr->action == 0)
  ------------------
  |  Branch (2491:7): [True: 0, False: 6.88k]
  |  Branch (2491:30): [True: 0, False: 0]
  ------------------
 2492|       |			/* same pointer */
 2493|      0|			return (1);
 2494|  6.88k|	}
 2495|  6.88k|	return (0);
 2496|  6.88k|}
sctp_source_address_selection:
 3381|  3.44k|{
 3382|  3.44k|	struct sctp_ifa *answer;
 3383|  3.44k|	uint8_t dest_is_priv, dest_is_loop;
 3384|  3.44k|	sa_family_t fam;
 3385|  3.44k|#ifdef INET
 3386|  3.44k|	struct sockaddr_in *to = (struct sockaddr_in *)&ro->ro_dst;
 3387|  3.44k|#endif
 3388|  3.44k|#ifdef INET6
 3389|  3.44k|	struct sockaddr_in6 *to6 = (struct sockaddr_in6 *)&ro->ro_dst;
 3390|  3.44k|#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.44k|	if (ro->ro_rt == NULL) {
  ------------------
  |  Branch (3458:6): [True: 0, False: 3.44k]
  ------------------
 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.44k|	if (ro->ro_rt == NULL) {
  ------------------
  |  Branch (3468:6): [True: 0, False: 3.44k]
  ------------------
 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.44k|	fam = ro->ro_dst.sa_family;
 3477|  3.44k|#endif
 3478|  3.44k|	dest_is_priv = dest_is_loop = 0;
 3479|       |	/* Setup our scopes for the destination */
 3480|  3.44k|	switch (fam) {
  ------------------
  |  Branch (3480:10): [True: 3.44k, False: 0]
  ------------------
 3481|      0|#ifdef INET
 3482|  1.08k|	case AF_INET:
  ------------------
  |  Branch (3482:2): [True: 1.08k, False: 2.35k]
  ------------------
 3483|       |		/* Scope based on outbound address */
 3484|  1.08k|		if (IN4_ISLOOPBACK_ADDRESS(&to->sin_addr)) {
  ------------------
  |  |  977|  1.08k|    (((uint8_t *)&(a)->s_addr)[0] == 127)
  |  |  ------------------
  |  |  |  Branch (977:5): [True: 420, False: 664]
  |  |  ------------------
  ------------------
 3485|    420|			dest_is_loop = 1;
 3486|    420|			if (net != NULL) {
  ------------------
  |  Branch (3486:8): [True: 420, False: 0]
  ------------------
 3487|       |				/* mark it as local */
 3488|    420|				net->addr_is_local = 1;
 3489|    420|			}
 3490|    664|		} else if ((IN4_ISPRIVATE_ADDRESS(&to->sin_addr))) {
  ------------------
  |  |  969|    664|   ((((uint8_t *)&(a)->s_addr)[0] == 10) || \
  |  |  ------------------
  |  |  |  Branch (969:5): [True: 59, False: 605]
  |  |  ------------------
  |  |  970|    664|    ((((uint8_t *)&(a)->s_addr)[0] == 172) && \
  |  |  ------------------
  |  |  |  Branch (970:6): [True: 69, False: 536]
  |  |  ------------------
  |  |  971|    605|     (((uint8_t *)&(a)->s_addr)[1] >= 16) && \
  |  |  ------------------
  |  |  |  Branch (971:6): [True: 49, False: 20]
  |  |  ------------------
  |  |  972|    605|     (((uint8_t *)&(a)->s_addr)[1] <= 32)) || \
  |  |  ------------------
  |  |  |  Branch (972:6): [True: 14, False: 35]
  |  |  ------------------
  |  |  973|    664|    ((((uint8_t *)&(a)->s_addr)[0] == 192) && \
  |  |  ------------------
  |  |  |  Branch (973:6): [True: 38, False: 553]
  |  |  ------------------
  |  |  974|    591|     (((uint8_t *)&(a)->s_addr)[1] == 168)))
  |  |  ------------------
  |  |  |  Branch (974:6): [True: 11, False: 27]
  |  |  ------------------
  ------------------
 3491|     84|			dest_is_priv = 1;
 3492|     84|		}
 3493|  1.08k|		break;
 3494|      0|#endif
 3495|      0|#ifdef INET6
 3496|  2.35k|	case AF_INET6:
  ------------------
  |  Branch (3496:2): [True: 2.35k, False: 1.08k]
  ------------------
 3497|       |		/* Scope based on outbound address */
 3498|       |#if defined(_WIN32)
 3499|       |		if (IN6_IS_ADDR_LOOPBACK(&to6->sin6_addr)) {
 3500|       |#else
 3501|  2.35k|		if (IN6_IS_ADDR_LOOPBACK(&to6->sin6_addr) ||
  ------------------
  |  Branch (3501:7): [True: 2, False: 2.35k]
  ------------------
 3502|  2.35k|		    SCTP_ROUTE_IS_REAL_LOOP(ro)) {
  ------------------
  |  |  660|  2.35k|#define SCTP_ROUTE_IS_REAL_LOOP(ro) 0
  |  |  ------------------
  |  |  |  Branch (660:37): [Folded, False: 0]
  |  |  ------------------
  ------------------
 3503|      2|#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|      2|			dest_is_loop = 1;
 3511|      2|			if (net != NULL) {
  ------------------
  |  Branch (3511:8): [True: 2, False: 0]
  ------------------
 3512|       |				/* mark it as local */
 3513|      2|				net->addr_is_local = 1;
 3514|      2|			}
 3515|  2.35k|		} else if (IN6_IS_ADDR_LINKLOCAL(&to6->sin6_addr)) {
  ------------------
  |  Branch (3515:14): [True: 1.32k, False: 1.03k]
  ------------------
 3516|  1.32k|			dest_is_priv = 1;
 3517|  1.32k|		}
 3518|  2.35k|		break;
 3519|  3.44k|#endif
 3520|  3.44k|	}
 3521|  3.44k|	SCTPDBG(SCTP_DEBUG_OUTPUT2, "Select source addr for:");
 3522|  3.44k|	SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, (struct sockaddr *)&ro->ro_dst);
 3523|  3.44k|	SCTP_IPI_ADDR_RLOCK();
  ------------------
  |  |  597|  3.44k|	KASSERT(pthread_rwlock_rdlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  3.44k|	do {                         \
  |  |  |  |  113|  3.44k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 3.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|  3.44k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 3.44k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3524|  3.44k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUNDALL) {
  ------------------
  |  |  530|  3.44k|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  ------------------
  |  Branch (3524:6): [True: 0, False: 3.44k]
  ------------------
 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.44k|	if (stcb) {
  ------------------
  |  Branch (3537:6): [True: 3.44k, False: 0]
  ------------------
 3538|  3.44k|		answer = sctp_choose_boundspecific_stcb(inp, stcb, ro,
 3539|  3.44k|							vrf_id,	dest_is_priv,
 3540|  3.44k|							dest_is_loop,
 3541|  3.44k|							non_asoc_addr_ok, fam);
 3542|  3.44k|	} 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.44k|	SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|  3.44k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  3.44k|	do {                         \
  |  |  |  |  113|  3.44k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 3.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|  3.44k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 3.44k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3549|  3.44k|	return (answer);
 3550|  3.44k|}
sctp_send_initiate:
 5065|  26.4k|{
 5066|  26.4k|	struct mbuf *m, *m_last;
 5067|  26.4k|	struct sctp_nets *net;
 5068|  26.4k|	struct sctp_init_chunk *init;
 5069|  26.4k|	struct sctp_supported_addr_param *sup_addr;
 5070|  26.4k|	struct sctp_adaptation_layer_indication *ali;
 5071|  26.4k|	struct sctp_zero_checksum_acceptable *zero_chksum;
 5072|  26.4k|	struct sctp_supported_chunk_types_param *pr_supported;
 5073|  26.4k|	struct sctp_paramhdr *ph;
 5074|  26.4k|	int cnt_inits_to = 0;
 5075|  26.4k|	int error;
 5076|  26.4k|	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|  26.4k|	net = stcb->asoc.primary_destination;
 5087|  26.4k|	if (net == NULL) {
  ------------------
  |  Branch (5087:6): [True: 0, False: 26.4k]
  ------------------
 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|  26.4k|	} else {
 5097|       |		/* we confirm any address we send an INIT to */
 5098|  26.4k|		net->dest_state &= ~SCTP_ADDR_UNCONFIRMED;
  ------------------
  |  |  487|  26.4k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
 5099|  26.4k|	}
 5100|  26.4k|	SCTPDBG(SCTP_DEBUG_OUTPUT4, "Sending INIT\n");
 5101|  26.4k|#ifdef INET6
 5102|  26.4k|	if (net->ro._l_addr.sa.sa_family == AF_INET6) {
  ------------------
  |  Branch (5102:6): [True: 1.74k, False: 24.6k]
  ------------------
 5103|       |		/*
 5104|       |		 * special hook, if we are sending to link local it will not
 5105|       |		 * show up in our private address count.
 5106|       |		 */
 5107|  1.74k|		if (IN6_IS_ADDR_LINKLOCAL(&net->ro._l_addr.sin6.sin6_addr))
  ------------------
  |  Branch (5107:7): [True: 1.74k, False: 0]
  ------------------
 5108|  1.74k|			cnt_inits_to = 1;
 5109|  1.74k|	}
 5110|  26.4k|#endif
 5111|  26.4k|	if (SCTP_OS_TIMER_PENDING(&net->rxt_timer.timer)) {
  ------------------
  |  |  102|  26.4k|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|  26.4k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 8.76k, False: 17.6k]
  |  |  ------------------
  ------------------
 5112|       |		/* This case should not happen */
 5113|  8.76k|		SCTPDBG(SCTP_DEBUG_OUTPUT4, "Sending INIT - failed timer?\n");
 5114|  8.76k|		return;
 5115|  8.76k|	}
 5116|       |	/* start the INIT timer */
 5117|  17.6k|	sctp_timer_start(SCTP_TIMER_TYPE_INIT, inp, stcb, net);
  ------------------
  |  |  533|  17.6k|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
 5118|       |
 5119|  17.6k|	m = sctp_get_mbuf_for_msg(MCLBYTES, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|  17.6k|#define MCLBYTES 2048
  ------------------
              	m = sctp_get_mbuf_for_msg(MCLBYTES, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  17.6k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m = sctp_get_mbuf_for_msg(MCLBYTES, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  17.6k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5120|  17.6k|	if (m == NULL) {
  ------------------
  |  Branch (5120:6): [True: 0, False: 17.6k]
  ------------------
 5121|       |		/* No memory, INIT timer will re-attempt. */
 5122|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT4, "Sending INIT - mbuf?\n");
 5123|      0|		return;
 5124|      0|	}
 5125|  17.6k|	chunk_len = (uint16_t)sizeof(struct sctp_init_chunk);
 5126|  17.6k|	padding_len = 0;
 5127|       |	/* Now lets put the chunk header in place */
 5128|  17.6k|	init = mtod(m, struct sctp_init_chunk *);
  ------------------
  |  |   96|  17.6k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  17.6k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5129|       |	/* now the chunk header */
 5130|  17.6k|	init->ch.chunk_type = SCTP_INITIATION;
  ------------------
  |  |  455|  17.6k|#define SCTP_INITIATION		0x01
  ------------------
 5131|  17.6k|	init->ch.chunk_flags = 0;
 5132|       |	/* fill in later from mbuf we build */
 5133|  17.6k|	init->ch.chunk_length = 0;
 5134|       |	/* place in my tag */
 5135|  17.6k|	init->init.initiate_tag = htonl(stcb->asoc.my_vtag);
 5136|       |	/* set up some of the credits. */
 5137|  17.6k|	init->init.a_rwnd = htonl(max(inp->sctp_socket?SCTP_SB_LIMIT_RCV(inp->sctp_socket):0,
  ------------------
  |  Branch (5137:22): [True: 17.6k, False: 0]
  |  Branch (5137:22): [True: 17.6k, False: 0]
  |  Branch (5137:22): [True: 17.6k, False: 0]
  ------------------
 5138|  17.6k|	                              SCTP_MINIMAL_RWND));
 5139|  17.6k|	init->init.num_outbound_streams = htons(stcb->asoc.pre_open_streams);
 5140|  17.6k|	init->init.num_inbound_streams = htons(stcb->asoc.max_inbound_streams);
 5141|  17.6k|	init->init.initial_tsn = htonl(stcb->asoc.init_seq_number);
 5142|       |
 5143|       |	/* Adaptation layer indication parameter */
 5144|  17.6k|	if (inp->sctp_ep.adaptation_layer_indicator_provided) {
  ------------------
  |  Branch (5144:6): [True: 0, False: 17.6k]
  ------------------
 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|  17.6k|	if (stcb->asoc.ecn_supported == 1) {
  ------------------
  |  Branch (5154:6): [True: 17.6k, False: 0]
  ------------------
 5155|  17.6k|		parameter_len = (uint16_t)sizeof(struct sctp_paramhdr);
 5156|  17.6k|		ph = (struct sctp_paramhdr *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|  17.6k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  17.6k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5157|  17.6k|		ph->param_type = htons(SCTP_ECN_CAPABLE);
 5158|  17.6k|		ph->param_length = htons(parameter_len);
 5159|  17.6k|		chunk_len += parameter_len;
 5160|  17.6k|	}
 5161|       |
 5162|       |	/* PR-SCTP supported parameter */
 5163|  17.6k|	if (stcb->asoc.prsctp_supported == 1) {
  ------------------
  |  Branch (5163:6): [True: 17.2k, False: 424]
  ------------------
 5164|  17.2k|		parameter_len = (uint16_t)sizeof(struct sctp_paramhdr);
 5165|  17.2k|		ph = (struct sctp_paramhdr *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|  17.2k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  17.2k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5166|  17.2k|		ph->param_type = htons(SCTP_PRSCTP_SUPPORTED);
 5167|  17.2k|		ph->param_length = htons(parameter_len);
 5168|  17.2k|		chunk_len += parameter_len;
 5169|  17.2k|	}
 5170|       |
 5171|       |	/* Zero checksum acceptable parameter */
 5172|  17.6k|	if (stcb->asoc.rcv_edmid != SCTP_EDMID_NONE) {
  ------------------
  |  |  809|  17.6k|#define SCTP_EDMID_NONE             0
  ------------------
  |  Branch (5172:6): [True: 0, False: 17.6k]
  ------------------
 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|  17.6k|	if (SCTP_BASE_SYSCTL(sctp_inits_include_nat_friendly)) {
  ------------------
  |  |  590|  17.6k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 0, False: 17.6k]
  |  |  ------------------
  ------------------
 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|  17.6k|	num_ext = 0;
 5192|  17.6k|	pr_supported = (struct sctp_supported_chunk_types_param *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|  17.6k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  17.6k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5193|  17.6k|	if (stcb->asoc.prsctp_supported == 1) {
  ------------------
  |  Branch (5193:6): [True: 17.2k, False: 424]
  ------------------
 5194|  17.2k|		pr_supported->chunk_types[num_ext++] = SCTP_FORWARD_CUM_TSN;
  ------------------
  |  |  487|  17.2k|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
 5195|  17.2k|		if (stcb->asoc.idata_supported) {
  ------------------
  |  Branch (5195:7): [True: 9.06k, False: 8.18k]
  ------------------
 5196|  9.06k|			pr_supported->chunk_types[num_ext++] = SCTP_IFORWARD_CUM_TSN;
  ------------------
  |  |  490|  9.06k|#define SCTP_IFORWARD_CUM_TSN	0xc2
  ------------------
 5197|  9.06k|		}
 5198|  17.2k|	}
 5199|  17.6k|	if (stcb->asoc.auth_supported == 1) {
  ------------------
  |  Branch (5199:6): [True: 17.6k, False: 0]
  ------------------
 5200|  17.6k|		pr_supported->chunk_types[num_ext++] = SCTP_AUTHENTICATION;
  ------------------
  |  |  470|  17.6k|#define SCTP_AUTHENTICATION     0x0f
  ------------------
 5201|  17.6k|	}
 5202|  17.6k|	if (stcb->asoc.asconf_supported == 1) {
  ------------------
  |  Branch (5202:6): [True: 16.0k, False: 1.62k]
  ------------------
 5203|  16.0k|		pr_supported->chunk_types[num_ext++] = SCTP_ASCONF;
  ------------------
  |  |  489|  16.0k|#define SCTP_ASCONF		0xc1
  ------------------
 5204|  16.0k|		pr_supported->chunk_types[num_ext++] = SCTP_ASCONF_ACK;
  ------------------
  |  |  477|  16.0k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
 5205|  16.0k|	}
 5206|  17.6k|	if (stcb->asoc.reconfig_supported == 1) {
  ------------------
  |  Branch (5206:6): [True: 17.6k, False: 0]
  ------------------
 5207|  17.6k|		pr_supported->chunk_types[num_ext++] = SCTP_STREAM_RESET;
  ------------------
  |  |  481|  17.6k|#define SCTP_STREAM_RESET       0x82
  ------------------
 5208|  17.6k|	}
 5209|  17.6k|	if (stcb->asoc.idata_supported) {
  ------------------
  |  Branch (5209:6): [True: 9.14k, False: 8.53k]
  ------------------
 5210|  9.14k|		pr_supported->chunk_types[num_ext++] = SCTP_IDATA;
  ------------------
  |  |  474|  9.14k|#define SCTP_IDATA		0x40
  ------------------
 5211|  9.14k|	}
 5212|  17.6k|	if (stcb->asoc.nrsack_supported == 1) {
  ------------------
  |  Branch (5212:6): [True: 13.2k, False: 4.43k]
  ------------------
 5213|  13.2k|		pr_supported->chunk_types[num_ext++] = SCTP_NR_SELECTIVE_ACK;
  ------------------
  |  |  472|  13.2k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
 5214|  13.2k|	}
 5215|  17.6k|	if (stcb->asoc.pktdrop_supported == 1) {
  ------------------
  |  Branch (5215:6): [True: 13.2k, False: 4.43k]
  ------------------
 5216|  13.2k|		pr_supported->chunk_types[num_ext++] = SCTP_PACKET_DROPPED;
  ------------------
  |  |  479|  13.2k|#define SCTP_PACKET_DROPPED	0x81
  ------------------
 5217|  13.2k|	}
 5218|  17.6k|	if (num_ext > 0) {
  ------------------
  |  Branch (5218:6): [True: 17.6k, False: 0]
  ------------------
 5219|  17.6k|		parameter_len = (uint16_t)sizeof(struct sctp_supported_chunk_types_param) + num_ext;
 5220|  17.6k|		pr_supported->ph.param_type = htons(SCTP_SUPPORTED_CHUNK_EXT);
 5221|  17.6k|		pr_supported->ph.param_length = htons(parameter_len);
 5222|  17.6k|		padding_len = SCTP_SIZE32(parameter_len) - parameter_len;
  ------------------
  |  |  383|  17.6k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5223|  17.6k|		chunk_len += parameter_len;
 5224|  17.6k|	}
 5225|       |	/* add authentication parameters */
 5226|  17.6k|	if (stcb->asoc.auth_supported) {
  ------------------
  |  Branch (5226:6): [True: 17.6k, False: 0]
  ------------------
 5227|       |		/* attach RANDOM parameter, if available */
 5228|  17.6k|		if (stcb->asoc.authinfo.random != NULL) {
  ------------------
  |  Branch (5228:7): [True: 17.6k, False: 0]
  ------------------
 5229|  17.6k|			struct sctp_auth_random *randp;
 5230|       |
 5231|  17.6k|			if (padding_len > 0) {
  ------------------
  |  Branch (5231:8): [True: 17.4k, False: 213]
  ------------------
 5232|  17.4k|				memset(mtod(m, caddr_t) + chunk_len, 0, padding_len);
  ------------------
  |  |   96|  17.4k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  17.4k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5233|  17.4k|				chunk_len += padding_len;
 5234|  17.4k|				padding_len = 0;
 5235|  17.4k|			}
 5236|  17.6k|			randp = (struct sctp_auth_random *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|  17.6k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  17.6k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5237|  17.6k|			parameter_len = (uint16_t)sizeof(struct sctp_auth_random) + stcb->asoc.authinfo.random_len;
 5238|       |			/* random key already contains the header */
 5239|  17.6k|			memcpy(randp, stcb->asoc.authinfo.random->key, parameter_len);
 5240|  17.6k|			padding_len = SCTP_SIZE32(parameter_len) - parameter_len;
  ------------------
  |  |  383|  17.6k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5241|  17.6k|			chunk_len += parameter_len;
 5242|  17.6k|		}
 5243|       |		/* add HMAC_ALGO parameter */
 5244|  17.6k|		if (stcb->asoc.local_hmacs != NULL) {
  ------------------
  |  Branch (5244:7): [True: 17.6k, False: 0]
  ------------------
 5245|  17.6k|			struct sctp_auth_hmac_algo *hmacs;
 5246|       |
 5247|  17.6k|			if (padding_len > 0) {
  ------------------
  |  Branch (5247:8): [True: 0, False: 17.6k]
  ------------------
 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|  17.6k|			hmacs = (struct sctp_auth_hmac_algo *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|  17.6k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  17.6k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5253|  17.6k|			parameter_len = (uint16_t)(sizeof(struct sctp_auth_hmac_algo) +
 5254|  17.6k|			                           stcb->asoc.local_hmacs->num_algo * sizeof(uint16_t));
 5255|  17.6k|			hmacs->ph.param_type = htons(SCTP_HMAC_LIST);
 5256|  17.6k|			hmacs->ph.param_length = htons(parameter_len);
 5257|  17.6k|			sctp_serialize_hmaclist(stcb->asoc.local_hmacs, (uint8_t *)hmacs->hmac_ids);
 5258|  17.6k|			padding_len = SCTP_SIZE32(parameter_len) - parameter_len;
  ------------------
  |  |  383|  17.6k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5259|  17.6k|			chunk_len += parameter_len;
 5260|  17.6k|		}
 5261|       |		/* add CHUNKS parameter */
 5262|  17.6k|		if (stcb->asoc.local_auth_chunks != NULL) {
  ------------------
  |  Branch (5262:7): [True: 17.6k, False: 0]
  ------------------
 5263|  17.6k|			struct sctp_auth_chunk_list *chunks;
 5264|       |
 5265|  17.6k|			if (padding_len > 0) {
  ------------------
  |  Branch (5265:8): [True: 17.6k, False: 0]
  ------------------
 5266|  17.6k|				memset(mtod(m, caddr_t) + chunk_len, 0, padding_len);
  ------------------
  |  |   96|  17.6k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  17.6k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5267|  17.6k|				chunk_len += padding_len;
 5268|  17.6k|				padding_len = 0;
 5269|  17.6k|			}
 5270|  17.6k|			chunks = (struct sctp_auth_chunk_list *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|  17.6k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  17.6k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5271|  17.6k|			parameter_len = (uint16_t)(sizeof(struct sctp_auth_chunk_list) +
 5272|  17.6k|			                           sctp_auth_get_chklist_size(stcb->asoc.local_auth_chunks));
 5273|  17.6k|			chunks->ph.param_type = htons(SCTP_CHUNK_LIST);
 5274|  17.6k|			chunks->ph.param_length = htons(parameter_len);
 5275|  17.6k|			sctp_serialize_auth_chunks(stcb->asoc.local_auth_chunks, chunks->chunk_types);
 5276|  17.6k|			padding_len = SCTP_SIZE32(parameter_len) - parameter_len;
  ------------------
  |  |  383|  17.6k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5277|  17.6k|			chunk_len += parameter_len;
 5278|  17.6k|		}
 5279|  17.6k|	}
 5280|       |
 5281|       |	/* now any cookie time extensions */
 5282|  17.6k|	if (stcb->asoc.cookie_preserve_req > 0) {
  ------------------
  |  Branch (5282:6): [True: 67, False: 17.6k]
  ------------------
 5283|     67|		struct sctp_cookie_perserve_param *cookie_preserve;
 5284|       |
 5285|     67|		if (padding_len > 0) {
  ------------------
  |  Branch (5285:7): [True: 67, False: 0]
  ------------------
 5286|     67|			memset(mtod(m, caddr_t) + chunk_len, 0, padding_len);
  ------------------
  |  |   96|     67|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|     67|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5287|     67|			chunk_len += padding_len;
 5288|     67|			padding_len = 0;
 5289|     67|		}
 5290|     67|		parameter_len = (uint16_t)sizeof(struct sctp_cookie_perserve_param);
 5291|     67|		cookie_preserve = (struct sctp_cookie_perserve_param *)(mtod(m, caddr_t) + chunk_len);
  ------------------
  |  |   96|     67|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|     67|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5292|     67|		cookie_preserve->ph.param_type = htons(SCTP_COOKIE_PRESERVE);
 5293|     67|		cookie_preserve->ph.param_length = htons(parameter_len);
 5294|     67|		cookie_preserve->time = htonl(stcb->asoc.cookie_preserve_req);
 5295|     67|		stcb->asoc.cookie_preserve_req = 0;
 5296|     67|		chunk_len += parameter_len;
 5297|     67|	}
 5298|       |
 5299|  17.6k|	if (stcb->asoc.scope.ipv4_addr_legal || stcb->asoc.scope.ipv6_addr_legal) {
  ------------------
  |  Branch (5299:6): [True: 0, False: 17.6k]
  |  Branch (5299:42): [True: 0, False: 17.6k]
  ------------------
 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|  17.6k|	SCTP_BUF_LEN(m) = chunk_len;
  ------------------
  |  |  801|  17.6k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  17.6k|#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|  17.6k|	m_last = sctp_add_addresses_to_i_ia(inp, stcb, &stcb->asoc.scope,
 5337|  17.6k|	                                    m, cnt_inits_to,
 5338|  17.6k|	                                    &padding_len, &chunk_len);
 5339|       |
 5340|  17.6k|	init->ch.chunk_length = htons(chunk_len);
 5341|  17.6k|	if (padding_len > 0) {
  ------------------
  |  Branch (5341:6): [True: 17.6k, False: 67]
  ------------------
 5342|  17.6k|		if (sctp_add_pad_tombuf(m_last, padding_len) == NULL) {
  ------------------
  |  Branch (5342:7): [True: 0, False: 17.6k]
  ------------------
 5343|      0|			sctp_m_freem(m);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5344|      0|			return;
 5345|      0|		}
 5346|  17.6k|	}
 5347|  17.6k|	SCTPDBG(SCTP_DEBUG_OUTPUT4, "Sending INIT - calls lowlevel_output\n");
 5348|  17.6k|	if ((error = sctp_lowlevel_chunk_output(inp, stcb, net,
  ------------------
  |  Branch (5348:6): [True: 1.87k, False: 15.8k]
  ------------------
 5349|  17.6k|	                                        (struct sockaddr *)&net->ro._l_addr,
 5350|  17.6k|	                                        m, 0, NULL, 0, 0, 0, 0,
 5351|  17.6k|	                                        inp->sctp_lport, stcb->rport, htonl(0),
  ------------------
  |  |  426|  17.6k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  17.6k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  17.6k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5352|  17.6k|	                                        net->port, NULL,
 5353|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 5354|       |	                                        0, 0,
 5355|       |#endif
 5356|  17.6k|	                                        false, so_locked))) {
 5357|  1.87k|		SCTPDBG(SCTP_DEBUG_OUTPUT4, "Gak send error %d\n", error);
 5358|  1.87k|		if (error == ENOBUFS) {
  ------------------
  |  Branch (5358:7): [True: 0, False: 1.87k]
  ------------------
 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|  15.8k|	} else {
 5363|  15.8k|		stcb->asoc.ifp_had_enobuf = 0;
 5364|  15.8k|	}
 5365|  17.6k|	SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|  17.6k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  17.6k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  17.6k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  17.6k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5366|       |	(void)SCTP_GETTIME_TIMEVAL(&net->last_sent_time);
  ------------------
  |  |  991|  17.6k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 5367|  17.6k|}
sctp_arethere_unrecognized_parameters:
 5376|  9.20k|{
 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|  9.20k|	struct sctp_zero_checksum_acceptable zero_chksum, *zero_chksum_p;
 5392|  9.20k|	struct sctp_paramhdr *phdr, params;
 5393|  9.20k|	struct mbuf *mat, *m_tmp, *op_err, *op_err_last;
 5394|  9.20k|	int at, limit, pad_needed;
 5395|  9.20k|	uint16_t ptype, plen, padded_size;
 5396|       |
 5397|  9.20k|	*abort_processing = 0;
 5398|  9.20k|	if (cookie_found != NULL) {
  ------------------
  |  Branch (5398:6): [True: 9.20k, False: 0]
  ------------------
 5399|  9.20k|		*cookie_found = 0;
 5400|  9.20k|	}
 5401|  9.20k|	if (edmid != NULL) {
  ------------------
  |  Branch (5401:6): [True: 0, False: 9.20k]
  ------------------
 5402|      0|		*edmid = SCTP_EDMID_NONE;
  ------------------
  |  |  809|      0|#define SCTP_EDMID_NONE             0
  ------------------
 5403|      0|	}
 5404|  9.20k|	mat = in_initpkt;
 5405|  9.20k|	limit = ntohs(cp->chunk_length) - sizeof(struct sctp_init_chunk);
 5406|  9.20k|	at = param_offset;
 5407|  9.20k|	op_err = NULL;
 5408|  9.20k|	op_err_last = NULL;
 5409|  9.20k|	pad_needed = 0;
 5410|  9.20k|	SCTPDBG(SCTP_DEBUG_OUTPUT1, "Check for unrecognized param's\n");
 5411|  9.20k|	phdr = sctp_get_next_param(mat, at, &params, sizeof(params));
 5412|   141k|	while ((phdr != NULL) && ((size_t)limit >= sizeof(struct sctp_paramhdr))) {
  ------------------
  |  Branch (5412:9): [True: 132k, False: 8.88k]
  |  Branch (5412:27): [True: 132k, False: 23]
  ------------------
 5413|   132k|		ptype = ntohs(phdr->param_type);
 5414|   132k|		plen = ntohs(phdr->param_length);
 5415|   132k|		if ((plen > limit) || (plen < sizeof(struct sctp_paramhdr))) {
  ------------------
  |  Branch (5415:7): [True: 46, False: 132k]
  |  Branch (5415:25): [True: 13, False: 132k]
  ------------------
 5416|       |			/* wacked parameter */
 5417|     59|			SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error %d\n", plen);
 5418|     59|			goto invalid_size;
 5419|     59|		}
 5420|   132k|		limit -= SCTP_SIZE32(plen);
  ------------------
  |  |  383|   132k|#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|   132k|		padded_size = SCTP_SIZE32(plen);
  ------------------
  |  |  383|   132k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5429|   132k|		switch (ptype) {
 5430|       |			/* Param's with variable size */
 5431|    492|		case SCTP_HEARTBEAT_INFO:
  ------------------
  |  |  390|    492|#define SCTP_HEARTBEAT_INFO		0x0001
  ------------------
  |  Branch (5431:3): [True: 492, False: 132k]
  ------------------
 5432|  2.25k|		case SCTP_UNRECOG_PARAM:
  ------------------
  |  |  397|  2.25k|#define SCTP_UNRECOG_PARAM		0x0008
  ------------------
  |  Branch (5432:3): [True: 1.75k, False: 130k]
  ------------------
 5433|  3.85k|		case SCTP_ERROR_CAUSE_IND:
  ------------------
  |  |  432|  3.85k|#define SCTP_ERROR_CAUSE_IND		0xc003
  ------------------
  |  Branch (5433:3): [True: 1.60k, False: 130k]
  ------------------
 5434|       |			/* ok skip fwd */
 5435|  3.85k|			at += padded_size;
 5436|  3.85k|			break;
 5437|  10.9k|		case SCTP_STATE_COOKIE:
  ------------------
  |  |  396|  10.9k|#define SCTP_STATE_COOKIE		0x0007
  ------------------
  |  Branch (5437:3): [True: 10.9k, False: 121k]
  ------------------
 5438|  10.9k|			if (cookie_found != NULL) {
  ------------------
  |  Branch (5438:8): [True: 10.9k, False: 0]
  ------------------
 5439|  10.9k|				*cookie_found = 1;
 5440|  10.9k|			}
 5441|  10.9k|			at += padded_size;
 5442|  10.9k|			break;
 5443|       |			/* Param's with variable size within a range */
 5444|  11.2k|		case SCTP_CHUNK_LIST:
  ------------------
  |  |  420|  11.2k|#define SCTP_CHUNK_LIST			0x8003
  ------------------
  |  Branch (5444:3): [True: 11.2k, False: 121k]
  ------------------
 5445|  35.5k|		case SCTP_SUPPORTED_CHUNK_EXT:
  ------------------
  |  |  425|  35.5k|#define SCTP_SUPPORTED_CHUNK_EXT	0x8008
  ------------------
  |  Branch (5445:3): [True: 24.2k, False: 108k]
  ------------------
 5446|  35.5k|			if (padded_size > (sizeof(struct sctp_supported_chunk_types_param) + (sizeof(uint8_t) * SCTP_MAX_SUPPORTED_EXT))) {
  ------------------
  |  |  135|  35.5k|#define SCTP_MAX_SUPPORTED_EXT 256
  ------------------
  |  Branch (5446:8): [True: 1, False: 35.5k]
  ------------------
 5447|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error chklist %d\n", plen);
 5448|      1|				goto invalid_size;
 5449|      1|			}
 5450|  35.5k|			at += padded_size;
 5451|  35.5k|			break;
 5452|  1.75k|		case SCTP_SUPPORTED_ADDRTYPE:
  ------------------
  |  |  400|  1.75k|#define SCTP_SUPPORTED_ADDRTYPE		0x000c
  ------------------
  |  Branch (5452:3): [True: 1.75k, False: 130k]
  ------------------
 5453|  1.75k|			if (padded_size > SCTP_MAX_ADDR_PARAMS_SIZE) {
  ------------------
  |  |   86|  1.75k|#define SCTP_MAX_ADDR_PARAMS_SIZE 12
  ------------------
  |  Branch (5453:8): [True: 1, False: 1.75k]
  ------------------
 5454|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error supaddrtype %d\n", plen);
 5455|      1|				goto invalid_size;
 5456|      1|			}
 5457|  1.75k|			at += padded_size;
 5458|  1.75k|			break;
 5459|  1.20k|		case SCTP_ZERO_CHECKSUM_ACCEPTABLE:
  ------------------
  |  |  417|  1.20k|#define SCTP_ZERO_CHECKSUM_ACCEPTABLE	0x8001
  ------------------
  |  Branch (5459:3): [True: 1.20k, False: 131k]
  ------------------
 5460|  1.20k|			if (padded_size != sizeof(struct sctp_zero_checksum_acceptable)) {
  ------------------
  |  Branch (5460:8): [True: 1, False: 1.20k]
  ------------------
 5461|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error checksum acceptable %d\n", plen);
 5462|      1|				goto invalid_size;
 5463|      1|			}
 5464|  1.20k|			if (edmid != NULL) {
  ------------------
  |  Branch (5464:8): [True: 0, False: 1.20k]
  ------------------
 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.20k|			at += padded_size;
 5474|  1.20k|			break;
 5475|  8.20k|		case SCTP_RANDOM:
  ------------------
  |  |  419|  8.20k|#define SCTP_RANDOM			0x8002
  ------------------
  |  Branch (5475:3): [True: 8.20k, False: 124k]
  ------------------
 5476|  8.20k|			if (padded_size > (sizeof(struct sctp_auth_random) + SCTP_RANDOM_MAX_SIZE)) {
  ------------------
  |  |  514|  8.20k|#define SCTP_RANDOM_MAX_SIZE 256
  ------------------
  |  Branch (5476:8): [True: 1, False: 8.20k]
  ------------------
 5477|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error random %d\n", plen);
 5478|      1|				goto invalid_size;
 5479|      1|			}
 5480|  8.20k|			at += padded_size;
 5481|  8.20k|			break;
 5482|  1.41k|		case SCTP_SET_PRIM_ADDR:
  ------------------
  |  |  433|  1.41k|#define SCTP_SET_PRIM_ADDR		0xc004
  ------------------
  |  Branch (5482:3): [True: 1.41k, False: 131k]
  ------------------
 5483|  2.02k|		case SCTP_DEL_IP_ADDRESS:
  ------------------
  |  |  431|  2.02k|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (5483:3): [True: 609, False: 131k]
  ------------------
 5484|  3.52k|		case SCTP_ADD_IP_ADDRESS:
  ------------------
  |  |  430|  3.52k|#define SCTP_ADD_IP_ADDRESS		0xc001
  ------------------
  |  Branch (5484:3): [True: 1.50k, False: 131k]
  ------------------
 5485|  3.52k|			if ((padded_size != sizeof(struct sctp_asconf_addrv4_param)) &&
  ------------------
  |  Branch (5485:8): [True: 563, False: 2.95k]
  ------------------
 5486|    563|			    (padded_size != sizeof(struct sctp_asconf_addr_param))) {
  ------------------
  |  Branch (5486:8): [True: 7, False: 556]
  ------------------
 5487|      7|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error setprim %d\n", plen);
 5488|      7|				goto invalid_size;
 5489|      7|			}
 5490|  3.51k|			at += padded_size;
 5491|  3.51k|			break;
 5492|       |			/* Param's with a fixed size */
 5493|    183|		case SCTP_IPV4_ADDRESS:
  ------------------
  |  |  394|    183|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
  |  Branch (5493:3): [True: 183, False: 132k]
  ------------------
 5494|    183|			if (padded_size != sizeof(struct sctp_ipv4addr_param)) {
  ------------------
  |  Branch (5494:8): [True: 1, False: 182]
  ------------------
 5495|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error ipv4 addr %d\n", plen);
 5496|      1|				goto invalid_size;
 5497|      1|			}
 5498|    182|			at += padded_size;
 5499|    182|			break;
 5500|    106|		case SCTP_IPV6_ADDRESS:
  ------------------
  |  |  395|    106|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
  |  Branch (5500:3): [True: 106, False: 132k]
  ------------------
 5501|    106|			if (padded_size != sizeof(struct sctp_ipv6addr_param)) {
  ------------------
  |  Branch (5501:8): [True: 1, False: 105]
  ------------------
 5502|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error ipv6 addr %d\n", plen);
 5503|      1|				goto invalid_size;
 5504|      1|			}
 5505|    105|			at += padded_size;
 5506|    105|			break;
 5507|    638|		case SCTP_COOKIE_PRESERVE:
  ------------------
  |  |  398|    638|#define SCTP_COOKIE_PRESERVE		0x0009
  ------------------
  |  Branch (5507:3): [True: 638, False: 131k]
  ------------------
 5508|    638|			if (padded_size != sizeof(struct sctp_cookie_perserve_param)) {
  ------------------
  |  Branch (5508:8): [True: 3, False: 635]
  ------------------
 5509|      3|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error cookie-preserve %d\n", plen);
 5510|      3|				goto invalid_size;
 5511|      3|			}
 5512|    635|			at += padded_size;
 5513|    635|			break;
 5514|  3.12k|		case SCTP_HAS_NAT_SUPPORT:
  ------------------
  |  |  437|  3.12k|#define SCTP_HAS_NAT_SUPPORT		0xc007
  ------------------
  |  Branch (5514:3): [True: 3.12k, False: 129k]
  ------------------
 5515|  3.12k|			if (padded_size != sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (5515:8): [True: 1, False: 3.11k]
  ------------------
 5516|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error nat support %d\n", plen);
 5517|      1|				goto invalid_size;
 5518|      1|			}
 5519|  3.11k|			*nat_friendly = 1;
 5520|  3.11k|			at += padded_size;
 5521|  3.11k|			break;
 5522|  11.2k|		case SCTP_PRSCTP_SUPPORTED:
  ------------------
  |  |  428|  11.2k|#define SCTP_PRSCTP_SUPPORTED		0xc000
  ------------------
  |  Branch (5522:3): [True: 11.2k, False: 121k]
  ------------------
 5523|  11.2k|			if (padded_size != sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (5523:8): [True: 1, False: 11.2k]
  ------------------
 5524|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error prsctp %d\n", plen);
 5525|      1|				goto invalid_size;
 5526|      1|			}
 5527|  11.2k|			at += padded_size;
 5528|  11.2k|			break;
 5529|  14.3k|		case SCTP_ECN_CAPABLE:
  ------------------
  |  |  416|  14.3k|#define SCTP_ECN_CAPABLE		0x8000
  ------------------
  |  Branch (5529:3): [True: 14.3k, False: 118k]
  ------------------
 5530|  14.3k|			if (padded_size != sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (5530:8): [True: 2, False: 14.3k]
  ------------------
 5531|      2|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error ecn %d\n", plen);
 5532|      2|				goto invalid_size;
 5533|      2|			}
 5534|  14.3k|			at += padded_size;
 5535|  14.3k|			break;
 5536|  8.48k|		case SCTP_ULP_ADAPTATION:
  ------------------
  |  |  435|  8.48k|#define SCTP_ULP_ADAPTATION		0xc006
  ------------------
  |  Branch (5536:3): [True: 8.48k, False: 124k]
  ------------------
 5537|  8.48k|			if (padded_size != sizeof(struct sctp_adaptation_layer_indication)) {
  ------------------
  |  Branch (5537:8): [True: 1, False: 8.48k]
  ------------------
 5538|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error adapatation %d\n", plen);
 5539|      1|				goto invalid_size;
 5540|      1|			}
 5541|  8.48k|			at += padded_size;
 5542|  8.48k|			break;
 5543|    454|		case SCTP_SUCCESS_REPORT:
  ------------------
  |  |  434|    454|#define SCTP_SUCCESS_REPORT		0xc005
  ------------------
  |  Branch (5543:3): [True: 454, False: 132k]
  ------------------
 5544|    454|			if (padded_size != sizeof(struct sctp_asconf_paramhdr)) {
  ------------------
  |  Branch (5544:8): [True: 1, False: 453]
  ------------------
 5545|      1|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "Invalid size - error success %d\n", plen);
 5546|      1|				goto invalid_size;
 5547|      1|			}
 5548|    453|			at += padded_size;
 5549|    453|			break;
 5550|      8|		case SCTP_HOSTNAME_ADDRESS:
  ------------------
  |  |  399|      8|#define SCTP_HOSTNAME_ADDRESS		0x000b
  ------------------
  |  Branch (5550:3): [True: 8, False: 132k]
  ------------------
 5551|      8|		{
 5552|       |			/* Hostname parameters are deprecated. */
 5553|      8|			struct sctp_gen_error_cause *cause;
 5554|      8|			int l_len;
 5555|       |
 5556|      8|			SCTPDBG(SCTP_DEBUG_OUTPUT1, "Can't handle hostname addresses.. abort processing\n");
 5557|      8|			*abort_processing = 1;
 5558|      8|			sctp_m_freem(op_err);
  ------------------
  |  |   52|      8|#define sctp_m_freem m_freem
  ------------------
 5559|      8|			op_err = NULL;
 5560|      8|			op_err_last = NULL;
 5561|      8|#ifdef INET6
 5562|      8|			l_len = SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|      8|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|      8|                           sizeof(struct sctphdr))
  ------------------
 5563|       |#else
 5564|       |			l_len = SCTP_MIN_V4_OVERHEAD;
 5565|       |#endif
 5566|      8|			l_len += sizeof(struct sctp_chunkhdr);
 5567|      8|			l_len += sizeof(struct sctp_gen_error_cause);
 5568|      8|			op_err = sctp_get_mbuf_for_msg(l_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|      8|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              			op_err = sctp_get_mbuf_for_msg(l_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|      8|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5569|      8|			if (op_err != NULL) {
  ------------------
  |  Branch (5569:8): [True: 8, False: 0]
  ------------------
 5570|       |				/*
 5571|       |				 * Pre-reserve space for IP, SCTP, and
 5572|       |				 * chunk header.
 5573|       |				 */
 5574|      8|#ifdef INET6
 5575|      8|				SCTP_BUF_RESV_UF(op_err, sizeof(struct ip6_hdr));
  ------------------
  |  |  804|      8|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|      8|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5576|       |#else
 5577|       |				SCTP_BUF_RESV_UF(op_err, sizeof(struct ip));
 5578|       |#endif
 5579|      8|				SCTP_BUF_RESV_UF(op_err, sizeof(struct sctphdr));
  ------------------
  |  |  804|      8|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|      8|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5580|      8|				SCTP_BUF_RESV_UF(op_err, sizeof(struct sctp_chunkhdr));
  ------------------
  |  |  804|      8|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|      8|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5581|      8|				SCTP_BUF_LEN(op_err) = sizeof(struct sctp_gen_error_cause);
  ------------------
  |  |  801|      8|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      8|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5582|      8|				cause = mtod(op_err, struct sctp_gen_error_cause *);
  ------------------
  |  |   96|      8|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      8|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5583|      8|				cause->code = htons(SCTP_CAUSE_UNRESOLVABLE_ADDR);
 5584|      8|				cause->length = htons((uint16_t)(sizeof(struct sctp_gen_error_cause) + plen));
 5585|      8|				SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(mat, at, plen, M_NOWAIT);
  ------------------
  |  |  802|      8|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      8|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
              				SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(mat, at, plen, M_NOWAIT);
  ------------------
  |  |  770|      8|#define SCTP_M_COPYM	m_copym
  ------------------
              				SCTP_BUF_NEXT(op_err) = SCTP_M_COPYM(mat, at, plen, M_NOWAIT);
  ------------------
  |  |   60|      8|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 5586|      8|				if (SCTP_BUF_NEXT(op_err) == NULL) {
  ------------------
  |  |  802|      8|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|      8|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (5586:9): [True: 0, False: 8]
  ------------------
 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|      8|			}
 5592|      8|			return (op_err);
 5593|    454|		}
 5594|  28.9k|		default:
  ------------------
  |  Branch (5594:3): [True: 28.9k, False: 103k]
  ------------------
 5595|       |			/*
 5596|       |			 * we do not recognize the parameter figure out what
 5597|       |			 * we do.
 5598|       |			 */
 5599|  28.9k|			SCTPDBG(SCTP_DEBUG_OUTPUT1, "Hit default param %x\n", ptype);
 5600|  28.9k|			if ((ptype & 0x4000) == 0x4000) {
  ------------------
  |  Branch (5600:8): [True: 11.3k, False: 17.5k]
  ------------------
 5601|       |				/* Report bit is set?? */
 5602|  11.3k|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "report op err\n");
 5603|  11.3k|				if (op_err == NULL) {
  ------------------
  |  Branch (5603:9): [True: 383, False: 10.9k]
  ------------------
 5604|    383|					int l_len;
 5605|       |					/* Ok need to try to get an mbuf */
 5606|    383|#ifdef INET6
 5607|    383|					l_len = SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|    383|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|    383|                           sizeof(struct sctphdr))
  ------------------
 5608|       |#else
 5609|       |					l_len = SCTP_MIN_V4_OVERHEAD;
 5610|       |#endif
 5611|    383|					l_len += sizeof(struct sctp_chunkhdr);
 5612|    383|					l_len += sizeof(struct sctp_paramhdr);
 5613|    383|					op_err = sctp_get_mbuf_for_msg(l_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    383|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              					op_err = sctp_get_mbuf_for_msg(l_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    383|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5614|    383|					if (op_err) {
  ------------------
  |  Branch (5614:10): [True: 383, False: 0]
  ------------------
 5615|    383|						SCTP_BUF_LEN(op_err) = 0;
  ------------------
  |  |  801|    383|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    383|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5616|    383|#ifdef INET6
 5617|    383|						SCTP_BUF_RESV_UF(op_err, sizeof(struct ip6_hdr));
  ------------------
  |  |  804|    383|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    383|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5618|       |#else
 5619|       |						SCTP_BUF_RESV_UF(op_err, sizeof(struct ip));
 5620|       |#endif
 5621|    383|						SCTP_BUF_RESV_UF(op_err, sizeof(struct sctphdr));
  ------------------
  |  |  804|    383|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    383|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5622|    383|						SCTP_BUF_RESV_UF(op_err, sizeof(struct sctp_chunkhdr));
  ------------------
  |  |  804|    383|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    383|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5623|    383|						op_err_last = op_err;
 5624|    383|					}
 5625|    383|				}
 5626|  11.3k|				if (op_err != NULL) {
  ------------------
  |  Branch (5626:9): [True: 11.3k, False: 0]
  ------------------
 5627|       |					/* If we have space */
 5628|  11.3k|					struct sctp_paramhdr *param;
 5629|       |
 5630|  11.3k|					if (pad_needed > 0) {
  ------------------
  |  Branch (5630:10): [True: 3.55k, False: 7.79k]
  ------------------
 5631|  3.55k|						op_err_last = sctp_add_pad_tombuf(op_err_last, pad_needed);
 5632|  3.55k|					}
 5633|  11.3k|					if (op_err_last == NULL) {
  ------------------
  |  Branch (5633:10): [True: 0, False: 11.3k]
  ------------------
 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.3k|					if (M_TRAILINGSPACE(op_err_last) < (int)sizeof(struct sctp_paramhdr)) {
  ------------------
  |  |  355|  11.3k|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|  11.3k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|  11.3k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (355:3): [True: 5.79k, False: 5.55k]
  |  |  ------------------
  |  |  356|  11.3k|	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  326|  5.79k|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  5.79k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|  5.79k|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 5.79k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|  5.79k|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  5.79k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|  5.79k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 5.79k]
  |  |  |  |  ------------------
  |  |  |  |  328|  5.79k|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|  5.79k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 0, False: 5.79k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (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|  5.79k|		- ((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.3k|	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  227|  5.55k|#define	m_dat		M_dat.M_databuf
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  138|  5.55k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  5.55k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  219|  5.55k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  218|  5.55k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (5639:10): [True: 5.79k, False: 5.55k]
  ------------------
 5640|  5.79k|						m_tmp = sctp_get_mbuf_for_msg(sizeof(struct sctp_paramhdr), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  5.79k|#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|  5.79k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5641|  5.79k|						if (m_tmp == NULL) {
  ------------------
  |  Branch (5641:11): [True: 0, False: 5.79k]
  ------------------
 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|  5.79k|						SCTP_BUF_LEN(m_tmp) = 0;
  ------------------
  |  |  801|  5.79k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  5.79k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5648|  5.79k|						SCTP_BUF_NEXT(m_tmp) = NULL;
  ------------------
  |  |  802|  5.79k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  5.79k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 5649|  5.79k|						SCTP_BUF_NEXT(op_err_last) = m_tmp;
  ------------------
  |  |  802|  5.79k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  5.79k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 5650|  5.79k|						op_err_last = m_tmp;
 5651|  5.79k|					}
 5652|  11.3k|					param = (struct sctp_paramhdr *)(mtod(op_err_last, caddr_t) + SCTP_BUF_LEN(op_err_last));
  ------------------
  |  |   96|  11.3k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  11.3k|#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.3k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  11.3k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5653|  11.3k|					param->param_type = htons(SCTP_UNRECOG_PARAM);
 5654|  11.3k|					param->param_length = htons((uint16_t)sizeof(struct sctp_paramhdr) + plen);
 5655|  11.3k|					SCTP_BUF_LEN(op_err_last) += sizeof(struct sctp_paramhdr);
  ------------------
  |  |  801|  11.3k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  11.3k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5656|  11.3k|					SCTP_BUF_NEXT(op_err_last) = SCTP_M_COPYM(mat, at, plen, M_NOWAIT);
  ------------------
  |  |  802|  11.3k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  11.3k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
              					SCTP_BUF_NEXT(op_err_last) = SCTP_M_COPYM(mat, at, plen, M_NOWAIT);
  ------------------
  |  |  770|  11.3k|#define SCTP_M_COPYM	m_copym
  ------------------
              					SCTP_BUF_NEXT(op_err_last) = SCTP_M_COPYM(mat, at, plen, M_NOWAIT);
  ------------------
  |  |   60|  11.3k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 5657|  11.3k|					if (SCTP_BUF_NEXT(op_err_last) == NULL) {
  ------------------
  |  |  802|  11.3k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  11.3k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (5657:10): [True: 0, False: 11.3k]
  ------------------
 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.3k|					} else {
 5663|  22.7k|						while (SCTP_BUF_NEXT(op_err_last) != NULL) {
  ------------------
  |  |  802|  22.7k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  22.7k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (5663:14): [True: 11.4k, False: 11.3k]
  ------------------
 5664|  11.4k|							op_err_last = SCTP_BUF_NEXT(op_err_last);
  ------------------
  |  |  802|  11.4k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  11.4k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 5665|  11.4k|						}
 5666|  11.3k|					}
 5667|  11.3k|					if (plen % 4 != 0) {
  ------------------
  |  Branch (5667:10): [True: 3.64k, False: 7.70k]
  ------------------
 5668|  3.64k|						pad_needed = 4 - (plen % 4);
 5669|  7.70k|					} else {
 5670|  7.70k|						pad_needed = 0;
 5671|  7.70k|					}
 5672|  11.3k|				}
 5673|  11.3k|			}
 5674|  28.9k|		more_processing:
 5675|  28.9k|			if ((ptype & 0x8000) == 0x0000) {
  ------------------
  |  Branch (5675:8): [True: 211, False: 28.7k]
  ------------------
 5676|    211|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "stop proc\n");
 5677|    211|				return (op_err);
 5678|  28.7k|			} else {
 5679|       |				/* skip this chunk and continue processing */
 5680|  28.7k|				SCTPDBG(SCTP_DEBUG_OUTPUT1, "move on\n");
 5681|  28.7k|				at += SCTP_SIZE32(plen);
  ------------------
  |  |  383|  28.7k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 5682|  28.7k|			}
 5683|  28.7k|			break;
 5684|   132k|		}
 5685|   132k|		phdr = sctp_get_next_param(mat, at, &params, sizeof(params));
 5686|   132k|	}
 5687|  8.90k|	return (op_err);
 5688|     81| invalid_size:
 5689|     81|	SCTPDBG(SCTP_DEBUG_OUTPUT1, "abort flag set\n");
 5690|     81|	*abort_processing = 1;
 5691|     81|	sctp_m_freem(op_err);
  ------------------
  |  |   52|     81|#define sctp_m_freem m_freem
  ------------------
 5692|     81|	op_err = NULL;
 5693|     81|	op_err_last = NULL;
 5694|     81|	if (phdr != NULL) {
  ------------------
  |  Branch (5694:6): [True: 81, False: 0]
  ------------------
 5695|     81|		struct sctp_paramhdr *param;
 5696|     81|		int l_len;
 5697|     81|#ifdef INET6
 5698|     81|		l_len = SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|     81|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|     81|                           sizeof(struct sctphdr))
  ------------------
 5699|       |#else
 5700|       |		l_len = SCTP_MIN_V4_OVERHEAD;
 5701|       |#endif
 5702|     81|		l_len += sizeof(struct sctp_chunkhdr);
 5703|     81|		l_len += (2 * sizeof(struct sctp_paramhdr));
 5704|     81|		op_err = sctp_get_mbuf_for_msg(l_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|     81|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		op_err = sctp_get_mbuf_for_msg(l_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|     81|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5705|     81|		if (op_err) {
  ------------------
  |  Branch (5705:7): [True: 81, False: 0]
  ------------------
 5706|     81|			SCTP_BUF_LEN(op_err) = 0;
  ------------------
  |  |  801|     81|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     81|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5707|     81|#ifdef INET6
 5708|     81|			SCTP_BUF_RESV_UF(op_err, sizeof(struct ip6_hdr));
  ------------------
  |  |  804|     81|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|     81|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5709|       |#else
 5710|       |			SCTP_BUF_RESV_UF(op_err, sizeof(struct ip));
 5711|       |#endif
 5712|     81|			SCTP_BUF_RESV_UF(op_err, sizeof(struct sctphdr));
  ------------------
  |  |  804|     81|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|     81|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5713|     81|			SCTP_BUF_RESV_UF(op_err, sizeof(struct sctp_chunkhdr));
  ------------------
  |  |  804|     81|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|     81|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5714|     81|			SCTP_BUF_LEN(op_err) = 2 * sizeof(struct sctp_paramhdr);
  ------------------
  |  |  801|     81|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     81|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5715|     81|			param = mtod(op_err, struct sctp_paramhdr *);
  ------------------
  |  |   96|     81|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|     81|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5716|     81|			param->param_type = htons(SCTP_CAUSE_PROTOCOL_VIOLATION);
 5717|     81|			param->param_length = htons(2 * sizeof(struct sctp_paramhdr));
 5718|     81|			param++;
 5719|     81|			param->param_type = htons(ptype);
 5720|       |			param->param_length = htons(plen);
 5721|     81|		}
 5722|     81|	}
 5723|     81|	return (op_err);
 5724|  9.20k|}
sctp_get_frag_point:
 6860|  35.6k|{
 6861|  35.6k|	struct sctp_association *asoc;
 6862|  35.6k|	uint32_t frag_point, overhead;
 6863|       |
 6864|  35.6k|	asoc = &stcb->asoc;
 6865|       |	/* Consider IP header and SCTP common header. */
 6866|  35.6k|	if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) {
  ------------------
  |  |  544|  35.6k|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (6866:6): [True: 0, False: 35.6k]
  ------------------
 6867|      0|		overhead = SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|      0|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|      0|                           sizeof(struct sctphdr))
  ------------------
 6868|  35.6k|	} else {
 6869|  35.6k|#if defined(__Userspace__)
 6870|  35.6k|		if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_BOUND_CONN) {
  ------------------
  |  |  550|  35.6k|#define SCTP_PCB_FLAGS_BOUND_CONN       0x80000000
  ------------------
  |  Branch (6870:7): [True: 35.6k, False: 0]
  ------------------
 6871|  35.6k|			overhead = sizeof(struct sctphdr);
 6872|  35.6k|		} 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|  35.6k|	}
 6879|       |	/* Consider DATA/IDATA chunk header and AUTH header, if needed. */
 6880|  35.6k|	if (asoc->idata_supported) {
  ------------------
  |  Branch (6880:6): [True: 18.7k, False: 16.8k]
  ------------------
 6881|  18.7k|		overhead += sizeof(struct sctp_idata_chunk);
 6882|  18.7k|		if (sctp_auth_is_required_chunk(SCTP_IDATA, asoc->peer_auth_chunks)) {
  ------------------
  |  |  100|  18.7k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 22, False: 18.7k]
  |  |  |  Branch (100:51): [True: 746, False: 18.0k]
  |  |  ------------------
  ------------------
 6883|     22|			overhead += sctp_get_auth_chunk_len(asoc->peer_hmac_id);
 6884|     22|		}
 6885|  18.7k|	} else {
 6886|  16.8k|		overhead += sizeof(struct sctp_data_chunk);
 6887|  16.8k|		if (sctp_auth_is_required_chunk(SCTP_DATA, asoc->peer_auth_chunks)) {
  ------------------
  |  |  100|  16.8k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 36, False: 16.8k]
  |  |  |  Branch (100:51): [True: 1.52k, False: 15.3k]
  |  |  ------------------
  ------------------
 6888|     36|			overhead += sctp_get_auth_chunk_len(asoc->peer_hmac_id);
 6889|     36|		}
 6890|  16.8k|	}
 6891|  35.6k|	KASSERT(overhead % 4 == 0,
  ------------------
  |  |  112|  35.6k|	do {                         \
  |  |  113|  35.6k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 35.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|  35.6k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 35.6k]
  |  |  ------------------
  ------------------
 6892|  35.6k|	        ("overhead (%u) not a multiple of 4", overhead));
 6893|       |	/* Consider padding. */
 6894|  35.6k|	if (asoc->smallest_mtu % 4 > 0) {
  ------------------
  |  Branch (6894:6): [True: 0, False: 35.6k]
  ------------------
 6895|      0|		overhead += (asoc->smallest_mtu % 4);
 6896|      0|	}
 6897|  35.6k|	KASSERT(asoc->smallest_mtu > overhead,
  ------------------
  |  |  112|  35.6k|	do {                         \
  |  |  113|  35.6k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 35.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|  35.6k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 35.6k]
  |  |  ------------------
  ------------------
 6898|  35.6k|	        ("Association MTU (%u) too small for overhead (%u)",
 6899|  35.6k|	         asoc->smallest_mtu, overhead));
 6900|  35.6k|	frag_point = asoc->smallest_mtu - overhead;
 6901|  35.6k|	KASSERT(frag_point % 4 == 0,
  ------------------
  |  |  112|  35.6k|	do {                         \
  |  |  113|  35.6k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 35.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|  35.6k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 35.6k]
  |  |  ------------------
  ------------------
 6902|  35.6k|	        ("frag_point (%u) not a multiple of 4", frag_point));
 6903|       |	/* Honor MAXSEG socket option. */
 6904|  35.6k|	if ((asoc->sctp_frag_point > 0) &&
  ------------------
  |  Branch (6904:6): [True: 0, False: 35.6k]
  ------------------
 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|  35.6k|	return (frag_point);
 6909|  35.6k|}
sctp_toss_old_cookies:
 7573|  22.0k|{
 7574|  22.0k|	struct sctp_tmit_chunk *chk, *nchk;
 7575|       |
 7576|  4.89M|	TAILQ_FOREACH_SAFE(chk, &asoc->control_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  22.0k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  4.91M|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 4.89M, False: 22.0k]
  |  |  |  Branch (1130:24): [True: 4.89M, False: 0]
  |  |  ------------------
  |  | 1131|  4.89M|              (var) = (tvar))
  ------------------
 7577|  4.89M|		if (chk->rec.chunk_id.id == SCTP_COOKIE_ECHO) {
  ------------------
  |  |  464|  4.89M|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (7577:7): [True: 5.90k, False: 4.88M]
  ------------------
 7578|  5.90k|			TAILQ_REMOVE(&asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (7578:4): [True: 852, False: 5.04k]
  |  Branch (7578:4): [Folded, False: 5.90k]
  ------------------
 7579|  5.90k|			asoc->ctrl_queue_cnt--;
 7580|  5.90k|			if (chk->data) {
  ------------------
  |  Branch (7580:8): [True: 5.90k, False: 0]
  ------------------
 7581|  5.90k|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|  5.90k|#define sctp_m_freem m_freem
  ------------------
 7582|  5.90k|				chk->data = NULL;
 7583|  5.90k|			}
 7584|  5.90k|			sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  143|  5.90k|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|  5.90k|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 5.90k]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|  5.90k|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 5.90k, False: 0]
  |  |  ------------------
  |  |  149|  5.90k|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|  5.90k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.90k|	do {                         \
  |  |  |  |  |  |  113|  5.90k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.90k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.90k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.90k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|  5.90k|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 5.90k, False: 0]
  |  |  ------------------
  |  |  151|  5.90k|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|  5.90k|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|  5.90k|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 5.90k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|  5.90k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|  5.90k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|  5.90k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 5.90k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  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.90k|	} \
  |  |  |  |  245|  5.90k|}
  |  |  ------------------
  |  |  152|  5.90k|			(_chk)->whoTo = NULL; \
  |  |  153|  5.90k|		} \
  |  |  154|  5.90k|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|  5.90k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 5.90k]
  |  |  ------------------
  |  |  155|  5.90k|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|  5.90k|#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.90k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 5.90k]
  |  |  ------------------
  |  |  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.90k|		} else { \
  |  |  159|  5.90k|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|  5.90k|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|  5.90k|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|  5.90k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|  5.90k|		} \
  |  |  163|  5.90k|	} 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.90k|}
  ------------------
  |  Branch (7584:4): [Folded, False: 5.90k]
  ------------------
 7585|  5.90k|		}
 7586|  4.89M|	}
 7587|  22.0k|}
sctp_toss_old_asconf:
 7591|    773|{
 7592|    773|	struct sctp_association *asoc;
 7593|    773|	struct sctp_tmit_chunk *chk, *nchk;
 7594|    773|	struct sctp_asconf_chunk *acp;
 7595|       |
 7596|    773|	asoc = &stcb->asoc;
 7597|    773|	TAILQ_FOREACH_SAFE(chk, &asoc->asconf_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|    773|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|    773|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 773]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|    773|              (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|    773|}
sctp_move_chunks_from_net:
 8369|  1.91k|{
 8370|  1.91k|	struct sctp_association *asoc;
 8371|  1.91k|	struct sctp_tmit_chunk *chk;
 8372|  1.91k|	struct sctp_stream_queue_pending *sp;
 8373|  1.91k|	unsigned int i;
 8374|       |
 8375|  1.91k|	if (net == NULL) {
  ------------------
  |  Branch (8375:6): [True: 0, False: 1.91k]
  ------------------
 8376|      0|		return;
 8377|      0|	}
 8378|  1.91k|	asoc = &stcb->asoc;
 8379|   493k|	for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (8379:14): [True: 491k, False: 1.91k]
  ------------------
 8380|   491k|		TAILQ_FOREACH(sp, &stcb->asoc.strmout[i].outqueue, next) {
  ------------------
  |  Branch (8380:3): [True: 0, False: 491k]
  ------------------
 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|   491k|	}
 8387|  1.91k|	TAILQ_FOREACH(chk, &asoc->send_queue, sctp_next) {
  ------------------
  |  Branch (8387:2): [True: 722, False: 1.91k]
  ------------------
 8388|    722|		if (chk->whoTo == net) {
  ------------------
  |  Branch (8388:7): [True: 0, False: 722]
  ------------------
 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|    722|	}
 8393|  1.91k|}
sctp_queue_op_err:
 9542|   151k|{
 9543|       |	/*-
 9544|       |	 * Prepend a OPERATIONAL_ERROR chunk header and put on the end of
 9545|       |	 * the control chunk queue.
 9546|       |	 */
 9547|   151k|	struct sctp_chunkhdr *hdr;
 9548|   151k|	struct sctp_tmit_chunk *chk;
 9549|   151k|	struct mbuf *mat, *last_mbuf;
 9550|   151k|	uint32_t chunk_length;
 9551|   151k|	uint16_t padding_length;
 9552|       |
 9553|   151k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|   151k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   151k|	do {                         \
  |  |  |  |  113|   151k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 151k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   151k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 151k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9554|   151k|	SCTP_BUF_PREPEND(op_err, sizeof(struct sctp_chunkhdr), M_NOWAIT);
  ------------------
  |  |  810|   151k|#define SCTP_BUF_PREPEND	M_PREPEND
  |  |  ------------------
  |  |  |  |  367|   151k|#define	M_PREPEND(m, plen, how) do {					\
  |  |  |  |  368|   151k|	struct mbuf **_mmp = &(m);					\
  |  |  |  |  369|   151k|	struct mbuf *_mm = *_mmp;					\
  |  |  |  |  370|   151k|	int _mplen = (plen);						\
  |  |  |  |  371|   151k|	int __mhow = (how);						\
  |  |  |  |  372|   151k|									\
  |  |  |  |  373|   151k|	if (M_LEADINGSPACE(_mm) >= _mplen) {				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  343|   151k|	(((m)->m_flags & M_EXT) ?					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|   151k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  233|   151k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (343:3): [True: 0, False: 151k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  344|   151k|	    (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|   151k|	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|   151k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  234|   151k|#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: 151k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  346|   151k|	    (m)->m_data - (m)->m_dat)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  219|   151k|#define	m_data		m_hdr.mh_data
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    (m)->m_data - (m)->m_dat)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|   151k|#define	m_dat		M_dat.M_databuf
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (373:6): [True: 565, False: 151k]
  |  |  |  |  ------------------
  |  |  |  |  374|    565|		_mm->m_data -= _mplen;					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|    565|#define	m_data		m_hdr.mh_data
  |  |  |  |  ------------------
  |  |  |  |  375|    565|		_mm->m_len += _mplen;					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  218|    565|#define	m_len		m_hdr.mh_len
  |  |  |  |  ------------------
  |  |  |  |  376|    565|	} else								\
  |  |  |  |  377|   151k|		_mm = m_prepend(_mm, _mplen, __mhow);			\
  |  |  |  |  378|   151k|	if (_mm != NULL && _mm->m_flags & M_PKTHDR)			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|   151k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               	if (_mm != NULL && _mm->m_flags & M_PKTHDR)			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  234|   151k|#define	M_PKTHDR	0x0002	/* start of record */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (378:6): [True: 151k, False: 0]
  |  |  |  |  |  Branch (378:21): [True: 0, False: 151k]
  |  |  |  |  ------------------
  |  |  |  |  379|   151k|		_mm->m_pkthdr.len += _mplen;				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  224|      0|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  |  |  |  |  ------------------
  |  |  |  |  380|   151k|	*_mmp = _mm;							\
  |  |  |  |  381|   151k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (381:10): [Folded, False: 151k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9555|   151k|	if (op_err == NULL) {
  ------------------
  |  Branch (9555:6): [True: 0, False: 151k]
  ------------------
 9556|      0|		return;
 9557|      0|	}
 9558|   151k|	last_mbuf = NULL;
 9559|   151k|	chunk_length = 0;
 9560|   616k|	for (mat = op_err; mat != NULL; mat = SCTP_BUF_NEXT(mat)) {
  ------------------
  |  |  802|   465k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   465k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (9560:21): [True: 465k, False: 151k]
  ------------------
 9561|   465k|		chunk_length += SCTP_BUF_LEN(mat);
  ------------------
  |  |  801|   465k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   465k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 9562|   465k|		if (SCTP_BUF_NEXT(mat) == NULL) {
  ------------------
  |  |  802|   465k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   465k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (9562:7): [True: 151k, False: 313k]
  ------------------
 9563|   151k|			last_mbuf = mat;
 9564|   151k|		}
 9565|   465k|	}
 9566|   151k|	if (chunk_length > SCTP_MAX_CHUNK_LENGTH) {
  ------------------
  |  |   72|   151k|#define SCTP_MAX_CHUNK_LENGTH 0xffff
  ------------------
  |  Branch (9566:6): [True: 0, False: 151k]
  ------------------
 9567|      0|		sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9568|      0|		return;
 9569|      0|	}
 9570|   151k|	padding_length = chunk_length % 4;
 9571|   151k|	if (padding_length != 0) {
  ------------------
  |  Branch (9571:6): [True: 770, False: 150k]
  ------------------
 9572|    770|		padding_length = 4 - padding_length;
 9573|    770|	}
 9574|   151k|	if (padding_length != 0) {
  ------------------
  |  Branch (9574:6): [True: 770, False: 150k]
  ------------------
 9575|    770|		if (sctp_add_pad_tombuf(last_mbuf, padding_length) == NULL) {
  ------------------
  |  Branch (9575:7): [True: 0, False: 770]
  ------------------
 9576|      0|			sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9577|      0|			return;
 9578|      0|		}
 9579|    770|	}
 9580|   151k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|   151k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|   151k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|   149k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|   149k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|   149k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 149k, False: 0]
  |  |  ------------------
  |  |  173|   149k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|   149k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|   149k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|   149k|			(_chk)->whoTo = NULL; \
  |  |  175|   149k|			(_chk)->holds_key_ref = 0; \
  |  |  176|   149k|		} \
  |  |  177|   149k|	} else { \
  |  |  178|  1.60k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  1.60k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  1.60k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  1.60k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  1.60k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  1.60k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  1.60k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  1.60k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  1.60k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  1.60k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  1.60k|	} \
  |  |  185|   151k|}
  ------------------
  |  Branch (9580:2): [True: 162, False: 1.44k]
  |  Branch (9580:2): [Folded, False: 1.60k]
  |  Branch (9580:2): [True: 149k, False: 1.60k]
  ------------------
 9581|   151k|	if (chk == NULL) {
  ------------------
  |  Branch (9581:6): [True: 0, False: 151k]
  ------------------
 9582|       |		/* no memory */
 9583|      0|		sctp_m_freem(op_err);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9584|      0|		return;
 9585|      0|	}
 9586|   151k|	chk->copy_by_ref = 0;
 9587|   151k|	chk->rec.chunk_id.id = SCTP_OPERATION_ERROR;
  ------------------
  |  |  463|   151k|#define SCTP_OPERATION_ERROR	0x09
  ------------------
 9588|   151k|	chk->rec.chunk_id.can_take_data = 0;
 9589|   151k|	chk->flags = 0;
 9590|   151k|	chk->send_size = (uint16_t)chunk_length;
 9591|   151k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|   151k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 9592|   151k|	chk->snd_count = 0;
 9593|   151k|	chk->asoc = &stcb->asoc;
 9594|   151k|	chk->data = op_err;
 9595|   151k|	chk->whoTo = NULL;
 9596|   151k|	hdr = mtod(op_err, struct sctp_chunkhdr *);
  ------------------
  |  |   96|   151k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|   151k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9597|   151k|	hdr->chunk_type = SCTP_OPERATION_ERROR;
  ------------------
  |  |  463|   151k|#define SCTP_OPERATION_ERROR	0x09
  ------------------
 9598|   151k|	hdr->chunk_flags = 0;
 9599|   151k|	hdr->chunk_length = htons(chk->send_size);
 9600|       |	TAILQ_INSERT_TAIL(&chk->asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (9600:2): [Folded, False: 151k]
  ------------------
 9601|   151k|	chk->asoc->ctrl_queue_cnt++;
 9602|   151k|}
sctp_send_cookie_echo:
 9609|  8.70k|{
 9610|       |	/*-
 9611|       |	 * pull out the cookie and put it at the front of the control chunk
 9612|       |	 * queue.
 9613|       |	 */
 9614|  8.70k|	int at;
 9615|  8.70k|	struct mbuf *cookie;
 9616|  8.70k|	struct sctp_paramhdr param, *phdr;
 9617|  8.70k|	struct sctp_chunkhdr *hdr;
 9618|  8.70k|	struct sctp_tmit_chunk *chk;
 9619|  8.70k|	uint16_t ptype, plen;
 9620|       |
 9621|  8.70k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  8.70k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  8.70k|	do {                         \
  |  |  |  |  113|  8.70k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 8.70k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.70k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 8.70k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9622|       |	/* First find the cookie in the param area */
 9623|  8.70k|	cookie = NULL;
 9624|  8.70k|	at = offset + sizeof(struct sctp_init_chunk);
 9625|  69.7k|	for (;;) {
 9626|  69.7k|		phdr = sctp_get_next_param(m, at, &param, sizeof(param));
 9627|  69.7k|		if (phdr == NULL) {
  ------------------
  |  Branch (9627:7): [True: 0, False: 69.7k]
  ------------------
 9628|      0|			return (-3);
 9629|      0|		}
 9630|  69.7k|		ptype = ntohs(phdr->param_type);
 9631|  69.7k|		plen = ntohs(phdr->param_length);
 9632|  69.7k|		if (plen < sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (9632:7): [True: 0, False: 69.7k]
  ------------------
 9633|      0|			return (-6);
 9634|      0|		}
 9635|  69.7k|		if (ptype == SCTP_STATE_COOKIE) {
  ------------------
  |  |  396|  69.7k|#define SCTP_STATE_COOKIE		0x0007
  ------------------
  |  Branch (9635:7): [True: 8.70k, False: 61.0k]
  ------------------
 9636|  8.70k|			int pad;
 9637|       |
 9638|       |			/* found the cookie */
 9639|  8.70k|			if (at + plen > limit) {
  ------------------
  |  Branch (9639:8): [True: 0, False: 8.70k]
  ------------------
 9640|      0|				return (-7);
 9641|      0|			}
 9642|  8.70k|			cookie = SCTP_M_COPYM(m, at, plen, M_NOWAIT);
  ------------------
  |  |  770|  8.70k|#define SCTP_M_COPYM	m_copym
  ------------------
              			cookie = SCTP_M_COPYM(m, at, plen, M_NOWAIT);
  ------------------
  |  |   60|  8.70k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 9643|  8.70k|			if (cookie == NULL) {
  ------------------
  |  Branch (9643:8): [True: 0, False: 8.70k]
  ------------------
 9644|       |				/* No memory */
 9645|      0|				return (-2);
 9646|      0|			}
 9647|  8.70k|			if ((pad = (plen % 4)) > 0) {
  ------------------
  |  Branch (9647:8): [True: 73, False: 8.63k]
  ------------------
 9648|     73|				pad = 4 - pad;
 9649|     73|			}
 9650|  8.70k|			if (pad > 0) {
  ------------------
  |  Branch (9650:8): [True: 73, False: 8.63k]
  ------------------
 9651|     73|				if (sctp_pad_lastmbuf(cookie, pad, NULL) == NULL) {
  ------------------
  |  Branch (9651:9): [True: 0, False: 73]
  ------------------
 9652|      0|					return (-8);
 9653|      0|				}
 9654|     73|			}
 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|  8.70k|			break;
 9661|  8.70k|		}
 9662|  61.0k|		at += SCTP_SIZE32(plen);
  ------------------
  |  |  383|  61.0k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 9663|  61.0k|	}
 9664|       |	/* ok, we got the cookie lets change it into a cookie echo chunk */
 9665|       |	/* first the change from param to cookie */
 9666|  8.70k|	hdr = mtod(cookie, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  8.70k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  8.70k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9667|  8.70k|	hdr->chunk_type = SCTP_COOKIE_ECHO;
  ------------------
  |  |  464|  8.70k|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
 9668|  8.70k|	hdr->chunk_flags = 0;
 9669|       |	/* get the chunk stuff now and place it in the FRONT of the queue */
 9670|  8.70k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  8.70k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  8.70k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  8.70k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  8.70k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  8.70k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 8.70k, False: 0]
  |  |  ------------------
  |  |  173|  8.70k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  8.70k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  8.70k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  8.70k|			(_chk)->whoTo = NULL; \
  |  |  175|  8.70k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  8.70k|		} \
  |  |  177|  8.70k|	} 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|  8.70k|}
  ------------------
  |  Branch (9670:2): [True: 0, False: 0]
  |  Branch (9670:2): [Folded, False: 0]
  |  Branch (9670:2): [True: 8.70k, False: 0]
  ------------------
 9671|  8.70k|	if (chk == NULL) {
  ------------------
  |  Branch (9671:6): [True: 0, False: 8.70k]
  ------------------
 9672|       |		/* no memory */
 9673|      0|		sctp_m_freem(cookie);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9674|      0|		return (-5);
 9675|      0|	}
 9676|  8.70k|	chk->copy_by_ref = 0;
 9677|  8.70k|	chk->rec.chunk_id.id = SCTP_COOKIE_ECHO;
  ------------------
  |  |  464|  8.70k|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
 9678|  8.70k|	chk->rec.chunk_id.can_take_data = 0;
 9679|  8.70k|	chk->flags = CHUNK_FLAGS_FRAGMENT_OK;
  ------------------
  |  |  481|  8.70k|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
 9680|  8.70k|	chk->send_size = SCTP_SIZE32(plen);
  ------------------
  |  |  383|  8.70k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 9681|  8.70k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  8.70k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 9682|  8.70k|	chk->snd_count = 0;
 9683|  8.70k|	chk->asoc = &stcb->asoc;
 9684|  8.70k|	chk->data = cookie;
 9685|  8.70k|	chk->whoTo = net;
 9686|  8.70k|	atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  8.70k|#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: 223, False: 8.48k]
  |  Branch (9687:2): [Folded, False: 8.70k]
  ------------------
 9688|  8.70k|	chk->asoc->ctrl_queue_cnt++;
 9689|  8.70k|	return (0);
 9690|  8.70k|}
sctp_send_heartbeat_ack:
 9698|  32.3k|{
 9699|       |	/*
 9700|       |	 * take a HB request and make it into a HB ack and send it.
 9701|       |	 */
 9702|  32.3k|	struct mbuf *outchain;
 9703|  32.3k|	struct sctp_chunkhdr *chdr;
 9704|  32.3k|	struct sctp_tmit_chunk *chk;
 9705|       |
 9706|  32.3k|	if (net == NULL)
  ------------------
  |  Branch (9706:6): [True: 0, False: 32.3k]
  ------------------
 9707|       |		/* must have a net pointer */
 9708|      0|		return;
 9709|       |
 9710|  32.3k|	outchain = SCTP_M_COPYM(m, offset, chk_length, M_NOWAIT);
  ------------------
  |  |  770|  32.3k|#define SCTP_M_COPYM	m_copym
  ------------------
              	outchain = SCTP_M_COPYM(m, offset, chk_length, M_NOWAIT);
  ------------------
  |  |   60|  32.3k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
 9711|  32.3k|	if (outchain == NULL) {
  ------------------
  |  Branch (9711:6): [True: 0, False: 32.3k]
  ------------------
 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|  32.3k|	chdr = mtod(outchain, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  32.3k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  32.3k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9721|  32.3k|	chdr->chunk_type = SCTP_HEARTBEAT_ACK;
  ------------------
  |  |  459|  32.3k|#define SCTP_HEARTBEAT_ACK	0x05
  ------------------
 9722|  32.3k|	chdr->chunk_flags = 0;
 9723|  32.3k|	if (chk_length % 4 != 0) {
  ------------------
  |  Branch (9723:6): [True: 3.23k, False: 29.1k]
  ------------------
 9724|  3.23k|		sctp_pad_lastmbuf(outchain, 4 - (chk_length % 4), NULL);
 9725|  3.23k|	}
 9726|  32.3k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  32.3k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  32.3k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  31.1k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  31.1k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  31.1k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 31.1k, False: 0]
  |  |  ------------------
  |  |  173|  31.1k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  31.1k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  31.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  31.1k|			(_chk)->whoTo = NULL; \
  |  |  175|  31.1k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  31.1k|		} \
  |  |  177|  31.1k|	} else { \
  |  |  178|  1.22k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  1.22k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  1.22k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  1.22k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  1.22k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  1.22k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  1.22k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  1.22k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  1.22k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  1.22k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  1.22k|	} \
  |  |  185|  32.3k|}
  ------------------
  |  Branch (9726:2): [True: 62, False: 1.15k]
  |  Branch (9726:2): [Folded, False: 1.22k]
  |  Branch (9726:2): [True: 31.1k, False: 1.22k]
  ------------------
 9727|  32.3k|	if (chk == NULL) {
  ------------------
  |  Branch (9727:6): [True: 0, False: 32.3k]
  ------------------
 9728|       |		/* no memory */
 9729|      0|		sctp_m_freem(outchain);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9730|      0|		return;
 9731|      0|	}
 9732|  32.3k|	chk->copy_by_ref = 0;
 9733|  32.3k|	chk->rec.chunk_id.id = SCTP_HEARTBEAT_ACK;
  ------------------
  |  |  459|  32.3k|#define SCTP_HEARTBEAT_ACK	0x05
  ------------------
 9734|  32.3k|	chk->rec.chunk_id.can_take_data = 1;
 9735|  32.3k|	chk->flags = 0;
 9736|  32.3k|	chk->send_size = chk_length;
 9737|  32.3k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  32.3k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 9738|  32.3k|	chk->snd_count = 0;
 9739|  32.3k|	chk->asoc = &stcb->asoc;
 9740|  32.3k|	chk->data = outchain;
 9741|  32.3k|	chk->whoTo = net;
 9742|  32.3k|	atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  32.3k|#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: 32.3k]
  ------------------
 9744|  32.3k|	chk->asoc->ctrl_queue_cnt++;
 9745|  32.3k|}
sctp_send_cookie_ack:
 9749|    791|{
 9750|       |	/* formulate and queue a cookie-ack back to sender */
 9751|    791|	struct mbuf *cookie_ack;
 9752|    791|	struct sctp_chunkhdr *hdr;
 9753|    791|	struct sctp_tmit_chunk *chk;
 9754|       |
 9755|    791|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    791|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    791|	do {                         \
  |  |  |  |  113|    791|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 791]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    791|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 791]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9756|       |
 9757|    791|	cookie_ack = sctp_get_mbuf_for_msg(sizeof(struct sctp_chunkhdr), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|    791|#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|    791|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|    791|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
 9758|    791|	if (cookie_ack == NULL) {
  ------------------
  |  Branch (9758:6): [True: 0, False: 791]
  ------------------
 9759|       |		/* no mbuf's */
 9760|      0|		return;
 9761|      0|	}
 9762|    791|	SCTP_BUF_RESV_UF(cookie_ack, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|    791|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    791|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9763|    791|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|    791|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|    791|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|    588|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|    588|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|    588|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 588, False: 0]
  |  |  ------------------
  |  |  173|    588|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|    588|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    588|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|    588|			(_chk)->whoTo = NULL; \
  |  |  175|    588|			(_chk)->holds_key_ref = 0; \
  |  |  176|    588|		} \
  |  |  177|    588|	} else { \
  |  |  178|    203|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|    203|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|    203|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|    203|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|    203|		(_chk)->holds_key_ref = 0; \
  |  |  182|    203|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|    203|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    203|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    203|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|    203|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|    203|	} \
  |  |  185|    791|}
  ------------------
  |  Branch (9763:2): [True: 0, False: 203]
  |  Branch (9763:2): [Folded, False: 203]
  |  Branch (9763:2): [True: 588, False: 203]
  ------------------
 9764|    791|	if (chk == NULL) {
  ------------------
  |  Branch (9764:6): [True: 0, False: 791]
  ------------------
 9765|       |		/* no memory */
 9766|      0|		sctp_m_freem(cookie_ack);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9767|      0|		return;
 9768|      0|	}
 9769|    791|	chk->copy_by_ref = 0;
 9770|    791|	chk->rec.chunk_id.id = SCTP_COOKIE_ACK;
  ------------------
  |  |  465|    791|#define SCTP_COOKIE_ACK		0x0b
  ------------------
 9771|    791|	chk->rec.chunk_id.can_take_data = 1;
 9772|    791|	chk->flags = 0;
 9773|    791|	chk->send_size = sizeof(struct sctp_chunkhdr);
 9774|    791|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|    791|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 9775|    791|	chk->snd_count = 0;
 9776|    791|	chk->asoc = &stcb->asoc;
 9777|    791|	chk->data = cookie_ack;
 9778|    791|	if (chk->asoc->last_control_chunk_from != NULL) {
  ------------------
  |  Branch (9778:6): [True: 791, False: 0]
  ------------------
 9779|    791|		chk->whoTo = chk->asoc->last_control_chunk_from;
 9780|    791|		atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|    791|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 9781|    791|	} else {
 9782|      0|		chk->whoTo = NULL;
 9783|      0|	}
 9784|    791|	hdr = mtod(cookie_ack, struct sctp_chunkhdr *);
  ------------------
  |  |   96|    791|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    791|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9785|    791|	hdr->chunk_type = SCTP_COOKIE_ACK;
  ------------------
  |  |  465|    791|#define SCTP_COOKIE_ACK		0x0b
  ------------------
 9786|    791|	hdr->chunk_flags = 0;
 9787|    791|	hdr->chunk_length = htons(chk->send_size);
 9788|    791|	SCTP_BUF_LEN(cookie_ack) = chk->send_size;
  ------------------
  |  |  801|    791|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    791|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 9789|       |	TAILQ_INSERT_TAIL(&chk->asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (9789:2): [Folded, False: 791]
  ------------------
 9790|    791|	chk->asoc->ctrl_queue_cnt++;
 9791|    791|	return;
 9792|    791|}
sctp_send_shutdown_ack:
 9796|  1.17k|{
 9797|       |	/* formulate and queue a SHUTDOWN-ACK back to the sender */
 9798|  1.17k|	struct mbuf *m_shutdown_ack;
 9799|  1.17k|	struct sctp_shutdown_ack_chunk *ack_cp;
 9800|  1.17k|	struct sctp_tmit_chunk *chk;
 9801|       |
 9802|  1.17k|	m_shutdown_ack = sctp_get_mbuf_for_msg(sizeof(struct sctp_shutdown_ack_chunk), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|  1.17k|#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|  1.17k|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|  1.17k|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
 9803|  1.17k|	if (m_shutdown_ack == NULL) {
  ------------------
  |  Branch (9803:6): [True: 0, False: 1.17k]
  ------------------
 9804|       |		/* no mbuf's */
 9805|      0|		return;
 9806|      0|	}
 9807|  1.17k|	SCTP_BUF_RESV_UF(m_shutdown_ack, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  1.17k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  1.17k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9808|  1.17k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  1.17k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  1.17k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|    827|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|    827|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|    827|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 827, False: 0]
  |  |  ------------------
  |  |  173|    827|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|    827|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    827|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|    827|			(_chk)->whoTo = NULL; \
  |  |  175|    827|			(_chk)->holds_key_ref = 0; \
  |  |  176|    827|		} \
  |  |  177|    827|	} else { \
  |  |  178|    348|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|    348|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|    348|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|    348|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|    348|		(_chk)->holds_key_ref = 0; \
  |  |  182|    348|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|    348|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    348|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    348|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|    348|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|    348|	} \
  |  |  185|  1.17k|}
  ------------------
  |  Branch (9808:2): [True: 23, False: 325]
  |  Branch (9808:2): [Folded, False: 348]
  |  Branch (9808:2): [True: 827, False: 348]
  ------------------
 9809|  1.17k|	if (chk == NULL) {
  ------------------
  |  Branch (9809:6): [True: 0, False: 1.17k]
  ------------------
 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|  1.17k|	chk->copy_by_ref = 0;
 9815|  1.17k|	chk->rec.chunk_id.id = SCTP_SHUTDOWN_ACK;
  ------------------
  |  |  462|  1.17k|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
 9816|  1.17k|	chk->rec.chunk_id.can_take_data = 1;
 9817|  1.17k|	chk->flags = 0;
 9818|  1.17k|	chk->send_size = sizeof(struct sctp_chunkhdr);
 9819|  1.17k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  1.17k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 9820|  1.17k|	chk->snd_count = 0;
 9821|  1.17k|	chk->asoc = &stcb->asoc;
 9822|  1.17k|	chk->data = m_shutdown_ack;
 9823|  1.17k|	chk->whoTo = net;
 9824|  1.17k|	if (chk->whoTo) {
  ------------------
  |  Branch (9824:6): [True: 1.17k, False: 0]
  ------------------
 9825|  1.17k|		atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  1.17k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 9826|  1.17k|	}
 9827|  1.17k|	ack_cp = mtod(m_shutdown_ack, struct sctp_shutdown_ack_chunk *);
  ------------------
  |  |   96|  1.17k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  1.17k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9828|  1.17k|	ack_cp->ch.chunk_type = SCTP_SHUTDOWN_ACK;
  ------------------
  |  |  462|  1.17k|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
 9829|  1.17k|	ack_cp->ch.chunk_flags = 0;
 9830|  1.17k|	ack_cp->ch.chunk_length = htons(chk->send_size);
 9831|  1.17k|	SCTP_BUF_LEN(m_shutdown_ack) = chk->send_size;
  ------------------
  |  |  801|  1.17k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  1.17k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 9832|       |	TAILQ_INSERT_TAIL(&chk->asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (9832:2): [Folded, False: 1.17k]
  ------------------
 9833|  1.17k|	chk->asoc->ctrl_queue_cnt++;
 9834|  1.17k|	return;
 9835|  1.17k|}
sctp_send_shutdown:
 9839|  1.89k|{
 9840|       |	/* formulate and queue a SHUTDOWN to the sender */
 9841|  1.89k|	struct mbuf *m_shutdown;
 9842|  1.89k|	struct sctp_shutdown_chunk *shutdown_cp;
 9843|  1.89k|	struct sctp_tmit_chunk *chk;
 9844|       |
 9845|  1.32M|	TAILQ_FOREACH(chk, &stcb->asoc.control_send_queue, sctp_next) {
  ------------------
  |  Branch (9845:2): [True: 1.32M, False: 80]
  ------------------
 9846|  1.32M|		if (chk->rec.chunk_id.id == SCTP_SHUTDOWN) {
  ------------------
  |  |  461|  1.32M|#define SCTP_SHUTDOWN		0x07
  ------------------
  |  Branch (9846:7): [True: 1.81k, False: 1.31M]
  ------------------
 9847|       |			/* We already have a SHUTDOWN queued. Reuse it. */
 9848|  1.81k|			if (chk->whoTo) {
  ------------------
  |  Branch (9848:8): [True: 1.81k, False: 0]
  ------------------
 9849|  1.81k|				sctp_free_remote_addr(chk->whoTo);
  ------------------
  |  |  228|  1.81k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  1.81k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 1.81k, False: 0]
  |  |  ------------------
  |  |  230|  1.81k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  1.81k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  1.81k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 1.81k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  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.81k|	} \
  |  |  245|  1.81k|}
  ------------------
 9850|  1.81k|				chk->whoTo = NULL;
 9851|  1.81k|			}
 9852|  1.81k|			break;
 9853|  1.81k|		}
 9854|  1.32M|	}
 9855|  1.89k|	if (chk == NULL) {
  ------------------
  |  Branch (9855:6): [True: 80, False: 1.81k]
  ------------------
 9856|     80|		m_shutdown = sctp_get_mbuf_for_msg(sizeof(struct sctp_shutdown_chunk), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|     80|#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|     80|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|     80|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
 9857|     80|		if (m_shutdown == NULL) {
  ------------------
  |  Branch (9857:7): [True: 0, False: 80]
  ------------------
 9858|       |			/* no mbuf's */
 9859|      0|			return;
 9860|      0|		}
 9861|     80|		SCTP_BUF_RESV_UF(m_shutdown, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|     80|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|     80|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9862|     80|		sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|     80|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|     80|	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|      6|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|      6|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|      6|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|      6|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|      6|		(_chk)->holds_key_ref = 0; \
  |  |  182|      6|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|      6|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      6|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      6|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|      6|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|      6|	} \
  |  |  185|     80|}
  ------------------
  |  Branch (9862:3): [True: 0, False: 6]
  |  Branch (9862:3): [Folded, False: 6]
  |  Branch (9862:3): [True: 74, False: 6]
  ------------------
 9863|     80|		if (chk == NULL) {
  ------------------
  |  Branch (9863:7): [True: 0, False: 80]
  ------------------
 9864|       |			/* no memory */
 9865|      0|			sctp_m_freem(m_shutdown);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 9866|      0|			return;
 9867|      0|		}
 9868|     80|		chk->copy_by_ref = 0;
 9869|     80|		chk->rec.chunk_id.id = SCTP_SHUTDOWN;
  ------------------
  |  |  461|     80|#define SCTP_SHUTDOWN		0x07
  ------------------
 9870|     80|		chk->rec.chunk_id.can_take_data = 1;
 9871|     80|		chk->flags = 0;
 9872|     80|		chk->send_size = sizeof(struct sctp_shutdown_chunk);
 9873|     80|		chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|     80|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 9874|     80|		chk->snd_count = 0;
 9875|     80|		chk->asoc = &stcb->asoc;
 9876|     80|		chk->data = m_shutdown;
 9877|     80|		chk->whoTo = net;
 9878|     80|		if (chk->whoTo) {
  ------------------
  |  Branch (9878:7): [True: 80, False: 0]
  ------------------
 9879|     80|			atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|     80|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 9880|     80|		}
 9881|     80|		shutdown_cp = mtod(m_shutdown, struct sctp_shutdown_chunk *);
  ------------------
  |  |   96|     80|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|     80|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9882|     80|		shutdown_cp->ch.chunk_type = SCTP_SHUTDOWN;
  ------------------
  |  |  461|     80|#define SCTP_SHUTDOWN		0x07
  ------------------
 9883|     80|		shutdown_cp->ch.chunk_flags = 0;
 9884|     80|		shutdown_cp->ch.chunk_length = htons(chk->send_size);
 9885|     80|		shutdown_cp->cumulative_tsn_ack = htonl(stcb->asoc.cumulative_tsn);
 9886|     80|		SCTP_BUF_LEN(m_shutdown) = chk->send_size;
  ------------------
  |  |  801|     80|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     80|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 9887|     80|		TAILQ_INSERT_TAIL(&chk->asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (9887:3): [Folded, False: 80]
  ------------------
 9888|     80|		chk->asoc->ctrl_queue_cnt++;
 9889|  1.81k|	} else {
 9890|  1.81k|		TAILQ_REMOVE(&stcb->asoc.control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (9890:3): [True: 1.03k, False: 778]
  |  Branch (9890:3): [Folded, False: 1.81k]
  ------------------
 9891|  1.81k|		chk->whoTo = net;
 9892|  1.81k|		if (chk->whoTo) {
  ------------------
  |  Branch (9892:7): [True: 1.81k, False: 0]
  ------------------
 9893|  1.81k|			atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  1.81k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 9894|  1.81k|		}
 9895|  1.81k|		shutdown_cp = mtod(chk->data, struct sctp_shutdown_chunk *);
  ------------------
  |  |   96|  1.81k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  1.81k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 9896|  1.81k|		shutdown_cp->cumulative_tsn_ack = htonl(stcb->asoc.cumulative_tsn);
 9897|  1.81k|		TAILQ_INSERT_TAIL(&stcb->asoc.control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (9897:3): [Folded, False: 1.81k]
  ------------------
 9898|  1.81k|	}
 9899|  1.89k|	return;
 9900|  1.89k|}
sctp_send_asconf_ack:
 9954|  1.79k|{
 9955|       |	/*
 9956|       |	 * formulate and queue a asconf-ack back to sender.
 9957|       |	 * the asconf-ack must be stored in the tcb.
 9958|       |	 */
 9959|  1.79k|	struct sctp_tmit_chunk *chk;
 9960|  1.79k|	struct sctp_asconf_ack *ack, *latest_ack;
 9961|  1.79k|	struct mbuf *m_ack;
 9962|  1.79k|	struct sctp_nets *net = NULL;
 9963|       |
 9964|  1.79k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  1.79k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9965|       |	/* Get the latest ASCONF-ACK */
 9966|  1.79k|	latest_ack = TAILQ_LAST(&stcb->asoc.asconf_ack_sent, sctp_asconf_ackhead);
 9967|  1.79k|	if (latest_ack == NULL) {
  ------------------
  |  Branch (9967:6): [True: 883, False: 914]
  ------------------
 9968|    883|		return;
 9969|    883|	}
 9970|    914|	if (latest_ack->last_sent_to != NULL &&
  ------------------
  |  Branch (9970:6): [True: 0, False: 914]
  ------------------
 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|    914|	} else {
 9987|       |		/* normal case */
 9988|    914|		if (stcb->asoc.last_control_chunk_from == NULL) {
  ------------------
  |  Branch (9988:7): [True: 0, False: 914]
  ------------------
 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|    914|		} else {
 9995|    914|			net = stcb->asoc.last_control_chunk_from;
 9996|    914|		}
 9997|    914|	}
 9998|    914|	latest_ack->last_sent_to = net;
 9999|       |
10000|    937|	TAILQ_FOREACH(ack, &stcb->asoc.asconf_ack_sent, next) {
  ------------------
  |  Branch (10000:2): [True: 937, False: 914]
  ------------------
10001|    937|		if (ack->data == NULL) {
  ------------------
  |  Branch (10001:7): [True: 0, False: 937]
  ------------------
10002|      0|			continue;
10003|      0|		}
10004|       |
10005|       |		/* copy the asconf_ack */
10006|    937|		m_ack = SCTP_M_COPYM(ack->data, 0, M_COPYALL, M_NOWAIT);
  ------------------
  |  |  770|    937|#define SCTP_M_COPYM	m_copym
  ------------------
              		m_ack = SCTP_M_COPYM(ack->data, 0, M_COPYALL, M_NOWAIT);
  ------------------
  |  |   75|    937|#define	M_COPYALL	1000000000
  ------------------
              		m_ack = SCTP_M_COPYM(ack->data, 0, M_COPYALL, M_NOWAIT);
  ------------------
  |  |   60|    937|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
10007|    937|		if (m_ack == NULL) {
  ------------------
  |  Branch (10007:7): [True: 0, False: 937]
  ------------------
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|    937|		sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|    937|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|    937|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|    848|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|    848|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|    848|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 848, False: 0]
  |  |  ------------------
  |  |  173|    848|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|    848|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    848|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|    848|			(_chk)->whoTo = NULL; \
  |  |  175|    848|			(_chk)->holds_key_ref = 0; \
  |  |  176|    848|		} \
  |  |  177|    848|	} else { \
  |  |  178|     89|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|     89|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|     89|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|     89|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|     89|		(_chk)->holds_key_ref = 0; \
  |  |  182|     89|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|     89|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     89|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     89|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|     89|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|     89|	} \
  |  |  185|    937|}
  ------------------
  |  Branch (10017:3): [True: 18, False: 71]
  |  Branch (10017:3): [Folded, False: 89]
  |  Branch (10017:3): [True: 848, False: 89]
  ------------------
10018|    937|		if (chk == NULL) {
  ------------------
  |  Branch (10018:7): [True: 0, False: 937]
  ------------------
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|    937|		chk->copy_by_ref = 0;
10025|    937|		chk->rec.chunk_id.id = SCTP_ASCONF_ACK;
  ------------------
  |  |  477|    937|#define	SCTP_ASCONF_ACK		0x80
  ------------------
10026|    937|		chk->rec.chunk_id.can_take_data = 1;
10027|    937|		chk->flags = CHUNK_FLAGS_FRAGMENT_OK;
  ------------------
  |  |  481|    937|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
10028|    937|		chk->whoTo = net;
10029|    937|		if (chk->whoTo) {
  ------------------
  |  Branch (10029:7): [True: 937, False: 0]
  ------------------
10030|    937|			atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|    937|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
10031|    937|		}
10032|    937|		chk->data = m_ack;
10033|    937|		chk->send_size = ack->len;
10034|    937|		chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|    937|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
10035|    937|		chk->snd_count = 0;
10036|    937|		chk->asoc = &stcb->asoc;
10037|       |
10038|    937|		TAILQ_INSERT_TAIL(&chk->asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (10038:3): [Folded, False: 937]
  ------------------
10039|    937|		chk->asoc->ctrl_queue_cnt++;
10040|    937|	}
10041|    914|	return;
10042|    914|}
sctp_chunk_output:
10628|  34.1k|{
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|  34.1k|	struct sctp_association *asoc;
10643|  34.1k|	struct sctp_nets *net;
10644|  34.1k|	int error = 0, num_out, tot_out = 0, ret = 0, reason_code;
10645|  34.1k|	unsigned int burst_cnt = 0;
10646|  34.1k|	struct timeval now;
10647|  34.1k|	int now_filled = 0;
10648|  34.1k|	int nagle_on;
10649|  34.1k|	uint32_t frag_point = sctp_get_frag_point(stcb);
10650|  34.1k|	int un_sent = 0;
10651|  34.1k|	int fr_done;
10652|  34.1k|	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|  34.1k|	asoc = &stcb->asoc;
10662|  34.1k|do_it_again:
10663|       |	/* The Nagle algorithm is only applied when handling a send call. */
10664|  34.1k|	if (from_where == SCTP_OUTPUT_FROM_USR_SEND) {
  ------------------
  |  |  361|  34.1k|#define SCTP_OUTPUT_FROM_USR_SEND       0
  ------------------
  |  Branch (10664:6): [True: 2.96k, False: 31.1k]
  ------------------
10665|  2.96k|		if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_NODELAY)) {
  ------------------
  |  |   52|  2.96k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 2.96k, False: 0]
  |  |  ------------------
  ------------------
10666|  2.96k|			nagle_on = 0;
10667|  2.96k|		} else {
10668|      0|			nagle_on = 1;
10669|      0|		}
10670|  31.1k|	} else {
10671|  31.1k|		nagle_on = 0;
10672|  31.1k|	}
10673|  34.1k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  34.1k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  34.1k|	do {                         \
  |  |  |  |  113|  34.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 34.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|  34.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 34.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
10674|       |
10675|  34.1k|	un_sent = (stcb->asoc.total_output_queue_size - stcb->asoc.total_flight);
10676|       |
10677|  34.1k|	if ((un_sent <= 0) &&
  ------------------
  |  Branch (10677:6): [True: 28.3k, False: 5.81k]
  ------------------
10678|  28.3k|	    (TAILQ_EMPTY(&asoc->control_send_queue)) &&
  ------------------
  |  Branch (10678:6): [True: 136, False: 28.1k]
  ------------------
10679|    136|	    (TAILQ_EMPTY(&asoc->asconf_send_queue)) &&
  ------------------
  |  Branch (10679:6): [True: 136, False: 0]
  ------------------
10680|    136|	    (asoc->sent_queue_retran_cnt == 0) &&
  ------------------
  |  Branch (10680:6): [True: 136, False: 0]
  ------------------
10681|    136|	    (asoc->trigger_reset == 0)) {
  ------------------
  |  Branch (10681:6): [True: 136, False: 0]
  ------------------
10682|       |		/* Nothing to do unless there is something to be sent left */
10683|    136|		return;
10684|    136|	}
10685|       |	/* Do we have something to send, data or control AND
10686|       |	 * a sack timer running, if so piggy-back the sack.
10687|       |	 */
10688|  33.9k|	if (SCTP_OS_TIMER_PENDING(&stcb->asoc.dack_timer.timer)) {
  ------------------
  |  |  102|  33.9k|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|  33.9k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 91, False: 33.8k]
  |  |  ------------------
  ------------------
10689|     91|		sctp_send_sack(stcb, so_locked);
10690|     91|		sctp_timer_stop(SCTP_TIMER_TYPE_RECV, stcb->sctp_ep, stcb, NULL,
  ------------------
  |  |  534|     91|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
10691|     91|		                SCTP_FROM_SCTP_OUTPUT + SCTP_LOC_3);
  ------------------
  |  |  763|     91|#define SCTP_FROM_SCTP_OUTPUT       0x90000000
  ------------------
              		                SCTP_FROM_SCTP_OUTPUT + SCTP_LOC_3);
  ------------------
  |  |  771|     91|#define SCTP_LOC_3  0x00000003
  ------------------
10692|     91|	}
10693|  33.9k|	while (asoc->sent_queue_retran_cnt) {
  ------------------
  |  Branch (10693:9): [True: 0, False: 33.9k]
  ------------------
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|  43.6k|	TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (10774:2): [True: 43.6k, False: 33.9k]
  ------------------
10775|  43.6k|		if ((net->dest_state & SCTP_ADDR_REACHABLE) == 0) {
  ------------------
  |  |  481|  43.6k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (10775:7): [True: 0, False: 43.6k]
  ------------------
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|  43.6k|		} 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|  43.6k|			if (asoc->max_burst > 0) {
  ------------------
  |  Branch (10791:8): [True: 43.6k, False: 0]
  ------------------
10792|  43.6k|				if (SCTP_BASE_SYSCTL(sctp_use_cwnd_based_maxburst)) {
  ------------------
  |  |  590|  43.6k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 43.6k, False: 0]
  |  |  ------------------
  ------------------
10793|  43.6k|					if ((net->flight_size + (asoc->max_burst * net->mtu)) < net->cwnd) {
  ------------------
  |  Branch (10793:10): [True: 0, False: 43.6k]
  ------------------
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|  43.6k|					net->fast_retran_ip = 0;
10802|  43.6k|				} 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|  43.6k|			}
10809|  43.6k|		}
10810|  43.6k|	}
10811|  33.9k|	burst_cnt = 0;
10812|  34.8k|	do {
10813|  34.8k|		error = sctp_med_chunk_output(inp, stcb, asoc, &num_out,
10814|  34.8k|		                              &reason_code, 0, from_where,
10815|  34.8k|		                              &now, &now_filled, frag_point, so_locked);
10816|  34.8k|		if (error) {
  ------------------
  |  Branch (10816:7): [True: 0, False: 34.8k]
  ------------------
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|  34.8k|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "m-c-o put out %d\n", num_out);
10828|       |
10829|  34.8k|		tot_out += num_out;
10830|  34.8k|		burst_cnt++;
10831|  34.8k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|  34.8k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|  34.8k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (10831:7): [True: 0, False: 34.8k]
  ------------------
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|  34.8k|		if (nagle_on) {
  ------------------
  |  Branch (10837:7): [True: 0, False: 34.8k]
  ------------------
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|  34.8k|		if (TAILQ_EMPTY(&asoc->control_send_queue) &&
  ------------------
  |  Branch (10851:7): [True: 8.28k, False: 26.5k]
  ------------------
10852|  34.8k|		    TAILQ_EMPTY(&asoc->send_queue) &&
  ------------------
  |  Branch (10852:7): [True: 6.97k, False: 1.31k]
  ------------------
10853|  6.97k|		    sctp_is_there_unsent_data(stcb, so_locked) == 0) {
  ------------------
  |  Branch (10853:7): [True: 6.97k, False: 0]
  ------------------
10854|       |			/* Nothing left to send */
10855|  6.97k|			break;
10856|  6.97k|		}
10857|  27.8k|		if ((stcb->asoc.total_output_queue_size - stcb->asoc.total_flight) <= 0) {
  ------------------
  |  Branch (10857:7): [True: 25.0k, False: 2.79k]
  ------------------
10858|       |			/* Nothing left to send */
10859|  25.0k|			break;
10860|  25.0k|		}
10861|  27.8k|	} while (num_out &&
  ------------------
  |  Branch (10861:11): [True: 858, False: 1.93k]
  ------------------
10862|    858|	         ((asoc->max_burst == 0) ||
  ------------------
  |  Branch (10862:12): [True: 0, False: 858]
  ------------------
10863|    858|		  SCTP_BASE_SYSCTL(sctp_use_cwnd_based_maxburst) ||
  ------------------
  |  |  590|  1.71k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 858, False: 0]
  |  |  ------------------
  ------------------
10864|      0|		  (burst_cnt < asoc->max_burst)));
  ------------------
  |  Branch (10864:5): [True: 0, False: 0]
  ------------------
10865|       |
10866|  33.9k|	if (SCTP_BASE_SYSCTL(sctp_use_cwnd_based_maxburst) == 0) {
  ------------------
  |  |  590|  33.9k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (10866:6): [True: 0, False: 33.9k]
  ------------------
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|  33.9k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|  33.9k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|  33.9k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (10877:6): [True: 0, False: 33.9k]
  ------------------
10878|      0|		sctp_log_cwnd(stcb, NULL, tot_out, SCTP_SEND_NOW_COMPLETES);
  ------------------
  |  |  172|      0|#define SCTP_SEND_NOW_COMPLETES     68
  ------------------
10879|      0|	}
10880|  33.9k|	SCTPDBG(SCTP_DEBUG_OUTPUT1, "Ok, we have put out %d chunks\n",
10881|  33.9k|		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|  33.9k|	if (stcb->asoc.ecn_echo_cnt_onq)
  ------------------
  |  Branch (10888:6): [True: 0, False: 33.9k]
  ------------------
10889|      0|		sctp_fix_ecn_echo(asoc);
10890|       |
10891|  33.9k|	if (stcb->asoc.trigger_reset) {
  ------------------
  |  Branch (10891:6): [True: 44, False: 33.9k]
  ------------------
10892|     44|		if (sctp_send_stream_reset_out_if_possible(stcb, so_locked) == 0) {
  ------------------
  |  Branch (10892:7): [True: 0, False: 44]
  ------------------
10893|      0|			goto do_it_again;
10894|      0|		}
10895|     44|	}
10896|  33.9k|	return;
10897|  33.9k|}
send_forward_tsn:
10943|    751|{
10944|    751|	struct sctp_tmit_chunk *chk, *at, *tp1, *last;
10945|    751|	struct sctp_forward_tsn_chunk *fwdtsn;
10946|    751|	struct sctp_strseq *strseq;
10947|    751|	struct sctp_strseq_mid *strseq_m;
10948|    751|	uint32_t advance_peer_ack_point;
10949|    751|	unsigned int cnt_of_space, i, ovh;
10950|    751|	unsigned int space_needed;
10951|    751|	unsigned int cnt_of_skipped = 0;
10952|       |
10953|    751|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    751|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    751|	do {                         \
  |  |  |  |  113|    751|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 751]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    751|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 751]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
10954|  1.88k|	TAILQ_FOREACH(chk, &asoc->control_send_queue, sctp_next) {
  ------------------
  |  Branch (10954:2): [True: 1.88k, False: 70]
  ------------------
10955|  1.88k|		if (chk->rec.chunk_id.id == SCTP_FORWARD_CUM_TSN) {
  ------------------
  |  |  487|  1.88k|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (10955:7): [True: 681, False: 1.20k]
  ------------------
10956|       |			/* mark it to unsent */
10957|    681|			chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|    681|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
10958|    681|			chk->snd_count = 0;
10959|       |			/* Do we correct its output location? */
10960|    681|			if (chk->whoTo) {
  ------------------
  |  Branch (10960:8): [True: 0, False: 681]
  ------------------
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|    681|			goto sctp_fill_in_rest;
10965|    681|		}
10966|  1.88k|	}
10967|       |	/* Ok if we reach here we must build one */
10968|     70|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|     70|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|     70|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|     66|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|     66|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|     66|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 66, False: 0]
  |  |  ------------------
  |  |  173|     66|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|     66|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     66|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|     66|			(_chk)->whoTo = NULL; \
  |  |  175|     66|			(_chk)->holds_key_ref = 0; \
  |  |  176|     66|		} \
  |  |  177|     66|	} else { \
  |  |  178|      4|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|      4|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|      4|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|      4|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|      4|		(_chk)->holds_key_ref = 0; \
  |  |  182|      4|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|      4|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      4|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      4|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|      4|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|      4|	} \
  |  |  185|     70|}
  ------------------
  |  Branch (10968:2): [True: 0, False: 4]
  |  Branch (10968:2): [Folded, False: 4]
  |  Branch (10968:2): [True: 66, False: 4]
  ------------------
10969|     70|	if (chk == NULL) {
  ------------------
  |  Branch (10969:6): [True: 0, False: 70]
  ------------------
10970|      0|		return;
10971|      0|	}
10972|     70|	asoc->fwd_tsn_cnt++;
10973|     70|	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|     70|	chk->rec.chunk_id.id = SCTP_FORWARD_CUM_TSN;
  ------------------
  |  |  487|     70|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
10982|     70|	chk->rec.chunk_id.can_take_data = 0;
10983|     70|	chk->flags = 0;
10984|     70|	chk->asoc = asoc;
10985|     70|	chk->whoTo = NULL;
10986|     70|	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|     70|#define MCLBYTES 2048
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|     70|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|     70|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
10987|     70|	if (chk->data == NULL) {
  ------------------
  |  Branch (10987:6): [True: 0, False: 70]
  ------------------
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|     70|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|     70|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|     70|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
10992|     70|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|     70|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
10993|     70|	chk->snd_count = 0;
10994|     70|	TAILQ_INSERT_TAIL(&asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (10994:2): [Folded, False: 70]
  ------------------
10995|     70|	asoc->ctrl_queue_cnt++;
10996|    751|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|    751|	SCTP_BUF_LEN(chk->data) = 0;
  ------------------
  |  |  801|    751|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    751|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11002|    751|	TAILQ_FOREACH(at, &asoc->sent_queue, sctp_next) {
  ------------------
  |  Branch (11002:2): [True: 0, False: 751]
  ------------------
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|    751|	if (asoc->idata_supported) {
  ------------------
  |  Branch (11014:6): [True: 334, False: 417]
  ------------------
11015|    334|		space_needed = (sizeof(struct sctp_forward_tsn_chunk) +
11016|    334|		                (cnt_of_skipped * sizeof(struct sctp_strseq_mid)));
11017|    417|	} else {
11018|    417|		space_needed = (sizeof(struct sctp_forward_tsn_chunk) +
11019|    417|		                (cnt_of_skipped * sizeof(struct sctp_strseq)));
11020|    417|	}
11021|    751|	cnt_of_space = (unsigned int)M_TRAILINGSPACE(chk->data);
  ------------------
  |  |  355|    751|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|    751|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|    751|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (355:3): [True: 751, False: 0]
  |  |  ------------------
  |  |  356|    751|	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  326|    751|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|    751|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|    751|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 751, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|    751|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|    751|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|    751|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 751]
  |  |  |  |  ------------------
  |  |  |  |  328|    751|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|    751|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 751, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|    751|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|    751|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |  357|    751|		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  219|    751|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  218|    751|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  |  |  358|    751|	    &(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|    751|	if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) {
  ------------------
  |  |  544|    751|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (11023:6): [True: 0, False: 751]
  ------------------
11024|      0|		ovh = SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|      0|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|      0|                           sizeof(struct sctphdr))
  ------------------
11025|    751|	} else {
11026|    751|		ovh = SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|    751|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|    751|                              sizeof(struct sctphdr))
  ------------------
11027|    751|	}
11028|    751|	if (cnt_of_space > (asoc->smallest_mtu - ovh)) {
  ------------------
  |  Branch (11028:6): [True: 751, False: 0]
  ------------------
11029|       |		/* trim to a mtu size */
11030|    751|		cnt_of_space = asoc->smallest_mtu - ovh;
11031|    751|	}
11032|    751|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_TRY_ADVANCE) {
  ------------------
  |  |  590|    751|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_TRY_ADVANCE) {
  ------------------
  |  |  669|    751|#define SCTP_LOG_TRY_ADVANCE				0x10000000
  ------------------
  |  Branch (11032:6): [True: 0, False: 751]
  ------------------
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|    751|	advance_peer_ack_point = asoc->advanced_peer_ack_point;
11038|    751|	if (cnt_of_space < space_needed) {
  ------------------
  |  Branch (11038:6): [True: 0, False: 751]
  ------------------
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|    751|	chk->send_size = space_needed;
11090|       |	/* Setup the chunk */
11091|    751|	fwdtsn = mtod(chk->data, struct sctp_forward_tsn_chunk *);
  ------------------
  |  |   96|    751|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    751|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11092|    751|	fwdtsn->ch.chunk_length = htons(chk->send_size);
11093|    751|	fwdtsn->ch.chunk_flags = 0;
11094|    751|	if (asoc->idata_supported) {
  ------------------
  |  Branch (11094:6): [True: 334, False: 417]
  ------------------
11095|    334|		fwdtsn->ch.chunk_type = SCTP_IFORWARD_CUM_TSN;
  ------------------
  |  |  490|    334|#define SCTP_IFORWARD_CUM_TSN	0xc2
  ------------------
11096|    417|	} else {
11097|    417|		fwdtsn->ch.chunk_type = SCTP_FORWARD_CUM_TSN;
  ------------------
  |  |  487|    417|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
11098|    417|	}
11099|    751|	fwdtsn->new_cumulative_tsn = htonl(advance_peer_ack_point);
11100|    751|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|    751|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    751|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11101|    751|	fwdtsn++;
11102|       |	/*-
11103|       |	 * Move pointer to after the fwdtsn and transfer to the
11104|       |	 * strseq pointer.
11105|       |	 */
11106|    751|	if (asoc->idata_supported) {
  ------------------
  |  Branch (11106:6): [True: 334, False: 417]
  ------------------
11107|    334|		strseq_m = (struct sctp_strseq_mid *)fwdtsn;
11108|    334|		strseq = NULL;
11109|    417|	} else {
11110|    417|		strseq = (struct sctp_strseq *)fwdtsn;
11111|    417|		strseq_m = NULL;
11112|    417|	}
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|    751|	i = 0;
11126|    751|	TAILQ_FOREACH(at, &asoc->sent_queue, sctp_next) {
  ------------------
  |  Branch (11126:2): [True: 0, False: 751]
  ------------------
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|    751|	return;
11154|     70|}
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: 7.31k, False: 8.80k]
  ------------------
11186|  7.31k|		type = SCTP_NR_SELECTIVE_ACK;
  ------------------
  |  |  472|  7.31k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
11187|  8.80k|	} else {
11188|  8.80k|		type = SCTP_SELECTIVE_ACK;
  ------------------
  |  |  457|  8.80k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
11189|  8.80k|	}
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: 4.11k, False: 11.9k]
  ------------------
11194|       |		/* Hmm we never received anything */
11195|  4.11k|		return;
11196|  4.11k|	}
11197|  11.9k|	sctp_slide_mapping_arrays(stcb);
11198|  11.9k|	sctp_set_rwnd(stcb, asoc);
11199|  6.84M|	TAILQ_FOREACH(chk, &asoc->control_send_queue, sctp_next) {
  ------------------
  |  Branch (11199:2): [True: 6.84M, False: 6.12k]
  ------------------
11200|  6.84M|		if (chk->rec.chunk_id.id == type) {
  ------------------
  |  Branch (11200:7): [True: 5.87k, False: 6.83M]
  ------------------
11201|       |			/* Hmm, found a sack already on queue, remove it */
11202|  5.87k|			TAILQ_REMOVE(&asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (11202:4): [True: 3.72k, False: 2.15k]
  |  Branch (11202:4): [Folded, False: 5.87k]
  ------------------
11203|  5.87k|			asoc->ctrl_queue_cnt--;
11204|  5.87k|			a_chk = chk;
11205|  5.87k|			if (a_chk->data) {
  ------------------
  |  Branch (11205:8): [True: 5.87k, False: 0]
  ------------------
11206|  5.87k|				sctp_m_freem(a_chk->data);
  ------------------
  |  |   52|  5.87k|#define sctp_m_freem m_freem
  ------------------
11207|  5.87k|				a_chk->data = NULL;
11208|  5.87k|			}
11209|  5.87k|			if (a_chk->whoTo) {
  ------------------
  |  Branch (11209:8): [True: 5.87k, False: 0]
  ------------------
11210|  5.87k|				sctp_free_remote_addr(a_chk->whoTo);
  ------------------
  |  |  228|  5.87k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  5.87k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 5.87k, False: 0]
  |  |  ------------------
  |  |  230|  5.87k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  5.87k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  5.87k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 5.87k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  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.87k|	} \
  |  |  245|  5.87k|}
  ------------------
11211|  5.87k|				a_chk->whoTo = NULL;
11212|  5.87k|			}
11213|  5.87k|			break;
11214|  5.87k|		}
11215|  6.84M|	}
11216|  11.9k|	if (a_chk == NULL) {
  ------------------
  |  Branch (11216:6): [True: 6.12k, False: 5.87k]
  ------------------
11217|  6.12k|		sctp_alloc_a_chunk(stcb, a_chk);
  ------------------
  |  |  169|  6.12k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  6.12k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  3.93k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  3.93k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  3.93k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 3.93k, False: 0]
  |  |  ------------------
  |  |  173|  3.93k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  3.93k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  3.93k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  3.93k|			(_chk)->whoTo = NULL; \
  |  |  175|  3.93k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  3.93k|		} \
  |  |  177|  3.93k|	} else { \
  |  |  178|  2.18k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  2.18k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  2.18k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  2.18k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  2.18k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  2.18k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  2.18k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  2.18k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  2.18k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  2.18k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  2.18k|	} \
  |  |  185|  6.12k|}
  ------------------
  |  Branch (11217:3): [True: 826, False: 1.36k]
  |  Branch (11217:3): [Folded, False: 2.18k]
  |  Branch (11217:3): [True: 3.93k, False: 2.18k]
  ------------------
11218|  6.12k|		if (a_chk == NULL) {
  ------------------
  |  Branch (11218:7): [True: 0, False: 6.12k]
  ------------------
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|  6.12k|		a_chk->copy_by_ref = 0;
11232|  6.12k|		a_chk->rec.chunk_id.id = type;
11233|  6.12k|		a_chk->rec.chunk_id.can_take_data = 1;
11234|  6.12k|	}
11235|       |	/* Clear our pkt counts */
11236|  11.9k|	asoc->data_pkts_seen = 0;
11237|       |
11238|  11.9k|	a_chk->flags = 0;
11239|  11.9k|	a_chk->asoc = asoc;
11240|  11.9k|	a_chk->snd_count = 0;
11241|  11.9k|	a_chk->send_size = 0;	/* fill in later */
11242|  11.9k|	a_chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  11.9k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
11243|  11.9k|	a_chk->whoTo = NULL;
11244|       |
11245|  11.9k|	if ((asoc->last_data_chunk_from->dest_state & SCTP_ADDR_REACHABLE) == 0) {
  ------------------
  |  |  481|  11.9k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (11245:6): [True: 0, False: 11.9k]
  ------------------
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|  11.9k|	} else {
11256|  11.9k|		a_chk->whoTo = asoc->last_data_chunk_from;
11257|  11.9k|	}
11258|  11.9k|	if (a_chk->whoTo) {
  ------------------
  |  Branch (11258:6): [True: 11.9k, False: 0]
  ------------------
11259|  11.9k|		atomic_add_int(&a_chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  11.9k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
11260|  11.9k|	}
11261|  11.9k|	if (SCTP_TSN_GT(asoc->highest_tsn_inside_map, asoc->highest_tsn_inside_nr_map)) {
  ------------------
  |  |  889|  11.9k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  11.9k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 4.20k, False: 7.79k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 4.20k]
  |  |  |  |  ------------------
  |  |  |  |  884|  11.9k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 1.14k, False: 10.8k]
  |  |  |  |  |  Branch (884:43): [True: 1.14k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11262|  1.14k|		highest_tsn = asoc->highest_tsn_inside_map;
11263|  10.8k|	} else {
11264|  10.8k|		highest_tsn = asoc->highest_tsn_inside_nr_map;
11265|  10.8k|	}
11266|  11.9k|	if (highest_tsn == asoc->cumulative_tsn) {
  ------------------
  |  Branch (11266:6): [True: 9.12k, False: 2.87k]
  ------------------
11267|       |		/* no gaps */
11268|  9.12k|		if (type == SCTP_SELECTIVE_ACK) {
  ------------------
  |  |  457|  9.12k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (11268:7): [True: 3.56k, False: 5.55k]
  ------------------
11269|  3.56k|			space_req = sizeof(struct sctp_sack_chunk);
11270|  5.55k|		} else {
11271|  5.55k|			space_req = sizeof(struct sctp_nr_sack_chunk);
11272|  5.55k|		}
11273|  9.12k|	} else {
11274|       |		/* gaps get a cluster */
11275|  2.87k|		space_req = MCLBYTES;
  ------------------
  |  |   51|  2.87k|#define MCLBYTES 2048
  ------------------
11276|  2.87k|	}
11277|       |	/* Ok now lets formulate a MBUF with our sack */
11278|  11.9k|	a_chk->data = sctp_get_mbuf_for_msg(space_req, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  11.9k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	a_chk->data = sctp_get_mbuf_for_msg(space_req, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  11.9k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
11279|  11.9k|	if ((a_chk->data == NULL) ||
  ------------------
  |  Branch (11279:6): [True: 0, False: 11.9k]
  ------------------
11280|  11.9k|	    (a_chk->whoTo == NULL)) {
  ------------------
  |  Branch (11280:6): [True: 0, False: 11.9k]
  ------------------
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|  11.9k|	SCTP_BUF_RESV_UF(a_chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  11.9k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  11.9k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11302|  11.9k|	space = (unsigned int)M_TRAILINGSPACE(a_chk->data);
  ------------------
  |  |  355|  11.9k|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|  11.9k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|  11.9k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (355:3): [True: 2.87k, False: 9.12k]
  |  |  ------------------
  |  |  356|  11.9k|	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  326|  2.87k|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  2.87k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|  2.87k|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 2.87k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|  2.87k|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  2.87k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|  2.87k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 2.87k]
  |  |  |  |  ------------------
  |  |  |  |  328|  2.87k|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|  2.87k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 2.87k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|  2.87k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|  2.87k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |  357|  2.87k|		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  219|  2.87k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  218|  2.87k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  |  |  358|  11.9k|	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  227|  9.12k|#define	m_dat		M_dat.M_databuf
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  138|  9.12k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  9.12k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  219|  9.12k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  218|  9.12k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11303|  11.9k|	if (space > (a_chk->whoTo->mtu - SCTP_MIN_OVERHEAD)) {
  ------------------
  |  |  564|  11.9k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  11.9k|                           sizeof(struct sctphdr))
  ------------------
  |  Branch (11303:6): [True: 2.87k, False: 9.12k]
  ------------------
11304|  2.87k|		space = (a_chk->whoTo->mtu - SCTP_MIN_OVERHEAD);
  ------------------
  |  |  564|  2.87k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  2.87k|                           sizeof(struct sctphdr))
  ------------------
11305|  2.87k|	}
11306|  11.9k|	limit = mtod(a_chk->data, caddr_t);
  ------------------
  |  |   96|  11.9k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  11.9k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11307|  11.9k|	limit += space;
11308|       |
11309|  11.9k|	flags = 0;
11310|       |
11311|  11.9k|	if ((asoc->sctp_cmt_on_off > 0) &&
  ------------------
  |  Branch (11311:6): [True: 0, False: 11.9k]
  ------------------
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|  11.9k|	stcb->freed_by_sorcv_sincelast = 0;
11330|       |
11331|  11.9k|	if (type == SCTP_SELECTIVE_ACK) {
  ------------------
  |  |  457|  11.9k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (11331:6): [True: 5.71k, False: 6.28k]
  ------------------
11332|  5.71k|		sack = mtod(a_chk->data, struct sctp_sack_chunk *);
  ------------------
  |  |   96|  5.71k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  5.71k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11333|  5.71k|		nr_sack = NULL;
11334|  5.71k|		gap_descriptor = (struct sctp_gap_ack_block *)((caddr_t)sack + sizeof(struct sctp_sack_chunk));
11335|  5.71k|		if (highest_tsn > asoc->mapping_array_base_tsn) {
  ------------------
  |  Branch (11335:7): [True: 2.29k, False: 3.41k]
  ------------------
11336|  2.29k|			siz = (((highest_tsn - asoc->mapping_array_base_tsn) + 1) + 7) / 8;
11337|  3.41k|		} else {
11338|  3.41k|			siz = (((MAX_TSN - asoc->mapping_array_base_tsn) + 1) + highest_tsn + 7) / 8;
  ------------------
  |  |  310|  3.41k|#define MAX_TSN	0xffffffff
  ------------------
11339|  3.41k|		}
11340|  6.28k|	} else {
11341|  6.28k|		sack = NULL;
11342|  6.28k|		nr_sack = mtod(a_chk->data, struct sctp_nr_sack_chunk *);
  ------------------
  |  |   96|  6.28k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  6.28k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11343|  6.28k|		gap_descriptor = (struct sctp_gap_ack_block *)((caddr_t)nr_sack + sizeof(struct sctp_nr_sack_chunk));
11344|  6.28k|		if (asoc->highest_tsn_inside_map > asoc->mapping_array_base_tsn) {
  ------------------
  |  Branch (11344:7): [True: 0, False: 6.28k]
  ------------------
11345|      0|			siz = (((asoc->highest_tsn_inside_map - asoc->mapping_array_base_tsn) + 1) + 7) / 8;
11346|  6.28k|		} else {
11347|  6.28k|			siz = (((MAX_TSN - asoc->mapping_array_base_tsn) + 1) + asoc->highest_tsn_inside_map + 7) / 8;
  ------------------
  |  |  310|  6.28k|#define MAX_TSN	0xffffffff
  ------------------
11348|  6.28k|		}
11349|  6.28k|	}
11350|       |
11351|  11.9k|	if (SCTP_TSN_GT(asoc->mapping_array_base_tsn, asoc->cumulative_tsn)) {
  ------------------
  |  |  889|  11.9k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  11.9k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 3.63k, False: 8.36k]
  |  |  |  |  |  Branch (883:43): [True: 729, False: 2.90k]
  |  |  |  |  ------------------
  |  |  |  |  884|  11.9k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 7.99k, False: 3.27k]
  |  |  |  |  |  Branch (884:43): [True: 7.99k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11352|  8.72k|		offset = 1;
11353|  8.72k|	} else {
11354|  3.27k|		offset = asoc->mapping_array_base_tsn - asoc->cumulative_tsn;
11355|  3.27k|	}
11356|  11.9k|	if (((type == SCTP_SELECTIVE_ACK) &&
  ------------------
  |  |  457|  11.9k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (11356:7): [True: 5.71k, False: 6.28k]
  ------------------
11357|  11.9k|	     SCTP_TSN_GT(highest_tsn, asoc->cumulative_tsn)) ||
  ------------------
  |  |  889|  5.71k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  5.71k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 5.71k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  5.71k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 2.14k, False: 3.56k]
  |  |  |  |  |  Branch (884:43): [True: 2.14k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11358|  9.85k|	    ((type == SCTP_NR_SELECTIVE_ACK) &&
  ------------------
  |  |  472|  9.85k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (11358:7): [True: 6.28k, False: 3.56k]
  ------------------
11359|  9.85k|	     SCTP_TSN_GT(asoc->highest_tsn_inside_map, asoc->cumulative_tsn))) {
  ------------------
  |  |  889|  6.28k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  6.28k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 3.71k, False: 2.57k]
  |  |  |  |  |  Branch (883:43): [True: 729, False: 2.98k]
  |  |  |  |  ------------------
  |  |  |  |  884|  6.28k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 5.55k]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11360|       |		/* we have a gap .. maybe */
11361|   481k|		for (i = 0; i < siz; i++) {
  ------------------
  |  Branch (11361:15): [True: 478k, False: 2.87k]
  ------------------
11362|   478k|			tsn_map = asoc->mapping_array[i];
11363|   478k|			if (type == SCTP_SELECTIVE_ACK) {
  ------------------
  |  |  457|   478k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (11363:8): [True: 478k, False: 0]
  ------------------
11364|   478k|				tsn_map |= asoc->nr_mapping_array[i];
11365|   478k|			}
11366|   478k|			if (i == 0) {
  ------------------
  |  Branch (11366:8): [True: 2.14k, False: 476k]
  ------------------
11367|       |				/*
11368|       |				 * Clear all bits corresponding to TSNs
11369|       |				 * smaller or equal to the cumulative TSN.
11370|       |				 */
11371|  2.14k|				tsn_map &= (~0U << (1 - offset));
11372|  2.14k|			}
11373|   478k|			selector = &sack_array[tsn_map];
11374|   478k|			if (mergeable && selector->right_edge) {
  ------------------
  |  Branch (11374:8): [True: 892, False: 477k]
  |  Branch (11374:21): [True: 206, False: 686]
  ------------------
11375|       |				/*
11376|       |				 * Backup, left and right edges were ok to
11377|       |				 * merge.
11378|       |				 */
11379|    206|				num_gap_blocks--;
11380|    206|				gap_descriptor--;
11381|    206|			}
11382|   478k|			if (selector->num_entries == 0)
  ------------------
  |  Branch (11382:8): [True: 472k, False: 6.46k]
  ------------------
11383|   472k|				mergeable = 0;
11384|  6.46k|			else {
11385|  13.4k|				for (j = 0; j < selector->num_entries; j++) {
  ------------------
  |  Branch (11385:17): [True: 6.97k, False: 6.46k]
  ------------------
11386|  6.97k|					if (mergeable && selector->right_edge) {
  ------------------
  |  Branch (11386:10): [True: 328, False: 6.65k]
  |  Branch (11386:23): [True: 206, False: 122]
  ------------------
11387|       |						/*
11388|       |						 * do a merge by NOT setting
11389|       |						 * the left side
11390|       |						 */
11391|    206|						mergeable = 0;
11392|  6.77k|					} else {
11393|       |						/*
11394|       |						 * no merge, set the left
11395|       |						 * side
11396|       |						 */
11397|  6.77k|						mergeable = 0;
11398|  6.77k|						gap_descriptor->start = htons((selector->gaps[j].start + offset));
11399|  6.77k|					}
11400|  6.97k|					gap_descriptor->end = htons((selector->gaps[j].end + offset));
11401|  6.97k|					num_gap_blocks++;
11402|  6.97k|					gap_descriptor++;
11403|  6.97k|					if (((caddr_t)gap_descriptor + sizeof(struct sctp_gap_ack_block)) > limit) {
  ------------------
  |  Branch (11403:10): [True: 0, False: 6.97k]
  ------------------
11404|       |						/* no more room */
11405|      0|						limit_reached = 1;
11406|      0|						break;
11407|      0|					}
11408|  6.97k|				}
11409|  6.46k|				if (selector->left_edge) {
  ------------------
  |  Branch (11409:9): [True: 1.31k, False: 5.15k]
  ------------------
11410|  1.31k|					mergeable = 1;
11411|  1.31k|				}
11412|  6.46k|			}
11413|   478k|			if (limit_reached) {
  ------------------
  |  Branch (11413:8): [True: 0, False: 478k]
  ------------------
11414|       |				/* Reached the limit stop */
11415|      0|				break;
11416|      0|			}
11417|   478k|			offset += 8;
11418|   478k|		}
11419|  2.87k|	}
11420|  11.9k|	if ((type == SCTP_NR_SELECTIVE_ACK) &&
  ------------------
  |  |  472|  11.9k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (11420:6): [True: 6.28k, False: 5.71k]
  ------------------
11421|  6.28k|	    (limit_reached == 0)) {
  ------------------
  |  Branch (11421:6): [True: 6.28k, False: 0]
  ------------------
11422|  6.28k|		mergeable = 0;
11423|       |
11424|  6.28k|		if (asoc->highest_tsn_inside_nr_map > asoc->mapping_array_base_tsn) {
  ------------------
  |  Branch (11424:7): [True: 2.72k, False: 3.56k]
  ------------------
11425|  2.72k|			siz = (((asoc->highest_tsn_inside_nr_map - asoc->mapping_array_base_tsn) + 1) + 7) / 8;
11426|  3.56k|		} else {
11427|  3.56k|			siz = (((MAX_TSN - asoc->mapping_array_base_tsn) + 1) + asoc->highest_tsn_inside_nr_map + 7) / 8;
  ------------------
  |  |  310|  3.56k|#define MAX_TSN	0xffffffff
  ------------------
11428|  3.56k|		}
11429|       |
11430|  6.28k|		if (SCTP_TSN_GT(asoc->mapping_array_base_tsn, asoc->cumulative_tsn)) {
  ------------------
  |  |  889|  6.28k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  6.28k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 3.45k, False: 2.83k]
  |  |  |  |  |  Branch (883:43): [True: 729, False: 2.72k]
  |  |  |  |  ------------------
  |  |  |  |  884|  6.28k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 2.56k, False: 2.98k]
  |  |  |  |  |  Branch (884:43): [True: 2.56k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11431|  3.29k|			offset = 1;
11432|  3.29k|		} else {
11433|  2.98k|			offset = asoc->mapping_array_base_tsn - asoc->cumulative_tsn;
11434|  2.98k|		}
11435|  6.28k|		if (SCTP_TSN_GT(asoc->highest_tsn_inside_nr_map, asoc->cumulative_tsn)) {
  ------------------
  |  |  889|  6.28k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  6.28k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 729, False: 5.55k]
  |  |  |  |  |  Branch (883:43): [True: 729, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  6.28k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 5.55k]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11436|       |			/* we have a gap .. maybe */
11437|    729|			for (i = 0; i < siz; i++) {
  ------------------
  |  Branch (11437:16): [True: 0, False: 729]
  ------------------
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|    729|		}
11493|  6.28k|	}
11494|       |	/* now we must add any dups we are going to report. */
11495|  11.9k|	if ((limit_reached == 0) && (asoc->numduptsns)) {
  ------------------
  |  Branch (11495:6): [True: 11.9k, False: 0]
  |  Branch (11495:30): [True: 1.39k, False: 10.5k]
  ------------------
11496|  1.39k|		dup = (uint32_t *) gap_descriptor;
11497|  3.96k|		for (i = 0; i < asoc->numduptsns; i++) {
  ------------------
  |  Branch (11497:15): [True: 2.56k, False: 1.39k]
  ------------------
11498|  2.56k|			*dup = htonl(asoc->dup_tsns[i]);
11499|  2.56k|			dup++;
11500|  2.56k|			num_dups++;
11501|  2.56k|			if (((caddr_t)dup + sizeof(uint32_t)) > limit) {
  ------------------
  |  Branch (11501:8): [True: 0, False: 2.56k]
  ------------------
11502|       |				/* no more room */
11503|      0|				break;
11504|      0|			}
11505|  2.56k|		}
11506|  1.39k|		asoc->numduptsns = 0;
11507|  1.39k|	}
11508|       |	/*
11509|       |	 * now that the chunk is prepared queue it to the control chunk
11510|       |	 * queue.
11511|       |	 */
11512|  11.9k|	if (type == SCTP_SELECTIVE_ACK) {
  ------------------
  |  |  457|  11.9k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (11512:6): [True: 5.71k, False: 6.28k]
  ------------------
11513|  5.71k|		a_chk->send_size = (uint16_t)(sizeof(struct sctp_sack_chunk) +
11514|  5.71k|		                              (num_gap_blocks + num_nr_gap_blocks) * sizeof(struct sctp_gap_ack_block) +
11515|  5.71k|		                              num_dups * sizeof(int32_t));
11516|  5.71k|		SCTP_BUF_LEN(a_chk->data) = a_chk->send_size;
  ------------------
  |  |  801|  5.71k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  5.71k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11517|  5.71k|		sack->sack.cum_tsn_ack = htonl(asoc->cumulative_tsn);
11518|  5.71k|		sack->sack.a_rwnd = htonl(asoc->my_rwnd);
11519|  5.71k|		sack->sack.num_gap_ack_blks = htons(num_gap_blocks);
11520|  5.71k|		sack->sack.num_dup_tsns = htons(num_dups);
11521|  5.71k|		sack->ch.chunk_type = type;
11522|  5.71k|		sack->ch.chunk_flags = flags;
11523|  5.71k|		sack->ch.chunk_length = htons(a_chk->send_size);
11524|  6.28k|	} else {
11525|  6.28k|		a_chk->send_size = (uint16_t)(sizeof(struct sctp_nr_sack_chunk) +
11526|  6.28k|		                              (num_gap_blocks + num_nr_gap_blocks) * sizeof(struct sctp_gap_ack_block) +
11527|  6.28k|		                              num_dups * sizeof(int32_t));
11528|  6.28k|		SCTP_BUF_LEN(a_chk->data) = a_chk->send_size;
  ------------------
  |  |  801|  6.28k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  6.28k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11529|  6.28k|		nr_sack->nr_sack.cum_tsn_ack = htonl(asoc->cumulative_tsn);
11530|  6.28k|		nr_sack->nr_sack.a_rwnd = htonl(asoc->my_rwnd);
11531|  6.28k|		nr_sack->nr_sack.num_gap_ack_blks = htons(num_gap_blocks);
11532|  6.28k|		nr_sack->nr_sack.num_nr_gap_ack_blks = htons(num_nr_gap_blocks);
11533|  6.28k|		nr_sack->nr_sack.num_dup_tsns = htons(num_dups);
11534|  6.28k|		nr_sack->nr_sack.reserved = 0;
11535|  6.28k|		nr_sack->ch.chunk_type = type;
11536|  6.28k|		nr_sack->ch.chunk_flags = flags;
11537|  6.28k|		nr_sack->ch.chunk_length = htons(a_chk->send_size);
11538|  6.28k|	}
11539|  11.9k|	TAILQ_INSERT_TAIL(&asoc->control_send_queue, a_chk, sctp_next);
  ------------------
  |  Branch (11539:2): [Folded, False: 11.9k]
  ------------------
11540|  11.9k|	asoc->my_last_reported_rwnd = asoc->my_rwnd;
11541|  11.9k|	asoc->ctrl_queue_cnt++;
11542|  11.9k|	asoc->send_sack = 0;
11543|  11.9k|	SCTP_STAT_INCR(sctps_sendsacks);
  ------------------
  |  | 1112|  11.9k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  11.9k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  11.9k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11544|  11.9k|	return;
11545|  11.9k|}
sctp_send_abort_tcb:
11549|  8.51k|{
11550|  8.51k|	struct mbuf *m_abort, *m, *m_last;
11551|  8.51k|	struct mbuf *m_out, *m_end = NULL;
11552|  8.51k|	struct sctp_abort_chunk *abort;
11553|  8.51k|	struct sctp_auth_chunk *auth = NULL;
11554|  8.51k|	struct sctp_nets *net;
11555|  8.51k|	uint32_t vtag;
11556|  8.51k|	uint32_t auth_offset = 0;
11557|  8.51k|	int error;
11558|  8.51k|	uint16_t cause_len, chunk_len, padding_len;
11559|  8.51k|	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|  8.51k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  8.51k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  8.51k|	do {                         \
  |  |  |  |  113|  8.51k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 8.51k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.51k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 8.51k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11569|       |	/*-
11570|       |	 * Add an AUTH chunk, if chunk requires it and save the offset into
11571|       |	 * the chain for AUTH
11572|       |	 */
11573|  8.51k|	if (sctp_auth_is_required_chunk(SCTP_ABORT_ASSOCIATION,
  ------------------
  |  |  100|  8.51k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 25, False: 8.48k]
  |  |  |  Branch (100:51): [True: 686, False: 7.82k]
  |  |  ------------------
  ------------------
11574|  8.51k|	                                stcb->asoc.peer_auth_chunks)) {
11575|     25|		m_out = sctp_add_auth_chunk(NULL, &m_end, &auth, &auth_offset,
11576|     25|					    stcb, SCTP_ABORT_ASSOCIATION);
  ------------------
  |  |  460|     25|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
11577|     25|		SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|     25|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|     25|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     25|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     25|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11578|  8.48k|	} else {
11579|  8.48k|		m_out = NULL;
11580|  8.48k|	}
11581|  8.51k|	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: 8.51k]
  ------------------
11583|      0|		use_zero_crc = true;
11584|      0|		break;
11585|  8.51k|	default:
  ------------------
  |  Branch (11585:2): [True: 8.51k, False: 0]
  ------------------
11586|  8.51k|		use_zero_crc = false;
11587|  8.51k|		break;
11588|  8.51k|	}
11589|  8.51k|	m_abort = sctp_get_mbuf_for_msg(sizeof(struct sctp_abort_chunk), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|  8.51k|#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|  8.51k|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|  8.51k|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
11590|  8.51k|	if (m_abort == NULL) {
  ------------------
  |  Branch (11590:6): [True: 0, False: 8.51k]
  ------------------
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|  8.51k|	SCTP_BUF_NEXT(m_abort) = operr;
  ------------------
  |  |  802|  8.51k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  8.51k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
11601|  8.51k|	cause_len = 0;
11602|  8.51k|	m_last = NULL;
11603|  17.0k|	for (m = operr; m; m = SCTP_BUF_NEXT(m)) {
  ------------------
  |  |  802|  8.51k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  8.51k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (11603:18): [True: 8.51k, False: 8.51k]
  ------------------
11604|  8.51k|		cause_len += (uint16_t)SCTP_BUF_LEN(m);
  ------------------
  |  |  801|  8.51k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  8.51k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11605|  8.51k|		if (SCTP_BUF_NEXT(m) == NULL) {
  ------------------
  |  |  802|  8.51k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  8.51k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (11605:7): [True: 8.51k, False: 0]
  ------------------
11606|  8.51k|			m_last = m;
11607|  8.51k|		}
11608|  8.51k|	}
11609|  8.51k|	SCTP_BUF_LEN(m_abort) = sizeof(struct sctp_abort_chunk);
  ------------------
  |  |  801|  8.51k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  8.51k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11610|  8.51k|	chunk_len = (uint16_t)sizeof(struct sctp_abort_chunk) + cause_len;
11611|  8.51k|	padding_len = SCTP_SIZE32(chunk_len) - chunk_len;
  ------------------
  |  |  383|  8.51k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
11612|  8.51k|	if (m_out == NULL) {
  ------------------
  |  Branch (11612:6): [True: 8.50k, False: 10]
  ------------------
11613|       |		/* NO Auth chunk prepended, so reserve space in front */
11614|  8.50k|		SCTP_BUF_RESV_UF(m_abort, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  8.50k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  8.50k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11615|  8.50k|		m_out = m_abort;
11616|  8.50k|	} else {
11617|       |		/* Put AUTH chunk at the front of the chain */
11618|     10|		SCTP_BUF_NEXT(m_end) = m_abort;
  ------------------
  |  |  802|     10|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|     10|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
11619|     10|	}
11620|  8.51k|	if (stcb->asoc.alternate) {
  ------------------
  |  Branch (11620:6): [True: 35, False: 8.47k]
  ------------------
11621|     35|		net = stcb->asoc.alternate;
11622|  8.47k|	} else {
11623|  8.47k|		net = stcb->asoc.primary_destination;
11624|  8.47k|	}
11625|       |	/* Fill in the ABORT chunk header. */
11626|  8.51k|	abort = mtod(m_abort, struct sctp_abort_chunk *);
  ------------------
  |  |   96|  8.51k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  8.51k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11627|  8.51k|	abort->ch.chunk_type = SCTP_ABORT_ASSOCIATION;
  ------------------
  |  |  460|  8.51k|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
11628|  8.51k|	if (stcb->asoc.peer_vtag == 0) {
  ------------------
  |  Branch (11628:6): [True: 105, False: 8.40k]
  ------------------
11629|       |		/* This happens iff the assoc is in COOKIE-WAIT state. */
11630|    105|		vtag = stcb->asoc.my_vtag;
11631|    105|		abort->ch.chunk_flags = SCTP_HAD_NO_TCB;
  ------------------
  |  |  493|    105|#define SCTP_HAD_NO_TCB		0x01
  ------------------
11632|  8.40k|	} else {
11633|  8.40k|		vtag = stcb->asoc.peer_vtag;
11634|  8.40k|		abort->ch.chunk_flags = 0;
11635|  8.40k|	}
11636|  8.51k|	abort->ch.chunk_length = htons(chunk_len);
11637|       |	/* Add padding, if necessary. */
11638|  8.51k|	if (padding_len > 0) {
  ------------------
  |  Branch (11638:6): [True: 954, False: 7.55k]
  ------------------
11639|    954|		if ((m_last == NULL) ||
  ------------------
  |  Branch (11639:7): [True: 0, False: 954]
  ------------------
11640|    954|		    (sctp_add_pad_tombuf(m_last, padding_len) == NULL)) {
  ------------------
  |  Branch (11640:7): [True: 0, False: 954]
  ------------------
11641|      0|			sctp_m_freem(m_out);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
11642|      0|			return;
11643|      0|		}
11644|    954|	}
11645|  8.51k|	if ((error = sctp_lowlevel_chunk_output(stcb->sctp_ep, stcb, net,
  ------------------
  |  Branch (11645:6): [True: 153, False: 8.36k]
  ------------------
11646|  8.51k|	                                        (struct sockaddr *)&net->ro._l_addr,
11647|  8.51k|	                                        m_out, auth_offset, auth, stcb->asoc.authinfo.active_keyid, 1, 0, 0,
11648|  8.51k|	                                        stcb->sctp_ep->sctp_lport, stcb->rport, htonl(vtag),
  ------------------
  |  |  426|  8.51k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  8.51k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  8.51k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11649|  8.51k|	                                        stcb->asoc.primary_destination->port, NULL,
11650|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
11651|       |	                                        0, 0,
11652|       |#endif
11653|  8.51k|	                                        use_zero_crc,
11654|  8.51k|	                                        so_locked))) {
11655|    153|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "Gak send error %d\n", error);
11656|    153|		if (error == ENOBUFS) {
  ------------------
  |  Branch (11656:7): [True: 0, False: 153]
  ------------------
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|  8.36k|	} else {
11661|  8.36k|		stcb->asoc.ifp_had_enobuf = 0;
11662|  8.36k|	}
11663|  8.51k|	SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|  8.51k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  8.51k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  8.51k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  8.51k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11664|  8.51k|}
sctp_send_shutdown_complete:
11670|      9|{
11671|       |	/* formulate and SEND a SHUTDOWN-COMPLETE */
11672|      9|	struct mbuf *m_shutdown_comp;
11673|      9|	struct sctp_shutdown_complete_chunk *shutdown_complete;
11674|      9|	uint32_t vtag;
11675|      9|	int error;
11676|      9|	uint8_t flags;
11677|      9|	bool use_zero_crc;
11678|       |
11679|      9|	m_shutdown_comp = sctp_get_mbuf_for_msg(sizeof(struct sctp_chunkhdr), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|      9|#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|      9|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|      9|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
11680|      9|	if (m_shutdown_comp == NULL) {
  ------------------
  |  Branch (11680:6): [True: 0, False: 9]
  ------------------
11681|       |		/* no mbuf's */
11682|      0|		return;
11683|      0|	}
11684|      9|	if (reflect_vtag) {
  ------------------
  |  Branch (11684:6): [True: 8, False: 1]
  ------------------
11685|      8|		flags = SCTP_HAD_NO_TCB;
  ------------------
  |  |  493|      8|#define SCTP_HAD_NO_TCB		0x01
  ------------------
11686|      8|		vtag = stcb->asoc.my_vtag;
11687|      8|	} else {
11688|      1|		flags = 0;
11689|      1|		vtag = stcb->asoc.peer_vtag;
11690|      1|	}
11691|      9|	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: 9]
  ------------------
11693|      0|		use_zero_crc = true;
11694|      0|		break;
11695|      9|	default:
  ------------------
  |  Branch (11695:2): [True: 9, False: 0]
  ------------------
11696|      9|		use_zero_crc = false;
11697|      9|		break;
11698|      9|	}
11699|      9|	shutdown_complete = mtod(m_shutdown_comp, struct sctp_shutdown_complete_chunk *);
  ------------------
  |  |   96|      9|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      9|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11700|      9|	shutdown_complete->ch.chunk_type = SCTP_SHUTDOWN_COMPLETE;
  ------------------
  |  |  468|      9|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
11701|      9|	shutdown_complete->ch.chunk_flags = flags;
11702|      9|	shutdown_complete->ch.chunk_length = htons(sizeof(struct sctp_shutdown_complete_chunk));
11703|      9|	SCTP_BUF_LEN(m_shutdown_comp) = sizeof(struct sctp_shutdown_complete_chunk);
  ------------------
  |  |  801|      9|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      9|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11704|      9|	if ((error = sctp_lowlevel_chunk_output(stcb->sctp_ep, stcb, net,
  ------------------
  |  Branch (11704:6): [True: 0, False: 9]
  ------------------
11705|      9|	                                        (struct sockaddr *)&net->ro._l_addr,
11706|      9|	                                        m_shutdown_comp, 0, NULL, 0, 1, 0, 0,
11707|      9|	                                        stcb->sctp_ep->sctp_lport, stcb->rport,
  ------------------
  |  |  426|      9|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|      9|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|      9|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11708|      9|	                                        htonl(vtag),
11709|      9|	                                        net->port, NULL,
11710|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
11711|       |	                                        0, 0,
11712|       |#endif
11713|      9|	                                        use_zero_crc,
11714|      9|	                                        SCTP_SO_NOT_LOCKED))) {
  ------------------
  |  |  960|      9|#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|      9|	} else {
11721|      9|		stcb->asoc.ifp_had_enobuf = 0;
11722|      9|	}
11723|      9|	SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|      9|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|      9|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|      9|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|      9|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
11724|      9|	return;
11725|      9|}
sctp_send_shutdown_complete2:
12128|      1|{
12129|      1|	sctp_send_resp_msg(src, dst, sh, 0, SCTP_SHUTDOWN_COMPLETE, NULL,
  ------------------
  |  |  468|      1|#define SCTP_SHUTDOWN_COMPLETE	0x0e
  ------------------
12130|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
12131|       |	                   mflowtype, mflowid, fibnum,
12132|       |#endif
12133|      1|	                   vrf_id, port);
12134|      1|}
sctp_send_hb:
12138|  41.7k|{
12139|  41.7k|	struct sctp_tmit_chunk *chk;
12140|  41.7k|	struct sctp_heartbeat_chunk *hb;
12141|  41.7k|	struct timeval now;
12142|       |
12143|  41.7k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  41.7k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  41.7k|	do {                         \
  |  |  |  |  113|  41.7k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 41.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|  41.7k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 41.7k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12144|  41.7k|	if (net == NULL) {
  ------------------
  |  Branch (12144:6): [True: 0, False: 41.7k]
  ------------------
12145|      0|		return;
12146|      0|	}
12147|  41.7k|	(void)SCTP_GETTIME_TIMEVAL(&now);
  ------------------
  |  |  991|  41.7k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
12148|  41.7k|	switch (net->ro._l_addr.sa.sa_family) {
12149|      0|#ifdef INET
12150|  1.46k|	case AF_INET:
  ------------------
  |  Branch (12150:2): [True: 1.46k, False: 40.2k]
  ------------------
12151|  1.46k|		break;
12152|      0|#endif
12153|      0|#ifdef INET6
12154|  2.09k|	case AF_INET6:
  ------------------
  |  Branch (12154:2): [True: 2.09k, False: 39.6k]
  ------------------
12155|  2.09k|		break;
12156|      0|#endif
12157|      0|#if defined(__Userspace__)
12158|  38.1k|	case AF_CONN:
  ------------------
  |  | 1014|  38.1k|#define AF_CONN 123
  ------------------
  |  Branch (12158:2): [True: 38.1k, False: 3.56k]
  ------------------
12159|  38.1k|		break;
12160|      0|#endif
12161|      0|	default:
  ------------------
  |  Branch (12161:2): [True: 0, False: 41.7k]
  ------------------
12162|      0|		return;
12163|  41.7k|	}
12164|  41.7k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  41.7k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  41.7k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  41.1k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  41.1k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  41.1k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 41.1k, False: 0]
  |  |  ------------------
  |  |  173|  41.1k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  41.1k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  41.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  41.1k|			(_chk)->whoTo = NULL; \
  |  |  175|  41.1k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  41.1k|		} \
  |  |  177|  41.1k|	} else { \
  |  |  178|    607|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|    607|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|    607|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|    607|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|    607|		(_chk)->holds_key_ref = 0; \
  |  |  182|    607|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|    607|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    607|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    607|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|    607|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|    607|	} \
  |  |  185|  41.7k|}
  ------------------
  |  Branch (12164:2): [True: 51, False: 556]
  |  Branch (12164:2): [Folded, False: 607]
  |  Branch (12164:2): [True: 41.1k, False: 607]
  ------------------
12165|  41.7k|	if (chk == NULL) {
  ------------------
  |  Branch (12165:6): [True: 0, False: 41.7k]
  ------------------
12166|      0|		SCTPDBG(SCTP_DEBUG_OUTPUT4, "Gak, can't get a chunk for hb\n");
12167|      0|		return;
12168|      0|	}
12169|       |
12170|  41.7k|	chk->copy_by_ref = 0;
12171|  41.7k|	chk->rec.chunk_id.id = SCTP_HEARTBEAT_REQUEST;
  ------------------
  |  |  458|  41.7k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
12172|  41.7k|	chk->rec.chunk_id.can_take_data = 1;
12173|  41.7k|	chk->flags = 0;
12174|  41.7k|	chk->asoc = &stcb->asoc;
12175|  41.7k|	chk->send_size = sizeof(struct sctp_heartbeat_chunk);
12176|       |
12177|  41.7k|	chk->data = sctp_get_mbuf_for_msg(chk->send_size, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|  41.7k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(chk->send_size, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|  41.7k|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|  41.7k|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
12178|  41.7k|	if (chk->data == NULL) {
  ------------------
  |  Branch (12178:6): [True: 0, False: 41.7k]
  ------------------
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|  41.7k|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  41.7k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  41.7k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12183|  41.7k|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|  41.7k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  41.7k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12184|  41.7k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  41.7k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
12185|  41.7k|	chk->snd_count = 0;
12186|  41.7k|	chk->whoTo = net;
12187|  41.7k|	atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  41.7k|#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|  41.7k|	hb = mtod(chk->data, struct sctp_heartbeat_chunk *);
  ------------------
  |  |   96|  41.7k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  41.7k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12190|  41.7k|	memset(hb, 0, sizeof(struct sctp_heartbeat_chunk));
12191|       |	/* fill out chunk header */
12192|  41.7k|	hb->ch.chunk_type = SCTP_HEARTBEAT_REQUEST;
  ------------------
  |  |  458|  41.7k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
12193|  41.7k|	hb->ch.chunk_flags = 0;
12194|  41.7k|	hb->ch.chunk_length = htons(chk->send_size);
12195|       |	/* Fill out hb parameter */
12196|  41.7k|	hb->heartbeat.hb_info.ph.param_type = htons(SCTP_HEARTBEAT_INFO);
12197|  41.7k|	hb->heartbeat.hb_info.ph.param_length = htons(sizeof(struct sctp_heartbeat_info_param));
12198|  41.7k|	hb->heartbeat.hb_info.time_value_1 = now.tv_sec;
12199|  41.7k|	hb->heartbeat.hb_info.time_value_2 = now.tv_usec;
12200|       |	/* Did our user request this one, put it in */
12201|  41.7k|	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|  41.7k|	switch (net->ro._l_addr.sa.sa_family) {
12206|      0|#ifdef INET
12207|  1.46k|	case AF_INET:
  ------------------
  |  Branch (12207:2): [True: 1.46k, False: 40.2k]
  ------------------
12208|  1.46k|		hb->heartbeat.hb_info.addr_len = sizeof(struct sockaddr_in);
12209|  1.46k|		break;
12210|      0|#endif
12211|      0|#ifdef INET6
12212|  2.09k|	case AF_INET6:
  ------------------
  |  Branch (12212:2): [True: 2.09k, False: 39.6k]
  ------------------
12213|  2.09k|		hb->heartbeat.hb_info.addr_len = sizeof(struct sockaddr_in6);
12214|  2.09k|		break;
12215|      0|#endif
12216|      0|#if defined(__Userspace__)
12217|  38.1k|	case AF_CONN:
  ------------------
  |  | 1014|  38.1k|#define AF_CONN 123
  ------------------
  |  Branch (12217:2): [True: 38.1k, False: 3.56k]
  ------------------
12218|  38.1k|		hb->heartbeat.hb_info.addr_len = sizeof(struct sockaddr_conn);
12219|  38.1k|		break;
12220|      0|#endif
12221|      0|	default:
  ------------------
  |  Branch (12221:2): [True: 0, False: 41.7k]
  ------------------
12222|      0|		hb->heartbeat.hb_info.addr_len = 0;
12223|      0|		break;
12224|  41.7k|	}
12225|  41.7k|#endif
12226|  41.7k|	if (net->dest_state & SCTP_ADDR_UNCONFIRMED) {
  ------------------
  |  |  487|  41.7k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (12226:6): [True: 2.86k, False: 38.8k]
  ------------------
12227|       |		/*
12228|       |		 * we only take from the entropy pool if the address is not
12229|       |		 * confirmed.
12230|       |		 */
12231|  2.86k|		net->heartbeat_random1 = hb->heartbeat.hb_info.random_value1 = sctp_select_initial_TSN(&stcb->sctp_ep->sctp_ep);
12232|  2.86k|		net->heartbeat_random2 = hb->heartbeat.hb_info.random_value2 = sctp_select_initial_TSN(&stcb->sctp_ep->sctp_ep);
12233|  38.8k|	} else {
12234|  38.8k|		net->heartbeat_random1 = hb->heartbeat.hb_info.random_value1 = 0;
12235|  38.8k|		net->heartbeat_random2 = hb->heartbeat.hb_info.random_value2 = 0;
12236|  38.8k|	}
12237|  41.7k|	switch (net->ro._l_addr.sa.sa_family) {
12238|      0|#ifdef INET
12239|  1.46k|	case AF_INET:
  ------------------
  |  Branch (12239:2): [True: 1.46k, False: 40.2k]
  ------------------
12240|  1.46k|		memcpy(hb->heartbeat.hb_info.address,
12241|  1.46k|		       &net->ro._l_addr.sin.sin_addr,
12242|  1.46k|		       sizeof(net->ro._l_addr.sin.sin_addr));
12243|  1.46k|		break;
12244|      0|#endif
12245|      0|#ifdef INET6
12246|  2.09k|	case AF_INET6:
  ------------------
  |  Branch (12246:2): [True: 2.09k, False: 39.6k]
  ------------------
12247|  2.09k|		memcpy(hb->heartbeat.hb_info.address,
12248|  2.09k|		       &net->ro._l_addr.sin6.sin6_addr,
12249|  2.09k|		       sizeof(net->ro._l_addr.sin6.sin6_addr));
12250|  2.09k|		break;
12251|      0|#endif
12252|      0|#if defined(__Userspace__)
12253|  38.1k|	case AF_CONN:
  ------------------
  |  | 1014|  38.1k|#define AF_CONN 123
  ------------------
  |  Branch (12253:2): [True: 38.1k, False: 3.56k]
  ------------------
12254|  38.1k|		memcpy(hb->heartbeat.hb_info.address,
12255|  38.1k|		       &net->ro._l_addr.sconn.sconn_addr,
12256|  38.1k|		       sizeof(net->ro._l_addr.sconn.sconn_addr));
12257|  38.1k|		break;
12258|      0|#endif
12259|      0|	default:
  ------------------
  |  Branch (12259:2): [True: 0, False: 41.7k]
  ------------------
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|  41.7k|	}
12268|  41.7k|	net->hb_responded = 0;
12269|  41.7k|	TAILQ_INSERT_TAIL(&stcb->asoc.control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (12269:2): [Folded, False: 41.7k]
  ------------------
12270|  41.7k|	stcb->asoc.ctrl_queue_cnt++;
12271|  41.7k|	SCTP_STAT_INCR(sctps_sendheartbeat);
  ------------------
  |  | 1112|  41.7k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  41.7k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  41.7k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12272|  41.7k|	return;
12273|  41.7k|}
sctp_send_packet_dropped:
12342|     20|{
12343|     20|	struct sctp_association *asoc;
12344|     20|	struct sctp_pktdrop_chunk *drp;
12345|     20|	struct sctp_tmit_chunk *chk;
12346|     20|	uint8_t *datap;
12347|     20|	int was_trunc = 0;
12348|     20|	int fullsz = 0;
12349|     20|	long spc;
12350|     20|	int offset;
12351|     20|	struct sctp_chunkhdr *ch, chunk_buf;
12352|     20|	unsigned int chk_length;
12353|       |
12354|     20|        if (!stcb) {
  ------------------
  |  Branch (12354:13): [True: 0, False: 20]
  ------------------
12355|      0|            return;
12356|      0|        }
12357|     20|	asoc = &stcb->asoc;
12358|     20|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|     20|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     20|	do {                         \
  |  |  |  |  113|     20|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 20]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 20]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12359|     20|	if (asoc->pktdrop_supported == 0) {
  ------------------
  |  Branch (12359:6): [True: 20, False: 0]
  ------------------
12360|       |		/*-
12361|       |		 * peer must declare support before I send one.
12362|       |		 */
12363|     20|		return;
12364|     20|	}
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.64k|{
12490|  6.64k|	struct sctp_association *asoc;
12491|  6.64k|	struct sctp_cwr_chunk *cwr;
12492|  6.64k|	struct sctp_tmit_chunk *chk;
12493|       |
12494|  6.64k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  6.64k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.64k|	do {                         \
  |  |  |  |  113|  6.64k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.64k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.64k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12495|  6.64k|	if (net == NULL) {
  ------------------
  |  Branch (12495:6): [True: 0, False: 6.64k]
  ------------------
12496|      0|		return;
12497|      0|	}
12498|  6.64k|	asoc = &stcb->asoc;
12499|  19.8k|	TAILQ_FOREACH(chk, &asoc->control_send_queue, sctp_next) {
  ------------------
  |  Branch (12499:2): [True: 19.8k, False: 474]
  ------------------
12500|  19.8k|		if ((chk->rec.chunk_id.id == SCTP_ECN_CWR) && (net == chk->whoTo)) {
  ------------------
  |  |  467|  19.8k|#define SCTP_ECN_CWR		0x0d
  ------------------
  |  Branch (12500:7): [True: 6.53k, False: 13.2k]
  |  Branch (12500:49): [True: 6.17k, False: 356]
  ------------------
12501|       |			/* found a previous CWR queued to same destination update it if needed */
12502|  6.17k|			uint32_t ctsn;
12503|  6.17k|			cwr = mtod(chk->data, struct sctp_cwr_chunk *);
  ------------------
  |  |   96|  6.17k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  6.17k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12504|  6.17k|			ctsn = ntohl(cwr->tsn);
12505|  6.17k|			if (SCTP_TSN_GT(high_tsn, ctsn)) {
  ------------------
  |  |  889|  6.17k|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|  6.17k|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 0, False: 6.17k]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  884|  6.17k|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 6.17k]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12506|      0|				cwr->tsn = htonl(high_tsn);
12507|      0|			}
12508|  6.17k|			if (override & SCTP_CWR_REDUCE_OVERRIDE) {
  ------------------
  |  |  501|  6.17k|#define SCTP_CWR_REDUCE_OVERRIDE 0x01
  ------------------
  |  Branch (12508:8): [True: 6.17k, False: 0]
  ------------------
12509|       |				/* Make sure override is carried */
12510|  6.17k|				cwr->ch.chunk_flags |= SCTP_CWR_REDUCE_OVERRIDE;
  ------------------
  |  |  501|  6.17k|#define SCTP_CWR_REDUCE_OVERRIDE 0x01
  ------------------
12511|  6.17k|			}
12512|  6.17k|			return;
12513|  6.17k|		}
12514|  19.8k|	}
12515|    474|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|    474|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|    474|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|    328|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|    328|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|    328|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 328, False: 0]
  |  |  ------------------
  |  |  173|    328|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|    328|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    328|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|    328|			(_chk)->whoTo = NULL; \
  |  |  175|    328|			(_chk)->holds_key_ref = 0; \
  |  |  176|    328|		} \
  |  |  177|    328|	} else { \
  |  |  178|    146|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|    146|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|    146|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|    146|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|    146|		(_chk)->holds_key_ref = 0; \
  |  |  182|    146|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|    146|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    146|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    146|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|    146|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|    146|	} \
  |  |  185|    474|}
  ------------------
  |  Branch (12515:2): [True: 56, False: 90]
  |  Branch (12515:2): [Folded, False: 146]
  |  Branch (12515:2): [True: 328, False: 146]
  ------------------
12516|    474|	if (chk == NULL) {
  ------------------
  |  Branch (12516:6): [True: 0, False: 474]
  ------------------
12517|      0|		return;
12518|      0|	}
12519|    474|	chk->copy_by_ref = 0;
12520|    474|	chk->rec.chunk_id.id = SCTP_ECN_CWR;
  ------------------
  |  |  467|    474|#define SCTP_ECN_CWR		0x0d
  ------------------
12521|    474|	chk->rec.chunk_id.can_take_data = 1;
12522|    474|	chk->flags = 0;
12523|    474|	chk->asoc = asoc;
12524|    474|	chk->send_size = sizeof(struct sctp_cwr_chunk);
12525|    474|	chk->data = sctp_get_mbuf_for_msg(chk->send_size, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|    474|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(chk->send_size, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|    474|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|    474|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
12526|    474|	if (chk->data == NULL) {
  ------------------
  |  Branch (12526:6): [True: 0, False: 474]
  ------------------
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|    474|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|    474|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    474|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12531|    474|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|    474|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    474|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12532|    474|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|    474|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
12533|    474|	chk->snd_count = 0;
12534|    474|	chk->whoTo = net;
12535|    474|	atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|    474|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
12536|    474|	cwr = mtod(chk->data, struct sctp_cwr_chunk *);
  ------------------
  |  |   96|    474|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    474|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12537|    474|	cwr->ch.chunk_type = SCTP_ECN_CWR;
  ------------------
  |  |  467|    474|#define SCTP_ECN_CWR		0x0d
  ------------------
12538|    474|	cwr->ch.chunk_flags = override;
12539|    474|	cwr->ch.chunk_length = htons(sizeof(struct sctp_cwr_chunk));
12540|    474|	cwr->tsn = htonl(high_tsn);
12541|       |	TAILQ_INSERT_TAIL(&asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (12541:2): [Folded, False: 474]
  ------------------
12542|    474|	asoc->ctrl_queue_cnt++;
12543|    474|}
sctp_add_stream_reset_result:
12690|  12.4k|{
12691|  12.4k|	uint16_t len, old_len;
12692|  12.4k|	struct sctp_stream_reset_response *resp;
12693|  12.4k|	struct sctp_chunkhdr *ch;
12694|       |
12695|  12.4k|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  12.4k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  12.4k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12696|  12.4k|	old_len = len = SCTP_SIZE32(ntohs(ch->chunk_length));
  ------------------
  |  |  383|  12.4k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12697|       |
12698|       |	/* get to new offset for the param. */
12699|  12.4k|	resp = (struct sctp_stream_reset_response *)((caddr_t)ch + len);
12700|       |	/* now how long will this param be? */
12701|  12.4k|	len = sizeof(struct sctp_stream_reset_response);
12702|  12.4k|	resp->ph.param_type = htons(SCTP_STR_RESET_RESPONSE);
12703|  12.4k|	resp->ph.param_length = htons(len);
12704|  12.4k|	resp->response_seq = htonl(resp_seq);
12705|  12.4k|	resp->result = ntohl(result);
12706|       |
12707|       |	/* now fix the chunk length */
12708|  12.4k|	ch->chunk_length = htons(len + old_len);
12709|  12.4k|	chk->book_size = len + old_len;
12710|  12.4k|	chk->book_size_scale = 0;
12711|  12.4k|	chk->send_size = SCTP_SIZE32(chk->book_size);
  ------------------
  |  |  383|  12.4k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12712|  12.4k|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|  12.4k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  12.4k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12713|  12.4k|	return;
12714|  12.4k|}
sctp_send_deferred_reset_response:
12720|    171|{
12721|    171|	struct sctp_association *asoc;
12722|    171|	struct sctp_tmit_chunk *chk;
12723|    171|	struct sctp_chunkhdr *ch;
12724|       |
12725|    171|	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|    171|	asoc->last_reset_action[0] = response;
12733|    171|	if (asoc->stream_reset_outstanding) {
  ------------------
  |  Branch (12733:6): [True: 50, False: 121]
  ------------------
12734|     50|		return;
12735|     50|	}
12736|    121|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|    121|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|    121|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|     61|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|     61|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|     61|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 61, False: 0]
  |  |  ------------------
  |  |  173|     61|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|     61|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     61|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|     61|			(_chk)->whoTo = NULL; \
  |  |  175|     61|			(_chk)->holds_key_ref = 0; \
  |  |  176|     61|		} \
  |  |  177|     61|	} else { \
  |  |  178|     60|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|     60|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|     60|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|     60|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|     60|		(_chk)->holds_key_ref = 0; \
  |  |  182|     60|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|     60|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     60|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     60|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|     60|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|     60|	} \
  |  |  185|    121|}
  ------------------
  |  Branch (12736:2): [True: 18, False: 42]
  |  Branch (12736:2): [Folded, False: 60]
  |  Branch (12736:2): [True: 61, False: 60]
  ------------------
12737|    121|	if (chk == NULL) {
  ------------------
  |  Branch (12737:6): [True: 0, False: 121]
  ------------------
12738|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
12739|      0|		return;
12740|      0|	}
12741|    121|	chk->copy_by_ref = 0;
12742|    121|	chk->rec.chunk_id.id = SCTP_STREAM_RESET;
  ------------------
  |  |  481|    121|#define SCTP_STREAM_RESET       0x82
  ------------------
12743|    121|	chk->rec.chunk_id.can_take_data = 0;
12744|    121|	chk->flags = 0;
12745|    121|	chk->asoc = &stcb->asoc;
12746|    121|	chk->book_size = sizeof(struct sctp_chunkhdr);
12747|    121|	chk->send_size = SCTP_SIZE32(chk->book_size);
  ------------------
  |  |  383|    121|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12748|    121|	chk->book_size_scale = 0;
12749|    121|	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|    121|#define MCLBYTES 2048
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    121|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    121|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
12750|    121|	if (chk->data == NULL) {
  ------------------
  |  Branch (12750:6): [True: 0, False: 121]
  ------------------
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|    121|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|    121|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    121|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12756|       |	/* setup chunk parameters */
12757|    121|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|    121|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
12758|    121|	chk->snd_count = 0;
12759|    121|	if (stcb->asoc.alternate) {
  ------------------
  |  Branch (12759:6): [True: 6, False: 115]
  ------------------
12760|      6|		chk->whoTo = stcb->asoc.alternate;
12761|    115|	} else {
12762|    115|		chk->whoTo = stcb->asoc.primary_destination;
12763|    115|	}
12764|    121|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|    121|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    121|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12765|    121|	ch->chunk_type = SCTP_STREAM_RESET;
  ------------------
  |  |  481|    121|#define SCTP_STREAM_RESET       0x82
  ------------------
12766|    121|	ch->chunk_flags = 0;
12767|    121|	ch->chunk_length = htons(chk->book_size);
12768|    121|	atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|    121|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
12769|    121|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|    121|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    121|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12770|    121|	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: 121]
  ------------------
12773|    121|			  chk,
12774|    121|			  sctp_next);
12775|    121|	asoc->ctrl_queue_cnt++;
12776|    121|}
sctp_add_stream_reset_result_tsn:
12782|    851|{
12783|    851|	uint16_t len, old_len;
12784|    851|	struct sctp_stream_reset_response_tsn *resp;
12785|    851|	struct sctp_chunkhdr *ch;
12786|       |
12787|    851|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|    851|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    851|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12788|    851|	old_len = len = SCTP_SIZE32(ntohs(ch->chunk_length));
  ------------------
  |  |  383|    851|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12789|       |
12790|       |	/* get to new offset for the param. */
12791|    851|	resp = (struct sctp_stream_reset_response_tsn *)((caddr_t)ch + len);
12792|       |	/* now how long will this param be? */
12793|    851|	len = sizeof(struct sctp_stream_reset_response_tsn);
12794|    851|	resp->ph.param_type = htons(SCTP_STR_RESET_RESPONSE);
12795|    851|	resp->ph.param_length = htons(len);
12796|    851|	resp->response_seq = htonl(resp_seq);
12797|    851|	resp->result = htonl(result);
12798|    851|	resp->senders_next_tsn = htonl(send_una);
12799|    851|	resp->receivers_next_tsn = htonl(recv_next);
12800|       |
12801|       |	/* now fix the chunk length */
12802|    851|	ch->chunk_length = htons(len + old_len);
12803|    851|	chk->book_size = len + old_len;
12804|    851|	chk->send_size = SCTP_SIZE32(chk->book_size);
  ------------------
  |  |  383|    851|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12805|    851|	chk->book_size_scale = 0;
12806|    851|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|    851|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    851|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12807|    851|	return;
12808|    851|}
sctp_send_stream_reset_out_if_possible:
12877|  7.01k|{
12878|  7.01k|	struct sctp_association *asoc;
12879|  7.01k|	struct sctp_tmit_chunk *chk;
12880|  7.01k|	struct sctp_chunkhdr *ch;
12881|  7.01k|	uint32_t seq;
12882|       |
12883|  7.01k|	asoc = &stcb->asoc;
12884|  7.01k|	asoc->trigger_reset = 0;
12885|  7.01k|	if (asoc->stream_reset_outstanding) {
  ------------------
  |  Branch (12885:6): [True: 1.10k, False: 5.91k]
  ------------------
12886|  1.10k|		return (EALREADY);
12887|  1.10k|	}
12888|  5.91k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  5.91k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  5.91k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  3.89k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  3.89k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  3.89k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 3.89k, False: 0]
  |  |  ------------------
  |  |  173|  3.89k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  3.89k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  3.89k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  3.89k|			(_chk)->whoTo = NULL; \
  |  |  175|  3.89k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  3.89k|		} \
  |  |  177|  3.89k|	} else { \
  |  |  178|  2.02k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  2.02k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  2.02k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  2.02k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  2.02k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  2.02k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  2.02k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  2.02k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  2.02k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  2.02k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  2.02k|	} \
  |  |  185|  5.91k|}
  ------------------
  |  Branch (12888:2): [True: 57, False: 1.97k]
  |  Branch (12888:2): [Folded, False: 2.02k]
  |  Branch (12888:2): [True: 3.89k, False: 2.02k]
  ------------------
12889|  5.91k|	if (chk == NULL) {
  ------------------
  |  Branch (12889:6): [True: 0, False: 5.91k]
  ------------------
12890|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
12891|      0|		return (ENOMEM);
12892|      0|	}
12893|  5.91k|	chk->copy_by_ref = 0;
12894|  5.91k|	chk->rec.chunk_id.id = SCTP_STREAM_RESET;
  ------------------
  |  |  481|  5.91k|#define SCTP_STREAM_RESET       0x82
  ------------------
12895|  5.91k|	chk->rec.chunk_id.can_take_data = 0;
12896|  5.91k|	chk->flags = 0;
12897|  5.91k|	chk->asoc = &stcb->asoc;
12898|  5.91k|	chk->book_size = sizeof(struct sctp_chunkhdr);
12899|  5.91k|	chk->send_size = SCTP_SIZE32(chk->book_size);
  ------------------
  |  |  383|  5.91k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12900|  5.91k|	chk->book_size_scale = 0;
12901|  5.91k|	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|  5.91k|#define MCLBYTES 2048
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  5.91k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  5.91k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
12902|  5.91k|	if (chk->data == NULL) {
  ------------------
  |  Branch (12902:6): [True: 0, False: 5.91k]
  ------------------
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|  5.91k|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  5.91k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  5.91k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12908|       |
12909|       |	/* setup chunk parameters */
12910|  5.91k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  5.91k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
12911|  5.91k|	chk->snd_count = 0;
12912|  5.91k|	if (stcb->asoc.alternate) {
  ------------------
  |  Branch (12912:6): [True: 222, False: 5.69k]
  ------------------
12913|    222|		chk->whoTo = stcb->asoc.alternate;
12914|  5.69k|	} else {
12915|  5.69k|		chk->whoTo = stcb->asoc.primary_destination;
12916|  5.69k|	}
12917|  5.91k|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  5.91k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  5.91k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12918|  5.91k|	ch->chunk_type = SCTP_STREAM_RESET;
  ------------------
  |  |  481|  5.91k|#define SCTP_STREAM_RESET       0x82
  ------------------
12919|  5.91k|	ch->chunk_flags = 0;
12920|  5.91k|	ch->chunk_length = htons(chk->book_size);
12921|  5.91k|	atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  5.91k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
12922|  5.91k|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|  5.91k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  5.91k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12923|  5.91k|	seq = stcb->asoc.str_reset_seq_out;
12924|  5.91k|	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: 124, False: 5.79k]
  ------------------
12925|    124|		seq++;
12926|    124|		asoc->stream_reset_outstanding++;
12927|  5.79k|	} else {
12928|  5.79k|		m_freem(chk->data);
12929|  5.79k|		chk->data = NULL;
12930|  5.79k|		sctp_free_a_chunk(stcb, chk, so_locked);
  ------------------
  |  |  143|  5.79k|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|  5.79k|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 5.79k]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|  5.79k|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 5.79k, False: 0]
  |  |  ------------------
  |  |  149|  5.79k|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|  5.79k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.79k|	do {                         \
  |  |  |  |  |  |  113|  5.79k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.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|  5.79k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.79k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|  5.79k|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 5.79k, False: 0]
  |  |  ------------------
  |  |  151|  5.79k|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|  5.79k|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|  5.79k|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 5.79k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|  5.79k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|  5.79k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|  5.79k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 5.79k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  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.79k|	} \
  |  |  |  |  245|  5.79k|}
  |  |  ------------------
  |  |  152|  5.79k|			(_chk)->whoTo = NULL; \
  |  |  153|  5.79k|		} \
  |  |  154|  5.79k|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|  5.79k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 0, False: 5.79k]
  |  |  ------------------
  |  |  155|  5.79k|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|  5.79k|#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.79k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 5.79k]
  |  |  ------------------
  |  |  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.79k|		} else { \
  |  |  159|  5.79k|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|  5.79k|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|  5.79k|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|  5.79k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|  5.79k|		} \
  |  |  163|  5.79k|	} 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.79k|}
  ------------------
  |  Branch (12930:3): [Folded, False: 5.79k]
  ------------------
12931|  5.79k|		return (ENOENT);
12932|  5.79k|	}
12933|    124|	asoc->str_reset = chk;
12934|       |	/* insert the chunk for sending */
12935|    124|	TAILQ_INSERT_TAIL(&asoc->control_send_queue,
  ------------------
  |  Branch (12935:2): [Folded, False: 124]
  ------------------
12936|    124|			  chk,
12937|    124|			  sctp_next);
12938|    124|	asoc->ctrl_queue_cnt++;
12939|       |
12940|    124|	if (stcb->asoc.send_sack) {
  ------------------
  |  Branch (12940:6): [True: 107, False: 17]
  ------------------
12941|    107|		sctp_send_sack(stcb, so_locked);
12942|    107|	}
12943|    124|	sctp_timer_start(SCTP_TIMER_TYPE_STRRESET, stcb->sctp_ep, stcb, chk->whoTo);
  ------------------
  |  |  544|    124|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
12944|    124|	return (0);
12945|  5.91k|}
sctp_send_str_reset_req:
12955|  2.58k|{
12956|  2.58k|	struct sctp_association *asoc;
12957|  2.58k|	struct sctp_tmit_chunk *chk;
12958|  2.58k|	struct sctp_chunkhdr *ch;
12959|  2.58k|	int can_send_out_req=0;
12960|  2.58k|	uint32_t seq;
12961|       |
12962|  2.58k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  2.58k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  2.58k|	do {                         \
  |  |  |  |  113|  2.58k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.58k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.58k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.58k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12963|       |
12964|  2.58k|	asoc = &stcb->asoc;
12965|  2.58k|	if (asoc->stream_reset_outstanding) {
  ------------------
  |  Branch (12965:6): [True: 0, False: 2.58k]
  ------------------
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.58k|	if ((send_in_req == 0) && (send_tsn_req == 0) &&
  ------------------
  |  Branch (12972:6): [True: 104, False: 2.48k]
  |  Branch (12972:28): [True: 104, False: 0]
  ------------------
12973|    104|	    (add_stream == 0)) {
  ------------------
  |  Branch (12973:6): [True: 0, False: 104]
  ------------------
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.58k|	if (send_tsn_req && send_in_req) {
  ------------------
  |  Branch (12978:6): [True: 0, False: 2.58k]
  |  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.58k|	} else if (send_in_req) {
  ------------------
  |  Branch (12982:13): [True: 2.48k, False: 104]
  ------------------
12983|  2.48k|		can_send_out_req = 1;
12984|  2.48k|	}
12985|  2.58k|	if (number_entries > (MCLBYTES -
  ------------------
  |  |   51|  2.58k|#define MCLBYTES 2048
  ------------------
  |  Branch (12985:6): [True: 0, False: 2.58k]
  ------------------
12986|  2.58k|	                      SCTP_MIN_OVERHEAD -
  ------------------
  |  |  564|  2.58k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  2.58k|                           sizeof(struct sctphdr))
  ------------------
12987|  2.58k|	                      sizeof(struct sctp_chunkhdr) -
12988|  2.58k|	                      sizeof(struct sctp_stream_reset_out_request)) /
12989|  2.58k|	                     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.58k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  2.58k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  2.58k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  1.52k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  1.52k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  1.52k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 1.52k, False: 0]
  |  |  ------------------
  |  |  173|  1.52k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  1.52k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.52k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  1.52k|			(_chk)->whoTo = NULL; \
  |  |  175|  1.52k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  1.52k|		} \
  |  |  177|  1.52k|	} else { \
  |  |  178|  1.06k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  1.06k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  1.06k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  1.06k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  1.06k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  1.06k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  1.06k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  1.06k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  1.06k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  1.06k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  1.06k|	} \
  |  |  185|  2.58k|}
  ------------------
  |  Branch (12993:2): [True: 10, False: 1.05k]
  |  Branch (12993:2): [Folded, False: 1.06k]
  |  Branch (12993:2): [True: 1.52k, False: 1.06k]
  ------------------
12994|  2.58k|	if (chk == NULL) {
  ------------------
  |  Branch (12994:6): [True: 0, False: 2.58k]
  ------------------
12995|      0|		SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, ENOMEM);
12996|      0|		return (ENOMEM);
12997|      0|	}
12998|  2.58k|	chk->copy_by_ref = 0;
12999|  2.58k|	chk->rec.chunk_id.id = SCTP_STREAM_RESET;
  ------------------
  |  |  481|  2.58k|#define SCTP_STREAM_RESET       0x82
  ------------------
13000|  2.58k|	chk->rec.chunk_id.can_take_data = 0;
13001|  2.58k|	chk->flags = 0;
13002|  2.58k|	chk->asoc = &stcb->asoc;
13003|  2.58k|	chk->book_size = sizeof(struct sctp_chunkhdr);
13004|  2.58k|	chk->send_size = SCTP_SIZE32(chk->book_size);
  ------------------
  |  |  383|  2.58k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
13005|  2.58k|	chk->book_size_scale = 0;
13006|  2.58k|	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|  2.58k|#define MCLBYTES 2048
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  2.58k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  2.58k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
13007|  2.58k|	if (chk->data == NULL) {
  ------------------
  |  Branch (13007:6): [True: 0, False: 2.58k]
  ------------------
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.58k|	SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  2.58k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  2.58k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
13013|       |
13014|       |	/* setup chunk parameters */
13015|  2.58k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  2.58k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
13016|  2.58k|	chk->snd_count = 0;
13017|  2.58k|	if (stcb->asoc.alternate) {
  ------------------
  |  Branch (13017:6): [True: 10, False: 2.57k]
  ------------------
13018|     10|		chk->whoTo = stcb->asoc.alternate;
13019|  2.57k|	} else {
13020|  2.57k|		chk->whoTo = stcb->asoc.primary_destination;
13021|  2.57k|	}
13022|  2.58k|	atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|  2.58k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
13023|  2.58k|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  2.58k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.58k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
13024|  2.58k|	ch->chunk_type = SCTP_STREAM_RESET;
  ------------------
  |  |  481|  2.58k|#define SCTP_STREAM_RESET       0x82
  ------------------
13025|  2.58k|	ch->chunk_flags = 0;
13026|  2.58k|	ch->chunk_length = htons(chk->book_size);
13027|  2.58k|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|  2.58k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.58k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
13028|       |
13029|  2.58k|	seq = stcb->asoc.str_reset_seq_out;
13030|  2.58k|	if (can_send_out_req) {
  ------------------
  |  Branch (13030:6): [True: 2.48k, False: 104]
  ------------------
13031|  2.48k|		int ret;
13032|       |
13033|  2.48k|		ret = sctp_add_stream_reset_out(stcb, chk, seq, (stcb->asoc.str_reset_seq_in - 1), (stcb->asoc.sending_seq - 1));
13034|  2.48k|		if (ret) {
  ------------------
  |  Branch (13034:7): [True: 2.48k, False: 0]
  ------------------
13035|  2.48k|			seq++;
13036|  2.48k|			asoc->stream_reset_outstanding++;
13037|  2.48k|		}
13038|  2.48k|	}
13039|  2.58k|	if ((add_stream & 1) &&
  ------------------
  |  Branch (13039:6): [True: 104, False: 2.48k]
  ------------------
13040|    104|	    ((stcb->asoc.strm_realoutsize - stcb->asoc.streamoutcnt) < adding_o)) {
  ------------------
  |  Branch (13040:6): [True: 52, False: 52]
  ------------------
13041|       |		/* Need to allocate more */
13042|     52|		struct sctp_stream_out *oldstream;
13043|     52|		struct sctp_stream_queue_pending *sp, *nsp;
13044|     52|		int i;
13045|       |#if defined(SCTP_DETAILED_STR_STATS)
13046|       |		int j;
13047|       |#endif
13048|       |
13049|     52|		oldstream = stcb->asoc.strmout;
13050|       |		/* get some more */
13051|     52|		SCTP_MALLOC(stcb->asoc.strmout, struct sctp_stream_out *,
  ------------------
  |  |  675|     52|	do {								\
  |  |  676|     52|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|     52|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|     52|    do {								\
  |  |  |  |  198|     52|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    104|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 52]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|     52|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 52]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|     52|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 52]
  |  |  ------------------
  ------------------
13052|     52|			    (stcb->asoc.streamoutcnt + adding_o) * sizeof(struct sctp_stream_out),
13053|     52|			    SCTP_M_STRMO);
13054|     52|		if (stcb->asoc.strmout == NULL) {
  ------------------
  |  Branch (13054:7): [True: 0, False: 52]
  ------------------
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|     52|		stcb->asoc.ss_functions.sctp_ss_clear(stcb, &stcb->asoc, false);
13066|  13.4k|		for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (13066:15): [True: 13.3k, False: 52]
  ------------------
13067|  13.3k|			TAILQ_INIT(&stcb->asoc.strmout[i].outqueue);
  ------------------
  |  Branch (13067:4): [Folded, False: 13.3k]
  ------------------
13068|       |			/* FIX ME FIX ME */
13069|       |			/* This should be a SS_COPY operation FIX ME STREAM SCHEDULER EXPERT */
13070|  13.3k|			stcb->asoc.ss_functions.sctp_ss_init_stream(stcb, &stcb->asoc.strmout[i], &oldstream[i]);
13071|  13.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|  13.3k|			stcb->asoc.strmout[i].abandoned_sent[0] = oldstream[i].abandoned_sent[0];
13079|  13.3k|			stcb->asoc.strmout[i].abandoned_unsent[0] = oldstream[i].abandoned_unsent[0];
13080|  13.3k|#endif
13081|  13.3k|			stcb->asoc.strmout[i].next_mid_ordered = oldstream[i].next_mid_ordered;
13082|  13.3k|			stcb->asoc.strmout[i].next_mid_unordered = oldstream[i].next_mid_unordered;
13083|  13.3k|			stcb->asoc.strmout[i].last_msg_incomplete = oldstream[i].last_msg_incomplete;
13084|  13.3k|			stcb->asoc.strmout[i].sid = i;
13085|  13.3k|			stcb->asoc.strmout[i].state = oldstream[i].state;
13086|       |			/* now anything on those queues? */
13087|  13.3k|			TAILQ_FOREACH_SAFE(sp, &oldstream[i].outqueue, next, nsp) {
  ------------------
  |  | 1129|  13.3k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  13.3k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 13, False: 13.3k]
  |  |  |  Branch (1130:24): [True: 13, False: 0]
  |  |  ------------------
  |  | 1131|  13.3k|              (var) = (tvar))
  ------------------
13088|     13|				TAILQ_REMOVE(&oldstream[i].outqueue, sp, next);
  ------------------
  |  Branch (13088:5): [True: 0, False: 13]
  |  Branch (13088:5): [Folded, False: 13]
  ------------------
13089|     13|				TAILQ_INSERT_TAIL(&stcb->asoc.strmout[i].outqueue, sp, next);
  ------------------
  |  Branch (13089:5): [Folded, False: 13]
  ------------------
13090|     13|			}
13091|  13.3k|		}
13092|       |		/* now the new streams */
13093|     52|		stcb->asoc.ss_functions.sctp_ss_init(stcb, &stcb->asoc);
13094|  2.10M|		for (i = stcb->asoc.streamoutcnt; i < (stcb->asoc.streamoutcnt + adding_o); i++) {
  ------------------
  |  Branch (13094:37): [True: 2.10M, False: 52]
  ------------------
13095|  2.10M|			TAILQ_INIT(&stcb->asoc.strmout[i].outqueue);
  ------------------
  |  Branch (13095:4): [Folded, False: 2.10M]
  ------------------
13096|  2.10M|			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|  2.10M|			stcb->asoc.strmout[i].abandoned_sent[0] = 0;
13104|  2.10M|			stcb->asoc.strmout[i].abandoned_unsent[0] = 0;
13105|  2.10M|#endif
13106|  2.10M|			stcb->asoc.strmout[i].next_mid_ordered = 0;
13107|  2.10M|			stcb->asoc.strmout[i].next_mid_unordered = 0;
13108|  2.10M|			stcb->asoc.strmout[i].sid = i;
13109|  2.10M|			stcb->asoc.strmout[i].last_msg_incomplete = 0;
13110|  2.10M|			stcb->asoc.ss_functions.sctp_ss_init_stream(stcb, &stcb->asoc.strmout[i], NULL);
13111|  2.10M|			stcb->asoc.strmout[i].state = SCTP_STREAM_CLOSED;
  ------------------
  |  |  668|  2.10M|#define SCTP_STREAM_CLOSED           0x00
  ------------------
13112|  2.10M|		}
13113|     52|		stcb->asoc.strm_realoutsize = stcb->asoc.streamoutcnt + adding_o;
13114|     52|		SCTP_FREE(oldstream, SCTP_M_STRMO);
  ------------------
  |  |  679|     52|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|     52|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
13115|     52|	}
13116|  2.58k|skip_stuff:
13117|  2.58k|	if ((add_stream & 1) && (adding_o > 0)) {
  ------------------
  |  Branch (13117:6): [True: 104, False: 2.48k]
  |  Branch (13117:26): [True: 52, False: 52]
  ------------------
13118|     52|		asoc->strm_pending_add_size = adding_o;
13119|     52|		asoc->peer_req_out = peer_asked;
13120|     52|		sctp_add_an_out_stream(chk, seq, adding_o);
13121|     52|		seq++;
13122|     52|		asoc->stream_reset_outstanding++;
13123|     52|	}
13124|  2.58k|	if ((add_stream & 2) && (adding_i > 0)) {
  ------------------
  |  Branch (13124:6): [True: 0, False: 2.58k]
  |  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.58k|	if (send_in_req) {
  ------------------
  |  Branch (13129:6): [True: 2.48k, False: 104]
  ------------------
13130|  2.48k|		sctp_add_stream_reset_in(chk, number_entries, list, seq);
13131|  2.48k|		seq++;
13132|  2.48k|		asoc->stream_reset_outstanding++;
13133|  2.48k|	}
13134|  2.58k|	if (send_tsn_req) {
  ------------------
  |  Branch (13134:6): [True: 0, False: 2.58k]
  ------------------
13135|      0|		sctp_add_stream_reset_tsn(chk, seq);
13136|      0|		asoc->stream_reset_outstanding++;
13137|      0|	}
13138|  2.58k|	asoc->str_reset = chk;
13139|       |	/* insert the chunk for sending */
13140|  2.58k|	TAILQ_INSERT_TAIL(&asoc->control_send_queue,
  ------------------
  |  Branch (13140:2): [Folded, False: 2.58k]
  ------------------
13141|  2.58k|			  chk,
13142|  2.58k|			  sctp_next);
13143|  2.58k|	asoc->ctrl_queue_cnt++;
13144|  2.58k|	if (stcb->asoc.send_sack) {
  ------------------
  |  Branch (13144:6): [True: 2.55k, False: 30]
  ------------------
13145|  2.55k|		sctp_send_sack(stcb, SCTP_SO_LOCKED);
  ------------------
  |  |  959|  2.55k|#define SCTP_SO_LOCKED		1
  ------------------
13146|  2.55k|	}
13147|  2.58k|	sctp_timer_start(SCTP_TIMER_TYPE_STRRESET, stcb->sctp_ep, stcb, chk->whoTo);
  ------------------
  |  |  544|  2.58k|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
13148|  2.58k|	return (0);
13149|  2.58k|}
sctp_send_abort:
13158|    850|{
13159|       |	/* Don't respond to an ABORT with an ABORT. */
13160|    850|	if (sctp_is_there_an_abort_here(m, iphlen, &vtag)) {
  ------------------
  |  Branch (13160:6): [True: 0, False: 850]
  ------------------
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|    850|	sctp_send_resp_msg(src, dst, sh, vtag, SCTP_ABORT_ASSOCIATION, cause,
  ------------------
  |  |  460|    850|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
13166|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
13167|       |	                   mflowtype, mflowid, fibnum,
13168|       |#endif
13169|    850|	                   vrf_id, port);
13170|    850|	return;
13171|    850|}
sctp_lower_sosend:
13554|  6.76k|{
13555|  6.76k|	struct sctp_nonpad_sndrcvinfo sndrcvninfo_buf;
13556|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
13557|       |	struct epoch_tracker et;
13558|       |#endif
13559|  6.76k|	struct timeval now;
13560|  6.76k|	struct sctp_block_entry be;
13561|  6.76k|	struct sctp_inpcb *inp;
13562|  6.76k|	struct sctp_tcb *stcb = NULL;
13563|  6.76k|	struct sctp_nets *net;
13564|  6.76k|	struct sctp_association *asoc;
13565|  6.76k|	struct sctp_inpcb *t_inp;
13566|  6.76k|	struct sctp_nonpad_sndrcvinfo *sndrcvninfo;
13567|  6.76k|	ssize_t sndlen = 0, max_len, local_add_more;
13568|  6.76k|	ssize_t local_soresv = 0;
13569|  6.76k|	sctp_assoc_t sinfo_assoc_id;
13570|  6.76k|	int user_marks_eor;
13571|  6.76k|	int nagle_applies = 0;
13572|  6.76k|	int error;
13573|  6.76k|	int queue_only = 0, queue_only_for_init = 0;
13574|  6.76k|	int un_sent;
13575|  6.76k|	int now_filled = 0;
13576|  6.76k|	unsigned int inqueue_bytes = 0;
13577|  6.76k|	uint16_t port;
13578|  6.76k|	uint16_t sinfo_flags;
13579|  6.76k|	uint16_t sinfo_stream;
13580|  6.76k|	bool create_lock_applied = false;
13581|  6.76k|	bool free_cnt_applied = false;
13582|  6.76k|	bool some_on_control;
13583|  6.76k|	bool got_all_of_the_send = false;
13584|  6.76k|	bool non_blocking = false;
13585|       |
13586|  6.76k|	error = 0;
13587|  6.76k|	net = NULL;
13588|  6.76k|	stcb = NULL;
13589|       |
13590|       |#if defined(__APPLE__) && !defined(__Userspace__)
13591|       |	sctp_lock_assert(so);
13592|       |#endif
13593|  6.76k|	if ((uio == NULL) && (top == NULL)) {
  ------------------
  |  Branch (13593:6): [True: 0, False: 6.76k]
  |  Branch (13593:23): [True: 0, False: 0]
  ------------------
13594|      0|		error = EINVAL;
13595|      0|		goto out_unlocked;
13596|      0|	}
13597|  6.76k|	if (addr != NULL) {
  ------------------
  |  Branch (13597:6): [True: 0, False: 6.76k]
  ------------------
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.76k|	} else {
13639|  6.76k|		port = 0;
13640|  6.76k|	}
13641|  6.76k|	if (uio != NULL) {
  ------------------
  |  Branch (13641:6): [True: 6.76k, 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.76k|		if (uio->uio_resid < 0) {
  ------------------
  |  Branch (13649:7): [True: 0, False: 6.76k]
  ------------------
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.76k|		sndlen = uio->uio_resid;
13662|  6.76k|#endif
13663|  6.76k|	} 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.76k|	SCTPDBG(SCTP_DEBUG_OUTPUT1, "Send called addr:%p send length %zd\n",
13667|  6.76k|	        (void *)addr, sndlen);
13668|       |
13669|  6.76k|	t_inp = inp = (struct sctp_inpcb *)so->so_pcb;
13670|  6.76k|	if (inp == NULL) {
  ------------------
  |  Branch (13670:6): [True: 0, False: 6.76k]
  ------------------
13671|      0|		error = EINVAL;
13672|      0|		goto out_unlocked;
13673|      0|	}
13674|  6.76k|	user_marks_eor = sctp_is_feature_on(inp, SCTP_PCB_FLAGS_EXPLICIT_EOR);
  ------------------
  |  |   52|  6.76k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
13675|  6.76k|	if ((uio == NULL) && (user_marks_eor != 0)) {
  ------------------
  |  Branch (13675:6): [True: 0, False: 6.76k]
  |  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.76k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) &&
  ------------------
  |  |  529|  6.76k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (13683:6): [True: 6.76k, False: 0]
  ------------------
13684|  6.76k|	    SCTP_IS_LISTENING(inp)) {
  ------------------
  |  | 1152|  6.76k|#define SCTP_IS_LISTENING(inp) ((inp->sctp_flags & SCTP_PCB_FLAGS_ACCEPTING) != 0)
  |  |  ------------------
  |  |  |  |  531|  6.76k|#define SCTP_PCB_FLAGS_ACCEPTING	0x00000008
  |  |  ------------------
  |  |  |  Branch (1152:32): [True: 0, False: 6.76k]
  |  |  ------------------
  ------------------
13685|       |		/* The listener can NOT send. */
13686|      0|		error = EINVAL;
13687|      0|		goto out_unlocked;
13688|      0|	}
13689|  6.76k|	atomic_add_int(&inp->total_sends, 1);
  ------------------
  |  |   94|  6.76k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
13690|       |
13691|  6.76k|	if (srcv != NULL) {
  ------------------
  |  Branch (13691:6): [True: 0, False: 6.76k]
  ------------------
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.76k|	} else {
13704|  6.76k|		sndrcvninfo = NULL;
13705|  6.76k|		sinfo_flags = inp->def_send.sinfo_flags;
13706|  6.76k|		sinfo_assoc_id = inp->def_send.sinfo_assoc_id;
13707|  6.76k|	}
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.76k|	if ((sinfo_flags & SCTP_ADDR_OVER) && (addr == NULL)) {
  ------------------
  |  |  260|  6.76k|#define SCTP_ADDR_OVER        0x0800 /* Override the primary-address */
  ------------------
  |  Branch (13716:6): [True: 0, False: 6.76k]
  |  Branch (13716:40): [True: 0, False: 0]
  ------------------
13717|      0|		error = EINVAL;
13718|      0|		goto out_unlocked;
13719|      0|	}
13720|  6.76k|	SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|  6.76k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.76k|	do {                         \
  |  |  |  |  113|  6.76k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.76k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.76k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13721|  6.76k|	if ((sinfo_flags & SCTP_SENDALL) &&
  ------------------
  |  |  261|  6.76k|#define SCTP_SENDALL          0x1000 /* Send this on all associations */
  ------------------
  |  Branch (13721:6): [True: 0, False: 6.76k]
  ------------------
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.76k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_CONNECTED) ||
  ------------------
  |  |  539|  6.76k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (13729:6): [True: 6.76k, False: 0]
  ------------------
13730|  6.76k|	    (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.76k|		stcb = LIST_FIRST(&inp->sctp_asoc_list);
13732|  6.76k|		if (stcb != NULL) {
  ------------------
  |  Branch (13732:7): [True: 6.76k, False: 0]
  ------------------
13733|  6.76k|			SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  6.76k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.76k|	do {                         \
  |  |  |  |  113|  6.76k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.76k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.76k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13734|  6.76k|		}
13735|  6.76k|		SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|  6.76k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.76k|	do {                         \
  |  |  |  |  113|  6.76k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.76k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.76k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13736|  6.76k|	} 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.76k|#ifdef INVARIANTS
13763|  6.76k|	if (stcb != NULL) {
  ------------------
  |  Branch (13763:6): [True: 6.76k, False: 0]
  ------------------
13764|  6.76k|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  6.76k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.76k|	do {                         \
  |  |  |  |  113|  6.76k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.76k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.76k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13765|  6.76k|	}
13766|  6.76k|#endif
13767|       |
13768|  6.76k|	if ((stcb == NULL) && (addr != NULL)) {
  ------------------
  |  Branch (13768:6): [True: 0, False: 6.76k]
  |  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.76k|	if (stcb == NULL) {
  ------------------
  |  Branch (13809:6): [True: 0, False: 6.76k]
  ------------------
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.76k|	KASSERT(!create_lock_applied, ("create_lock_applied is true"));
  ------------------
  |  |  112|  6.76k|	do {                         \
  |  |  113|  6.76k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.76k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 6.76k]
  |  |  ------------------
  ------------------
13872|  6.76k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  6.76k|	do {                         \
  |  |  113|  6.76k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.76k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 6.76k]
  |  |  ------------------
  ------------------
13873|  6.76k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  6.76k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.76k|	do {                         \
  |  |  |  |  113|  6.76k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.76k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.76k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
13874|       |
13875|  6.76k|	asoc = &stcb->asoc;
13876|  6.76k|	if ((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) ||
  ------------------
  |  |  465|  6.76k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (13876:6): [True: 0, False: 6.76k]
  ------------------
13877|  6.76k|	    (asoc->state & SCTP_STATE_WAS_ABORTED)) {
  ------------------
  |  |  467|  6.76k|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (13877:6): [True: 0, False: 6.76k]
  ------------------
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.76k|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|  6.76k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  6.76k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|  6.76k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (13886:6): [True: 1.47k, False: 5.29k]
  ------------------
13887|  5.29k|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|  5.29k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  5.29k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|  5.29k|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (13887:6): [True: 1.53k, False: 3.76k]
  ------------------
13888|  3.00k|		queue_only = 1;
13889|  3.00k|	}
13890|       |	/* Keep the stcb from being freed under our feet. */
13891|  6.76k|	atomic_add_int(&asoc->refcnt, 1);
  ------------------
  |  |   94|  6.76k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
13892|  6.76k|	free_cnt_applied = true;
13893|  6.76k|	if (sndrcvninfo == NULL) {
  ------------------
  |  Branch (13893:6): [True: 6.76k, False: 0]
  ------------------
13894|       |		/* Use a local copy to have a consistent view. */
13895|  6.76k|		sndrcvninfo_buf = asoc->def_send;
13896|  6.76k|		sndrcvninfo = &sndrcvninfo_buf;
13897|  6.76k|		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.76k|	}
13907|       |	/* Are we aborting? */
13908|  6.76k|	if (sinfo_flags & SCTP_ABORT) {
  ------------------
  |  |  258|  6.76k|#define SCTP_ABORT            0x0200 /* Send an ABORT to peer */
  ------------------
  |  Branch (13908:6): [True: 0, False: 6.76k]
  ------------------
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.76k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  6.76k|	do {                         \
  |  |  113|  6.76k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.76k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 6.76k]
  |  |  ------------------
  ------------------
14013|  6.76k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  6.76k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.76k|	do {                         \
  |  |  |  |  113|  6.76k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.76k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.76k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14014|  6.76k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  6.76k|	do {                         \
  |  |  113|  6.76k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.76k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 6.76k]
  |  |  ------------------
  ------------------
14015|  6.76k|	        ("Association about to be freed"));
14016|  6.76k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  6.76k|	do {                         \
  |  |  113|  6.76k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.76k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 6.76k]
  |  |  ------------------
  ------------------
14017|  6.76k|	        ("Association was aborted"));
14018|       |
14019|  6.76k|	if (sinfo_flags & SCTP_ADDR_OVER) {
  ------------------
  |  |  260|  6.76k|#define SCTP_ADDR_OVER        0x0800 /* Override the primary-address */
  ------------------
  |  Branch (14019:6): [True: 0, False: 6.76k]
  ------------------
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.76k|	} else {
14031|  6.76k|		if (asoc->alternate != NULL) {
  ------------------
  |  Branch (14031:7): [True: 0, False: 6.76k]
  ------------------
14032|      0|			net = asoc->alternate;
14033|  6.76k|		} else {
14034|  6.76k|			net = asoc->primary_destination;
14035|  6.76k|		}
14036|  6.76k|	}
14037|  6.76k|	if (sndlen == 0) {
  ------------------
  |  Branch (14037:6): [True: 0, False: 6.76k]
  ------------------
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.76k|	if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_NO_FRAGMENT)) {
  ------------------
  |  |   52|  6.76k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 0, False: 6.76k]
  |  |  ------------------
  ------------------
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.76k|	sinfo_stream = sndrcvninfo->sinfo_stream;
14053|       |	/* Is the stream no. valid? */
14054|  6.76k|	if (sinfo_stream >= asoc->streamoutcnt) {
  ------------------
  |  Branch (14054:6): [True: 0, False: 6.76k]
  ------------------
14055|       |		/* Invalid stream number */
14056|      0|		error = EINVAL;
14057|      0|		goto out_unlocked;
14058|      0|	}
14059|  6.76k|	if ((asoc->strmout[sinfo_stream].state != SCTP_STREAM_OPEN) &&
  ------------------
  |  |  670|  6.76k|#define SCTP_STREAM_OPEN             0x02
  ------------------
  |  Branch (14059:6): [True: 2.26k, False: 4.49k]
  ------------------
14060|  2.26k|	    (asoc->strmout[sinfo_stream].state != SCTP_STREAM_OPENING)) {
  ------------------
  |  |  669|  2.26k|#define SCTP_STREAM_OPENING          0x01
  ------------------
  |  Branch (14060:6): [True: 794, False: 1.47k]
  ------------------
14061|       |		/*
14062|       |		 * Can't queue any data while stream reset is underway.
14063|       |		 */
14064|    794|		if (asoc->strmout[sinfo_stream].state > SCTP_STREAM_OPEN) {
  ------------------
  |  |  670|    794|#define SCTP_STREAM_OPEN             0x02
  ------------------
  |  Branch (14064:7): [True: 794, False: 0]
  ------------------
14065|    794|			error = EAGAIN;
14066|    794|		} else {
14067|      0|			error = EINVAL;
14068|      0|		}
14069|    794|		goto out_unlocked;
14070|    794|	}
14071|  5.96k|	atomic_add_int(&stcb->total_sends, 1);
  ------------------
  |  |   94|  5.96k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
14072|  5.96k|#if defined(__Userspace__)
14073|  5.96k|	if (inp->recv_callback != NULL) {
  ------------------
  |  Branch (14073:6): [True: 0, False: 5.96k]
  ------------------
14074|      0|		non_blocking = true;
14075|      0|	}
14076|  5.96k|#endif
14077|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14078|       |	if (SCTP_SO_IS_NBIO(so) || (flags & (MSG_NBIO | MSG_DONTWAIT)) != 0) {
14079|       |#else
14080|  5.96k|	if (SCTP_SO_IS_NBIO(so)) {
  ------------------
  |  |  956|  5.96k|#define SCTP_SO_IS_NBIO(so)	((so)->so_state & SS_NBIO)
  |  |  ------------------
  |  |  |  |  343|  5.96k|#define	SS_NBIO			0x0100	/* non-blocking ops */
  |  |  ------------------
  |  |  |  Branch (956:29): [True: 5.96k, False: 0]
  |  |  ------------------
  ------------------
14081|  5.96k|#endif
14082|  5.96k|		non_blocking = true;
14083|  5.96k|	}
14084|  5.96k|	if (non_blocking) {
  ------------------
  |  Branch (14084:6): [True: 5.96k, False: 0]
  ------------------
14085|  5.96k|		ssize_t amount;
14086|       |
14087|  5.96k|		inqueue_bytes = asoc->total_output_queue_size - (asoc->chunks_on_out_queue * SCTP_DATA_CHUNK_OVERHEAD(stcb));
  ------------------
  |  |  134|  5.96k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 4.94k, False: 1.02k]
  |  |  ------------------
  |  |  135|  5.96k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  5.96k|                                        sizeof(struct sctp_data_chunk))
  ------------------
14088|  5.96k|		if (user_marks_eor == 0) {
  ------------------
  |  Branch (14088:7): [True: 5.96k, False: 0]
  ------------------
14089|  5.96k|			amount = sndlen;
14090|  5.96k|		} else {
14091|      0|			amount = 1;
14092|      0|		}
14093|  5.96k|		if ((SCTP_SB_LIMIT_SND(so) < (amount + inqueue_bytes + asoc->sb_send_resv)) ||
  ------------------
  |  |  984|  5.96k|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
  |  Branch (14093:7): [True: 0, False: 5.96k]
  ------------------
14094|  5.96k|		    (asoc->chunks_on_out_queue >= SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue))) {
  ------------------
  |  |  590|  5.96k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (14094:7): [True: 0, False: 5.96k]
  ------------------
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.96k|	}
14104|  5.96k|	atomic_add_int(&asoc->sb_send_resv, (int)sndlen);
  ------------------
  |  |   94|  5.96k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
14105|  5.96k|	local_soresv = sndlen;
14106|       |
14107|  5.96k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14108|  5.96k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.96k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14109|  5.96k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14110|  5.96k|	        ("Association about to be freed"));
14111|  5.96k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14112|  5.96k|	        ("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.96k|	inqueue_bytes = asoc->total_output_queue_size - (asoc->chunks_on_out_queue * SCTP_DATA_CHUNK_OVERHEAD(stcb));
  ------------------
  |  |  134|  5.96k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 4.94k, False: 1.02k]
  |  |  ------------------
  |  |  135|  5.96k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  5.96k|                                        sizeof(struct sctp_data_chunk))
  ------------------
14126|  5.96k|	if (SCTP_SB_LIMIT_SND(so) > inqueue_bytes) {
  ------------------
  |  |  984|  5.96k|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
  |  Branch (14126:6): [True: 5.96k, False: 0]
  ------------------
14127|  5.96k|		max_len = SCTP_SB_LIMIT_SND(so) - inqueue_bytes;
  ------------------
  |  |  984|  5.96k|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
14128|  5.96k|	} 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.96k|	if ((user_marks_eor == 0) &&
  ------------------
  |  Branch (14132:6): [True: 5.96k, False: 0]
  ------------------
14133|  5.96k|	    (sndlen > (ssize_t)SCTP_SB_LIMIT_SND(stcb->sctp_socket))) {
  ------------------
  |  |  984|  5.96k|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
  |  Branch (14133:6): [True: 0, False: 5.96k]
  ------------------
14134|       |		/* It will NEVER fit. */
14135|      0|		error = EMSGSIZE;
14136|      0|		goto out_unlocked;
14137|      0|	}
14138|  5.96k|	if (user_marks_eor != 0) {
  ------------------
  |  Branch (14138:6): [True: 0, False: 5.96k]
  ------------------
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.96k|	} else {
14141|       |		/*-
14142|       |		 * For non-eeor the whole message must fit in
14143|       |		 * the socket send buffer.
14144|       |		 */
14145|  5.96k|		local_add_more = sndlen;
14146|  5.96k|	}
14147|  5.96k|	if (non_blocking) {
  ------------------
  |  Branch (14147:6): [True: 5.96k, False: 0]
  ------------------
14148|  5.96k|		goto skip_preblock;
14149|  5.96k|	}
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.96k|skip_preblock:
14218|  5.96k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14219|  5.96k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.96k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14220|  5.96k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14221|  5.96k|	        ("Association about to be freed"));
14222|  5.96k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14223|  5.96k|	        ("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.96k|	if (top == NULL) {
  ------------------
  |  Branch (14235:6): [True: 5.96k, False: 0]
  ------------------
14236|  5.96k|		struct sctp_stream_queue_pending *sp;
14237|  5.96k|		struct sctp_stream_out *strm;
14238|  5.96k|		uint32_t sndout;
14239|       |
14240|  5.96k|		if ((asoc->stream_locked) &&
  ------------------
  |  Branch (14240:7): [True: 0, False: 5.96k]
  ------------------
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.96k|		strm = &asoc->strmout[sinfo_stream];
14246|  5.96k|		if (strm->last_msg_incomplete == 0) {
  ------------------
  |  Branch (14246:7): [True: 5.96k, False: 0]
  ------------------
14247|  5.96k|		do_a_copy_in:
14248|  5.96k|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  5.96k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14249|  5.96k|			sp = sctp_copy_it_in(stcb, asoc, sndrcvninfo, uio, net, max_len, user_marks_eor, &error);
14250|  5.96k|			SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  5.96k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14251|  5.96k|			if ((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) ||
  ------------------
  |  |  465|  5.96k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (14251:8): [True: 0, False: 5.96k]
  ------------------
14252|  5.96k|			    (asoc->state & SCTP_STATE_WAS_ABORTED)) {
  ------------------
  |  |  467|  5.96k|#define SCTP_STATE_WAS_ABORTED          0x0800
  ------------------
  |  Branch (14252:8): [True: 0, False: 5.96k]
  ------------------
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.96k|			if (error != 0) {
  ------------------
  |  Branch (14261:8): [True: 0, False: 5.96k]
  ------------------
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.96k|			if ((SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) ||
  ------------------
  |  |  472|  5.96k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  5.96k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			if ((SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_SENT) ||
  ------------------
  |  |  460|  5.96k|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (14268:8): [True: 0, False: 5.96k]
  ------------------
14269|  5.96k|			    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED) ||
  ------------------
  |  |  472|  5.96k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  5.96k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED) ||
  ------------------
  |  |  461|  5.96k|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (14269:8): [True: 0, False: 5.96k]
  ------------------
14270|  5.96k|			    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_ACK_SENT) ||
  ------------------
  |  |  472|  5.96k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  5.96k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_ACK_SENT) ||
  ------------------
  |  |  462|  5.96k|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (14270:8): [True: 0, False: 5.96k]
  ------------------
14271|  5.96k|			    (asoc->state & SCTP_STATE_SHUTDOWN_PENDING)) {
  ------------------
  |  |  463|  5.96k|#define SCTP_STATE_SHUTDOWN_PENDING	0x0080
  ------------------
  |  Branch (14271:8): [True: 0, False: 5.96k]
  ------------------
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.96k|			strm = &asoc->strmout[sinfo_stream];
14288|  5.96k|			if (sp->msg_is_complete) {
  ------------------
  |  Branch (14288:8): [True: 5.96k, False: 0]
  ------------------
14289|  5.96k|				strm->last_msg_incomplete = 0;
14290|  5.96k|				asoc->stream_locked = 0;
14291|  5.96k|			} 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.96k|			sctp_snd_sb_alloc(stcb, sp->length);
  ------------------
  |  |  285|  5.96k|#define sctp_snd_sb_alloc(stcb, sz)  \
  |  |  286|  5.96k|do { \
  |  |  287|  5.96k|	atomic_add_int(&stcb->asoc.total_output_queue_size,sz); \
  |  |  ------------------
  |  |  |  |   94|  5.96k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  288|  5.96k|	if ((stcb->sctp_socket != NULL) && \
  |  |  ------------------
  |  |  |  Branch (288:6): [True: 5.96k, False: 0]
  |  |  ------------------
  |  |  289|  5.96k|	    ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) || \
  |  |  ------------------
  |  |  |  |  529|  5.96k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (289:7): [True: 5.96k, False: 0]
  |  |  ------------------
  |  |  290|  5.96k|	     (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.96k|		SCTP_SB_INCR(&stcb->sctp_socket->so_snd, sz); \
  |  |  ------------------
  |  |  |  |  969|  5.96k|#define SCTP_SB_INCR(sb, incr)			\
  |  |  |  |  970|  5.96k|{						\
  |  |  |  |  971|  5.96k|	atomic_add_int(&(sb)->sb_cc, incr);	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  5.96k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  |  |  972|  5.96k|}
  |  |  ------------------
  |  |  292|  5.96k|	} \
  |  |  293|  5.96k|} while (0)
  |  |  ------------------
  |  |  |  Branch (293:10): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14303|  5.96k|			atomic_add_int(&asoc->stream_queue_cnt, 1);
  ------------------
  |  |   94|  5.96k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
14304|  5.96k|			if (sinfo_flags & SCTP_UNORDERED) {
  ------------------
  |  |  259|  5.96k|#define SCTP_UNORDERED        0x0400 /* Message is un-ordered */
  ------------------
  |  Branch (14304:8): [True: 0, False: 5.96k]
  ------------------
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.96k|			sp->processing = 1;
14308|  5.96k|			TAILQ_INSERT_TAIL(&strm->outqueue, sp, next);
  ------------------
  |  Branch (14308:4): [Folded, False: 5.96k]
  ------------------
14309|  5.96k|			asoc->ss_functions.sctp_ss_add_to_stream(stcb, asoc, strm, sp);
14310|  5.96k|		} 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.96k|		KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14331|  5.96k|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.96k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14332|  5.96k|		KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14333|  5.96k|		        ("Association about to be freed"));
14334|  5.96k|		KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14335|  5.96k|		        ("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.96k|		while (uio->uio_resid > 0) {
  ------------------
  |  Branch (14344:10): [True: 0, False: 5.96k]
  ------------------
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.96k|		KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14643|  5.96k|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.96k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14644|  5.96k|		KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14645|  5.96k|		        ("Association about to be freed"));
14646|  5.96k|		KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14647|  5.96k|		        ("Association was aborted"));
14648|       |
14649|       |		/* The out streams might be reallocated. */
14650|  5.96k|		strm = &asoc->strmout[sinfo_stream];
14651|  5.96k|		if (sp != NULL) {
  ------------------
  |  Branch (14651:7): [True: 5.96k, False: 0]
  ------------------
14652|  5.96k|			if (sp->msg_is_complete == 0) {
  ------------------
  |  Branch (14652:8): [True: 0, False: 5.96k]
  ------------------
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.96k|			} else {
14659|  5.96k|				sp->sender_all_done = 1;
14660|  5.96k|				strm->last_msg_incomplete = 0;
14661|  5.96k|				asoc->stream_locked = 0;
14662|  5.96k|			}
14663|  5.96k|			sp->processing = 0;
14664|  5.96k|		} 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.96k|		if (uio->uio_resid == 0) {
  ------------------
  |  Branch (14676:7): [True: 5.96k, False: 0]
  ------------------
14677|  5.96k|#endif
14678|  5.96k|			got_all_of_the_send = true;
14679|  5.96k|		}
14680|  5.96k|	} 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.96k|	if (error != 0) {
  ------------------
  |  Branch (14687:6): [True: 0, False: 5.96k]
  ------------------
14688|      0|		goto out;
14689|      0|	}
14690|       |
14691|  5.96k|dataless_eof:
14692|  5.96k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14693|  5.96k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.96k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14694|  5.96k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14695|  5.96k|	        ("Association about to be freed"));
14696|  5.96k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14697|  5.96k|	        ("Association was aborted"));
14698|       |
14699|       |	/* EOF thing ? */
14700|  5.96k|	if ((sinfo_flags & SCTP_EOF) && got_all_of_the_send) {
  ------------------
  |  |  257|  5.96k|#define SCTP_EOF              0x0100 /* Start shutdown procedures */
  ------------------
  |  Branch (14700:6): [True: 0, False: 5.96k]
  |  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.96k|skip_out_eof:
14783|  5.96k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14784|  5.96k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.96k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14785|  5.96k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14786|  5.96k|	        ("Association about to be freed"));
14787|  5.96k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14788|  5.96k|	        ("Association was aborted"));
14789|       |
14790|  5.96k|	some_on_control = !TAILQ_EMPTY(&asoc->control_send_queue);
14791|  5.96k|	if (queue_only_for_init) {
  ------------------
  |  Branch (14791:6): [True: 0, False: 5.96k]
  ------------------
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.96k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14809|  5.96k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.96k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14810|  5.96k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14811|  5.96k|	        ("Association about to be freed"));
14812|  5.96k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14813|  5.96k|	        ("Association was aborted"));
14814|       |
14815|  5.96k|	if ((net->flight_size > net->cwnd) &&
  ------------------
  |  Branch (14815:6): [True: 0, False: 5.96k]
  ------------------
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.96k|	} else if (asoc->ifp_had_enobuf) {
  ------------------
  |  Branch (14819:13): [True: 0, False: 5.96k]
  ------------------
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.96k|	un_sent = asoc->total_output_queue_size - asoc->total_flight;
14827|  5.96k|	if ((sctp_is_feature_off(inp, SCTP_PCB_FLAGS_NODELAY)) &&
  ------------------
  |  |   53|  5.96k|#define sctp_is_feature_off(inp, feature) ((inp->sctp_features & feature) == 0)
  ------------------
  |  Branch (14827:6): [True: 0, False: 5.96k]
  ------------------
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.96k|	} else {
14842|  5.96k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_NAGLE_LOGGING_ENABLE) {
  ------------------
  |  |  590|  5.96k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_NAGLE_LOGGING_ENABLE) {
  ------------------
  |  |  652|  5.96k|#define SCTP_NAGLE_LOGGING_ENABLE			0x00000800
  ------------------
  |  Branch (14842:7): [True: 0, False: 5.96k]
  ------------------
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.96k|		SCTP_STAT_INCR(sctps_naglesent);
  ------------------
  |  | 1112|  5.96k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  5.96k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  5.96k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14847|  5.96k|		nagle_applies = 0;
14848|  5.96k|	}
14849|  5.96k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_BLK_LOGGING_ENABLE) {
  ------------------
  |  |  590|  5.96k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_BLK_LOGGING_ENABLE) {
  ------------------
  |  |  643|  5.96k|#define SCTP_BLK_LOGGING_ENABLE				0x00000001
  ------------------
  |  Branch (14849:6): [True: 0, False: 5.96k]
  ------------------
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.96k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14858|  5.96k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.96k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14859|  5.96k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14860|  5.96k|	        ("Association about to be freed"));
14861|  5.96k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14862|  5.96k|	        ("Association was aborted"));
14863|       |
14864|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14865|       |	NET_EPOCH_ENTER(et);
14866|       |#endif
14867|  5.96k|	if ((queue_only == 0) && (nagle_applies == 0) && (asoc->peers_rwnd && un_sent)) {
  ------------------
  |  Branch (14867:6): [True: 2.96k, False: 3.00k]
  |  Branch (14867:27): [True: 2.96k, False: 0]
  |  Branch (14867:52): [True: 2.96k, False: 0]
  |  Branch (14867:72): [True: 2.96k, False: 0]
  ------------------
14868|  2.96k|		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_USR_SEND, SCTP_SO_LOCKED);
  ------------------
  |  |  361|  2.96k|#define SCTP_OUTPUT_FROM_USR_SEND       0
  ------------------
              		sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_USR_SEND, SCTP_SO_LOCKED);
  ------------------
  |  |  959|  2.96k|#define SCTP_SO_LOCKED		1
  ------------------
14869|  3.00k|	} else if ((queue_only == 0) &&
  ------------------
  |  Branch (14869:13): [True: 0, False: 3.00k]
  ------------------
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|  3.00k|	} else if (some_on_control) {
  ------------------
  |  Branch (14874:13): [True: 1.53k, False: 1.47k]
  ------------------
14875|  1.53k|		int num_out, reason;
14876|       |
14877|       |		/* Here we do control only */
14878|  1.53k|		(void)sctp_med_chunk_output(inp, stcb, asoc, &num_out,
14879|  1.53k|		                            &reason, 1, 1, &now, &now_filled,
14880|  1.53k|		                            sctp_get_frag_point(stcb),
14881|  1.53k|		                            SCTP_SO_LOCKED);
  ------------------
  |  |  959|  1.53k|#define SCTP_SO_LOCKED		1
  ------------------
14882|  1.53k|	}
14883|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
14884|       |	NET_EPOCH_EXIT(et);
14885|       |#endif
14886|  5.96k|	SCTPDBG(SCTP_DEBUG_OUTPUT1, "USR Send complete qo:%d prw:%d unsent:%d tf:%d cooq:%d toqs:%d err:%d\n",
14887|  5.96k|	        queue_only, asoc->peers_rwnd, un_sent,
14888|  5.96k|	        asoc->total_flight, asoc->chunks_on_out_queue,
14889|  5.96k|	        asoc->total_output_queue_size, error);
14890|       |
14891|  5.96k|	KASSERT(stcb != NULL, ("stcb is NULL"));
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14892|  5.96k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.96k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14893|  5.96k|	KASSERT((asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14894|  5.96k|	        ("Association about to be freed"));
14895|  5.96k|	KASSERT((asoc->state & SCTP_STATE_WAS_ABORTED) == 0,
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
14896|  5.96k|	        ("Association was aborted"));
14897|       |
14898|  5.96k|out:
14899|       |#if defined(__APPLE__) && !defined(__Userspace__)
14900|       |	sbunlock(&so->so_snd, 1);
14901|       |#endif
14902|  6.76k|out_unlocked:
14903|  6.76k|	if (create_lock_applied) {
  ------------------
  |  Branch (14903:6): [True: 0, False: 6.76k]
  ------------------
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.76k|	if (stcb != NULL) {
  ------------------
  |  Branch (14906:6): [True: 6.76k, False: 0]
  ------------------
14907|  6.76k|		if (local_soresv) {
  ------------------
  |  Branch (14907:7): [True: 5.96k, False: 794]
  ------------------
14908|  5.96k|			atomic_subtract_int(&asoc->sb_send_resv, (int)sndlen);
  ------------------
  |  |   97|  5.96k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
14909|  5.96k|		}
14910|  6.76k|		if (free_cnt_applied) {
  ------------------
  |  Branch (14910:7): [True: 6.76k, False: 0]
  ------------------
14911|  6.76k|			atomic_subtract_int(&asoc->refcnt, 1);
  ------------------
  |  |   97|  6.76k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
14912|  6.76k|		}
14913|  6.76k|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  6.76k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.76k|	do {                         \
  |  |  |  |  113|  6.76k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.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|  6.76k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.76k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
14914|  6.76k|	}
14915|  6.76k|	if (top != NULL) {
  ------------------
  |  Branch (14915:6): [True: 0, False: 6.76k]
  ------------------
14916|      0|		sctp_m_freem(top);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
14917|      0|	}
14918|  6.76k|	if (control != NULL) {
  ------------------
  |  Branch (14918:6): [True: 0, False: 6.76k]
  ------------------
14919|      0|		sctp_m_freem(control);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
14920|      0|	}
14921|  6.76k|	SCTP_LTRACE_ERR_RET(inp, stcb, net, SCTP_FROM_SCTP_OUTPUT, error);
14922|  6.76k|	return (error);
14923|  6.76k|}
sctp_add_auth_chunk:
14932|    991|{
14933|    991|	struct mbuf *m_auth;
14934|    991|	struct sctp_auth_chunk *auth;
14935|    991|	int chunk_len;
14936|    991|	struct mbuf *cn;
14937|       |
14938|    991|	if ((m_end == NULL) || (auth_ret == NULL) || (offset == NULL) ||
  ------------------
  |  Branch (14938:6): [True: 0, False: 991]
  |  Branch (14938:25): [True: 0, False: 991]
  |  Branch (14938:47): [True: 0, False: 991]
  ------------------
14939|    991|	    (stcb == NULL))
  ------------------
  |  Branch (14939:6): [True: 0, False: 991]
  ------------------
14940|      0|		return (m);
14941|       |
14942|    991|	if (stcb->asoc.auth_supported == 0) {
  ------------------
  |  Branch (14942:6): [True: 70, False: 921]
  ------------------
14943|     70|		return (m);
14944|     70|	}
14945|       |	/* does the requested chunk require auth? */
14946|    921|	if (!sctp_auth_is_required_chunk(chunk, stcb->asoc.peer_auth_chunks)) {
  ------------------
  |  |  100|    921|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:51): [True: 0, False: 921]
  |  |  ------------------
  ------------------
  |  Branch (14946:6): [True: 0, False: 921]
  ------------------
14947|      0|		return (m);
14948|      0|	}
14949|    921|	m_auth = sctp_get_mbuf_for_msg(sizeof(*auth), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|    921|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_auth = sctp_get_mbuf_for_msg(sizeof(*auth), 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|    921|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|    921|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
14950|    921|	if (m_auth == NULL) {
  ------------------
  |  Branch (14950:6): [True: 0, False: 921]
  ------------------
14951|       |		/* no mbuf's */
14952|      0|		return (m);
14953|      0|	}
14954|       |	/* reserve some space if this will be the first mbuf */
14955|    921|	if (m == NULL)
  ------------------
  |  Branch (14955:6): [True: 855, False: 66]
  ------------------
14956|    855|		SCTP_BUF_RESV_UF(m_auth, SCTP_MIN_OVERHEAD);
  ------------------
  |  |  804|  1.77k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    855|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
14957|       |	/* fill in the AUTH chunk details */
14958|    921|	auth = mtod(m_auth, struct sctp_auth_chunk *);
  ------------------
  |  |   96|    921|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    921|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
14959|    921|	memset(auth, 0, sizeof(*auth));
14960|    921|	auth->ch.chunk_type = SCTP_AUTHENTICATION;
  ------------------
  |  |  470|    921|#define SCTP_AUTHENTICATION     0x0f
  ------------------
14961|    921|	auth->ch.chunk_flags = 0;
14962|    921|	chunk_len = sizeof(*auth) +
14963|    921|	    sctp_get_hmac_digest_len(stcb->asoc.peer_hmac_id);
14964|    921|	auth->ch.chunk_length = htons(chunk_len);
14965|    921|	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|    921|	*offset = 0;
14970|  1.32k|	for (cn = m; cn; cn = SCTP_BUF_NEXT(cn)) {
  ------------------
  |  |  802|    400|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    400|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (14970:15): [True: 400, False: 921]
  ------------------
14971|    400|		*offset += SCTP_BUF_LEN(cn);
  ------------------
  |  |  801|    400|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    400|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
14972|    400|	}
14973|       |
14974|       |	/* update length and return pointer to the auth chunk */
14975|    921|	SCTP_BUF_LEN(m_auth) = chunk_len;
  ------------------
  |  |  801|    921|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    921|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
14976|    921|	m = sctp_copy_mbufchain(m_auth, m, m_end, 1, chunk_len, 0);
14977|    921|	if (auth_ret != NULL)
  ------------------
  |  Branch (14977:6): [True: 921, False: 0]
  ------------------
14978|    921|		*auth_ret = auth;
14979|       |
14980|    921|	return (m);
14981|    921|}
sctp_output.c:sctp_is_ifa_addr_preferred:
 2276|  5.83k|{
 2277|  5.83k|	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.83k|	if (ifa->address.sa.sa_family != fam) {
  ------------------
  |  Branch (2308:6): [True: 5.83k, False: 0]
  ------------------
 2309|       |		/* forget mis-matched family */
 2310|  5.83k|		return (NULL);
 2311|  5.83k|	}
 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.83k|{
 2375|  5.83k|	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.83k|	if (ifa->address.sa.sa_family != fam) {
  ------------------
  |  Branch (2407:6): [True: 5.83k, False: 0]
  ------------------
 2408|       |		/* forget non matching family */
 2409|  5.83k|		SCTPDBG(SCTP_DEBUG_OUTPUT3, "ifa_fam:%d fam:%d\n",
 2410|  5.83k|			ifa->address.sa.sa_family, fam);
 2411|  5.83k|		return (NULL);
 2412|  5.83k|	}
 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.44k|{
 2642|  3.44k|	struct sctp_laddr *laddr, *starting_point;
 2643|  3.44k|	void *ifn;
 2644|  3.44k|	struct sctp_ifn *sctp_ifn;
 2645|  3.44k|	struct sctp_ifa *sctp_ifa, *sifa;
 2646|  3.44k|	uint8_t start_at_beginning = 0;
 2647|  3.44k|	struct sctp_vrf *vrf;
 2648|  3.44k|	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.44k|	vrf = sctp_find_vrf(vrf_id);
 2655|  3.44k|	if (vrf == NULL)
  ------------------
  |  Branch (2655:6): [True: 0, False: 3.44k]
  ------------------
 2656|      0|		return (NULL);
 2657|       |
 2658|  3.44k|	ifn = SCTP_GET_IFN_VOID_FROM_ROUTE(ro);
  ------------------
  |  |  666|  3.44k|#define SCTP_GET_IFN_VOID_FROM_ROUTE(ro) (void *)ro->ro_rt->rt_ifp
  ------------------
 2659|  3.44k|	ifn_index = SCTP_GET_IF_INDEX_FROM_ROUTE(ro);
  ------------------
  |  |  667|  3.44k|#define SCTP_GET_IF_INDEX_FROM_ROUTE(ro) 1 /* compiles...  TODO use routing socket to determine */
  ------------------
 2660|  3.44k|	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.44k|	if (sctp_ifn) {
  ------------------
  |  Branch (2667:6): [True: 3.44k, False: 0]
  ------------------
 2668|       |		/* first try for a preferred address on the ep */
 2669|  3.44k|		LIST_FOREACH(sctp_ifa, &sctp_ifn->ifalist, next_ifa) {
  ------------------
  |  Branch (2669:3): [True: 3.44k, False: 3.44k]
  ------------------
 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.44k|			if ((sctp_ifa->localifa_flags & SCTP_ADDR_DEFER_USE) && (non_asoc_addr_ok == 0))
  ------------------
  |  |   97|  3.44k|#define SCTP_ADDR_DEFER_USE     0x00000004	/* Hold off using this one */
  ------------------
  |  Branch (2686:8): [True: 0, False: 3.44k]
  |  Branch (2686:60): [True: 0, False: 0]
  ------------------
 2687|      0|				continue;
 2688|  3.44k|			if (sctp_is_addr_in_ep(inp, sctp_ifa)) {
  ------------------
  |  Branch (2688:8): [True: 0, False: 3.44k]
  ------------------
 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.44k|		}
 2704|       |		/* next try for an acceptable address on the ep */
 2705|  3.44k|		LIST_FOREACH(sctp_ifa, &sctp_ifn->ifalist, next_ifa) {
  ------------------
  |  Branch (2705:3): [True: 3.44k, False: 3.44k]
  ------------------
 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.44k|			if ((sctp_ifa->localifa_flags & SCTP_ADDR_DEFER_USE) && (non_asoc_addr_ok == 0))
  ------------------
  |  |   97|  3.44k|#define SCTP_ADDR_DEFER_USE     0x00000004	/* Hold off using this one */
  ------------------
  |  Branch (2722:8): [True: 0, False: 3.44k]
  |  Branch (2722:60): [True: 0, False: 0]
  ------------------
 2723|      0|				continue;
 2724|  3.44k|			if (sctp_is_addr_in_ep(inp, sctp_ifa)) {
  ------------------
  |  Branch (2724:8): [True: 0, False: 3.44k]
  ------------------
 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.44k|		}
 2740|  3.44k|	}
 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.44k|	starting_point = stcb->asoc.last_used_address;
 2747|  5.83k| sctp_from_the_top:
 2748|  5.83k|	if (stcb->asoc.last_used_address == NULL) {
  ------------------
  |  Branch (2748:6): [True: 3.44k, False: 2.39k]
  ------------------
 2749|  3.44k|		start_at_beginning = 1;
 2750|  3.44k|		stcb->asoc.last_used_address = LIST_FIRST(&inp->sctp_addr_list);
 2751|  3.44k|	}
 2752|       |	/* search beginning with the last used address */
 2753|  11.6k|	for (laddr = stcb->asoc.last_used_address; laddr;
  ------------------
  |  Branch (2753:45): [True: 5.83k, False: 5.83k]
  ------------------
 2754|  5.83k|	     laddr = LIST_NEXT(laddr, sctp_nxt_addr)) {
 2755|  5.83k|		if (laddr->ifa == NULL) {
  ------------------
  |  Branch (2755:7): [True: 0, False: 5.83k]
  ------------------
 2756|       |			/* address has been removed */
 2757|      0|			continue;
 2758|      0|		}
 2759|  5.83k|		if (laddr->action == SCTP_DEL_IP_ADDRESS) {
  ------------------
  |  |  431|  5.83k|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (2759:7): [True: 0, False: 5.83k]
  ------------------
 2760|       |			/* address is being deleted */
 2761|      0|			continue;
 2762|      0|		}
 2763|  5.83k|		sifa = sctp_is_ifa_addr_preferred(laddr->ifa, dest_is_loop, dest_is_priv, fam);
 2764|  5.83k|		if (sifa == NULL)
  ------------------
  |  Branch (2764:7): [True: 5.83k, False: 0]
  ------------------
 2765|  5.83k|			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.83k|	if (start_at_beginning == 0) {
  ------------------
  |  Branch (2778:6): [True: 2.39k, False: 3.44k]
  ------------------
 2779|  2.39k|		stcb->asoc.last_used_address = NULL;
 2780|  2.39k|		goto sctp_from_the_top;
 2781|  2.39k|	}
 2782|       |	/* now try for any higher scope than the destination */
 2783|  3.44k|	stcb->asoc.last_used_address = starting_point;
 2784|  3.44k|	start_at_beginning = 0;
 2785|  5.83k| sctp_from_the_top2:
 2786|  5.83k|	if (stcb->asoc.last_used_address == NULL) {
  ------------------
  |  Branch (2786:6): [True: 3.44k, False: 2.39k]
  ------------------
 2787|  3.44k|		start_at_beginning = 1;
 2788|  3.44k|		stcb->asoc.last_used_address = LIST_FIRST(&inp->sctp_addr_list);
 2789|  3.44k|	}
 2790|       |	/* search beginning with the last used address */
 2791|  11.6k|	for (laddr = stcb->asoc.last_used_address; laddr;
  ------------------
  |  Branch (2791:45): [True: 5.83k, False: 5.83k]
  ------------------
 2792|  5.83k|	     laddr = LIST_NEXT(laddr, sctp_nxt_addr)) {
 2793|  5.83k|		if (laddr->ifa == NULL) {
  ------------------
  |  Branch (2793:7): [True: 0, False: 5.83k]
  ------------------
 2794|       |			/* address has been removed */
 2795|      0|			continue;
 2796|      0|		}
 2797|  5.83k|		if (laddr->action == SCTP_DEL_IP_ADDRESS) {
  ------------------
  |  |  431|  5.83k|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (2797:7): [True: 0, False: 5.83k]
  ------------------
 2798|       |			/* address is being deleted */
 2799|      0|			continue;
 2800|      0|		}
 2801|  5.83k|		sifa = sctp_is_ifa_addr_acceptable(laddr->ifa, dest_is_loop,
 2802|  5.83k|						   dest_is_priv, fam);
 2803|  5.83k|		if (sifa == NULL)
  ------------------
  |  Branch (2803:7): [True: 5.83k, False: 0]
  ------------------
 2804|  5.83k|			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.83k|	if (start_at_beginning == 0) {
  ------------------
  |  Branch (2817:6): [True: 2.39k, False: 3.44k]
  ------------------
 2818|  2.39k|		stcb->asoc.last_used_address = NULL;
 2819|  2.39k|		goto sctp_from_the_top2;
 2820|  2.39k|	}
 2821|  3.44k|	return (NULL);
 2822|  5.83k|}
sctp_output.c:sctp_lowlevel_chunk_output:
 4092|  53.7k|{
 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|  53.7k|	struct mbuf *newm;
 4107|  53.7k|	struct sctphdr *sctphdr;
 4108|  53.7k|	int packet_length;
 4109|  53.7k|	int ret;
 4110|  53.7k|#if defined(INET) || defined(INET6)
 4111|  53.7k|	uint32_t vrf_id;
 4112|  53.7k|#endif
 4113|  53.7k|#if defined(INET) || defined(INET6)
 4114|  53.7k|	struct mbuf *o_pak;
 4115|  53.7k|	sctp_route_t *ro = NULL;
 4116|  53.7k|	struct udphdr *udp = NULL;
 4117|  53.7k|#endif
 4118|  53.7k|	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|  53.7k|	if ((net) && (net->dest_state & SCTP_ADDR_OUT_OF_SCOPE)) {
  ------------------
  |  |  486|  53.7k|#define SCTP_ADDR_OUT_OF_SCOPE		0x080
  ------------------
  |  Branch (4131:6): [True: 53.7k, False: 0]
  |  Branch (4131:15): [True: 1.17k, False: 52.6k]
  ------------------
 4132|  1.17k|		SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, net, SCTP_FROM_SCTP_OUTPUT, EFAULT);
 4133|  1.17k|		sctp_m_freem(m);
  ------------------
  |  |   52|  1.17k|#define sctp_m_freem m_freem
  ------------------
 4134|  1.17k|		return (EFAULT);
 4135|  1.17k|	}
 4136|  52.6k|#if defined(INET) || defined(INET6)
 4137|  52.6k|	if (stcb) {
  ------------------
  |  Branch (4137:6): [True: 52.6k, False: 0]
  ------------------
 4138|  52.6k|		vrf_id = stcb->asoc.vrf_id;
 4139|  52.6k|	} else {
 4140|      0|		vrf_id = inp->def_vrf_id;
 4141|      0|	}
 4142|  52.6k|#endif
 4143|       |	/* fill in the HMAC digest for any AUTH chunk in the packet */
 4144|  52.6k|	if ((auth != NULL) && (stcb != NULL)) {
  ------------------
  |  Branch (4144:6): [True: 921, False: 51.6k]
  |  Branch (4144:24): [True: 921, False: 0]
  ------------------
 4145|    921|		sctp_fill_hmac_digest_m(m, auth_offset, auth, stcb, auth_keyid);
 4146|    921|	}
 4147|       |
 4148|  52.6k|	if (net) {
  ------------------
  |  Branch (4148:6): [True: 52.6k, False: 0]
  ------------------
 4149|  52.6k|		tos_value = net->dscp;
 4150|  52.6k|	} 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|  52.6k|	switch (to->sa_family) {
 4157|      0|#ifdef INET
 4158|  1.08k|	case AF_INET:
  ------------------
  |  Branch (4158:2): [True: 1.08k, False: 51.5k]
  ------------------
 4159|  1.08k|	{
 4160|  1.08k|		struct ip *ip = NULL;
 4161|  1.08k|		sctp_route_t iproute;
 4162|  1.08k|		int len;
 4163|       |
 4164|  1.08k|		len = SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|  1.08k|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|  1.08k|                              sizeof(struct sctphdr))
  ------------------
 4165|  1.08k|		if (port) {
  ------------------
  |  Branch (4165:7): [True: 0, False: 1.08k]
  ------------------
 4166|      0|			len += sizeof(struct udphdr);
 4167|      0|		}
 4168|  1.08k|		newm = sctp_get_mbuf_for_msg(len, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  1.08k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		newm = sctp_get_mbuf_for_msg(len, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  1.08k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 4169|  1.08k|		if (newm == NULL) {
  ------------------
  |  Branch (4169:7): [True: 0, False: 1.08k]
  ------------------
 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.08k|		SCTP_ALIGN_TO_END(newm, len);
  ------------------
  |  |  812|  1.08k|#define SCTP_ALIGN_TO_END(m, len) if(m->m_flags & M_PKTHDR) { \
  |  |  ------------------
  |  |  |  |  221|  1.08k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               #define SCTP_ALIGN_TO_END(m, len) if(m->m_flags & M_PKTHDR) { \
  |  |  ------------------
  |  |  |  |  234|  2.16k|#define	M_PKTHDR	0x0002	/* start of record */
  |  |  ------------------
  |  |  |  Branch (812:38): [True: 1.08k, False: 0]
  |  |  ------------------
  |  |  813|  1.08k|                                     MH_ALIGN(m, len); \
  |  |  ------------------
  |  |  |  |  399|  1.08k|#define	MH_ALIGN(m, len) do {						\
  |  |  |  |  400|  1.08k|        KASSERT((m)->m_flags & M_PKTHDR && !((m)->m_flags & M_EXT),     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  1.08k|	do {                         \
  |  |  |  |  |  |  113|  2.16k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:9): [True: 1.08k, False: 0]
  |  |  |  |  |  |  |  Branch (113:9): [True: 1.08k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  401|  1.08k|                ("%s: MH_ALIGN not PKTHDR mbuf", __func__));            \
  |  |  |  |  402|  1.08k|        KASSERT((m)->m_data == (m)->m_pktdat,                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  403|  1.08k|                ("%s: MH_ALIGN not a virgin mbuf", __func__));          \
  |  |  |  |  404|  1.08k|	(m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  1.08k|#define	m_data		m_hdr.mh_data
  |  |  |  |  ------------------
  |  |  |  |               	(m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|  1.08k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  138|  1.08k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   47|  1.08k|#define MSIZE 256
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  405|  1.08k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (405:10): [Folded, False: 1.08k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  814|  1.08k|                                  } 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.08k|		SCTP_BUF_LEN(newm) = len;
  ------------------
  |  |  801|  1.08k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  1.08k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4176|  1.08k|		SCTP_BUF_NEXT(newm) = m;
  ------------------
  |  |  802|  1.08k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  1.08k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 4177|  1.08k|		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.08k|		packet_length = sctp_calculate_len(m);
 4188|  1.08k|		ip = mtod(m, struct ip *);
  ------------------
  |  |   96|  1.08k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  1.08k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4189|  1.08k|		ip->ip_v = IPVERSION;
 4190|  1.08k|		ip->ip_hl = (sizeof(struct ip) >> 2);
 4191|  1.08k|		if (tos_value == 0) {
  ------------------
  |  Branch (4191:7): [True: 1.08k, 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.08k|			tos_value = inp->ip_inp.inp.inp_ip_tos;
  ------------------
  |  |  148|  1.08k|#define	inp_ip_tos	inp_depend4.inp4_ip_tos
  ------------------
 4197|  1.08k|		}
 4198|  1.08k|		tos_value &= 0xfc;
 4199|  1.08k|		if (ecn_ok) {
  ------------------
  |  Branch (4199:7): [True: 6, False: 1.07k]
  ------------------
 4200|      6|			tos_value |= sctp_get_ect(stcb);
 4201|      6|		}
 4202|  1.08k|		if ((nofragment_flag) && (port == 0)) {
  ------------------
  |  Branch (4202:7): [True: 736, False: 348]
  |  Branch (4202:28): [True: 736, 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|    736|			ip->ip_off = htons(IP_DF);
 4209|    736|#endif
 4210|    736|		} else {
 4211|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4212|       |			ip->ip_off = htons(0);
 4213|       |#else
 4214|    348|			ip->ip_off = 0;
 4215|    348|#endif
 4216|    348|		}
 4217|  1.08k|#if defined(__Userspace__)
 4218|  1.08k|		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.08k|		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.08k|		ip->ip_len = packet_length;
 4237|  1.08k|#endif
 4238|  1.08k|		ip->ip_tos = tos_value;
 4239|  1.08k|		if (port) {
  ------------------
  |  Branch (4239:7): [True: 0, False: 1.08k]
  ------------------
 4240|      0|			ip->ip_p = IPPROTO_UDP;
 4241|  1.08k|		} else {
 4242|  1.08k|			ip->ip_p = IPPROTO_SCTP;
 4243|  1.08k|		}
 4244|  1.08k|		ip->ip_sum = 0;
 4245|  1.08k|		if (net == NULL) {
  ------------------
  |  Branch (4245:7): [True: 0, False: 1.08k]
  ------------------
 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.08k|		} else {
 4254|  1.08k|			ro = (sctp_route_t *)&net->ro;
 4255|  1.08k|		}
 4256|       |		/* Now the address selection part */
 4257|  1.08k|		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.08k|		if (net && out_of_asoc_ok == 0) {
  ------------------
  |  Branch (4260:7): [True: 1.08k, False: 0]
  |  Branch (4260:14): [True: 1.08k, False: 0]
  ------------------
 4261|  1.08k|			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.08k]
  |  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.08k|			if (net->src_addr_selected == 0) {
  ------------------
  |  Branch (4274:8): [True: 1.08k, False: 0]
  ------------------
 4275|       |				/* Cache the source address */
 4276|  1.08k|				net->ro._s_addr = sctp_source_address_selection(inp,stcb,
 4277|  1.08k|										ro, net, 0,
 4278|  1.08k|										vrf_id);
 4279|  1.08k|				net->src_addr_selected = 1;
 4280|  1.08k|			}
 4281|  1.08k|			if (net->ro._s_addr == NULL) {
  ------------------
  |  Branch (4281:8): [True: 1.08k, False: 0]
  ------------------
 4282|       |				/* No route to host */
 4283|  1.08k|				net->src_addr_selected = 0;
 4284|  1.08k|				sctp_handle_no_route(stcb, net, so_locked);
 4285|  1.08k|				SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, EHOSTUNREACH);
 4286|  1.08k|				sctp_m_freem(m);
  ------------------
  |  |   52|  1.08k|#define sctp_m_freem m_freem
  ------------------
 4287|  1.08k|				return (EHOSTUNREACH);
 4288|  1.08k|			}
 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|  2.35k|	case AF_INET6:
  ------------------
  |  Branch (4512:2): [True: 2.35k, False: 50.2k]
  ------------------
 4513|  2.35k|	{
 4514|  2.35k|		uint32_t flowlabel, flowinfo;
 4515|  2.35k|		struct ip6_hdr *ip6h;
 4516|  2.35k|		struct route_in6 ip6route;
 4517|       |#if !defined(__Userspace__)
 4518|       |		struct ifnet *ifp;
 4519|       |#endif
 4520|  2.35k|		struct sockaddr_in6 *sin6, tmp, *lsa6, lsa6_tmp;
 4521|  2.35k|		int prev_scope = 0;
 4522|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
 4523|       |		struct sockaddr_in6 lsa6_storage;
 4524|       |		int error;
 4525|       |#endif
 4526|  2.35k|		u_short prev_port = 0;
 4527|  2.35k|		int len;
 4528|       |
 4529|  2.35k|		if (net) {
  ------------------
  |  Branch (4529:7): [True: 2.35k, False: 0]
  ------------------
 4530|  2.35k|			flowlabel = net->flowlabel;
 4531|  2.35k|		} 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|  2.35k|		if (flowlabel == 0) {
  ------------------
  |  Branch (4536:7): [True: 2.35k, 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|  2.35k|			flowlabel = ntohl(((struct inpcb *)inp)->inp_flow);
 4545|  2.35k|#endif
 4546|  2.35k|		}
 4547|  2.35k|		flowlabel &= 0x000fffff;
 4548|  2.35k|		len = SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|  2.35k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  2.35k|                           sizeof(struct sctphdr))
  ------------------
 4549|  2.35k|		if (port) {
  ------------------
  |  Branch (4549:7): [True: 0, False: 2.35k]
  ------------------
 4550|      0|			len += sizeof(struct udphdr);
 4551|      0|		}
 4552|  2.35k|		newm = sctp_get_mbuf_for_msg(len, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  2.35k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		newm = sctp_get_mbuf_for_msg(len, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  2.35k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 4553|  2.35k|		if (newm == NULL) {
  ------------------
  |  Branch (4553:7): [True: 0, False: 2.35k]
  ------------------
 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|  2.35k|		SCTP_ALIGN_TO_END(newm, len);
  ------------------
  |  |  812|  2.35k|#define SCTP_ALIGN_TO_END(m, len) if(m->m_flags & M_PKTHDR) { \
  |  |  ------------------
  |  |  |  |  221|  2.35k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               #define SCTP_ALIGN_TO_END(m, len) if(m->m_flags & M_PKTHDR) { \
  |  |  ------------------
  |  |  |  |  234|  4.71k|#define	M_PKTHDR	0x0002	/* start of record */
  |  |  ------------------
  |  |  |  Branch (812:38): [True: 2.35k, False: 0]
  |  |  ------------------
  |  |  813|  2.35k|                                     MH_ALIGN(m, len); \
  |  |  ------------------
  |  |  |  |  399|  2.35k|#define	MH_ALIGN(m, len) do {						\
  |  |  |  |  400|  2.35k|        KASSERT((m)->m_flags & M_PKTHDR && !((m)->m_flags & M_EXT),     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  2.35k|	do {                         \
  |  |  |  |  |  |  113|  4.71k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:9): [True: 2.35k, False: 0]
  |  |  |  |  |  |  |  Branch (113:9): [True: 2.35k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.35k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 2.35k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  401|  2.35k|                ("%s: MH_ALIGN not PKTHDR mbuf", __func__));            \
  |  |  |  |  402|  2.35k|        KASSERT((m)->m_data == (m)->m_pktdat,                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  2.35k|	do {                         \
  |  |  |  |  |  |  113|  2.35k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.35k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.35k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 2.35k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  403|  2.35k|                ("%s: MH_ALIGN not a virgin mbuf", __func__));          \
  |  |  |  |  404|  2.35k|	(m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  2.35k|#define	m_data		m_hdr.mh_data
  |  |  |  |  ------------------
  |  |  |  |               	(m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|  2.35k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  138|  2.35k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   47|  2.35k|#define MSIZE 256
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  405|  2.35k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (405:10): [Folded, False: 2.35k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  814|  2.35k|                                  } 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|  2.35k|		SCTP_BUF_LEN(newm) = len;
  ------------------
  |  |  801|  2.35k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.35k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4560|  2.35k|		SCTP_BUF_NEXT(newm) = m;
  ------------------
  |  |  802|  2.35k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  2.35k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 4561|  2.35k|		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|  2.35k|		packet_length = sctp_calculate_len(m);
 4572|       |
 4573|  2.35k|		ip6h = mtod(m, struct ip6_hdr *);
  ------------------
  |  |   96|  2.35k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.35k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4574|       |		/* protect *sin6 from overwrite */
 4575|  2.35k|		sin6 = (struct sockaddr_in6 *)to;
 4576|  2.35k|		tmp = *sin6;
 4577|  2.35k|		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|  2.35k|		if (net == NULL) {
  ------------------
  |  Branch (4598:7): [True: 0, False: 2.35k]
  ------------------
 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|  2.35k|		} else {
 4607|  2.35k|			ro = (sctp_route_t *)&net->ro;
 4608|  2.35k|		}
 4609|       |		/*
 4610|       |		 * We assume here that inp_flow is in host byte order within
 4611|       |		 * the TCB!
 4612|       |		 */
 4613|  2.35k|		if (tos_value == 0) {
  ------------------
  |  Branch (4613:7): [True: 2.35k, 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|  2.35k|			tos_value = (ntohl(((struct inpcb *)inp)->inp_flow) >> 20) & 0xff;
 4622|  2.35k|#endif
 4623|  2.35k|		}
 4624|  2.35k|		tos_value &= 0xfc;
 4625|  2.35k|		if (ecn_ok) {
  ------------------
  |  Branch (4625:7): [True: 60, False: 2.29k]
  ------------------
 4626|     60|			tos_value |= sctp_get_ect(stcb);
 4627|     60|		}
 4628|  2.35k|		flowinfo = 0x06;
 4629|  2.35k|		flowinfo <<= 8;
 4630|  2.35k|		flowinfo |= tos_value;
 4631|  2.35k|		flowinfo <<= 20;
 4632|  2.35k|		flowinfo |= flowlabel;
 4633|  2.35k|		ip6h->ip6_flow = htonl(flowinfo);
 4634|  2.35k|		if (port) {
  ------------------
  |  Branch (4634:7): [True: 0, False: 2.35k]
  ------------------
 4635|      0|			ip6h->ip6_nxt = IPPROTO_UDP;
 4636|  2.35k|		} else {
 4637|  2.35k|			ip6h->ip6_nxt = IPPROTO_SCTP;
 4638|  2.35k|		}
 4639|  2.35k|		ip6h->ip6_plen = htons((uint16_t)(packet_length - sizeof(struct ip6_hdr)));
 4640|  2.35k|		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|  2.35k|		memset(&lsa6_tmp, 0, sizeof(lsa6_tmp));
 4648|  2.35k|		lsa6_tmp.sin6_family = AF_INET6;
 4649|       |#ifdef HAVE_SIN6_LEN
 4650|       |		lsa6_tmp.sin6_len = sizeof(lsa6_tmp);
 4651|       |#endif
 4652|  2.35k|		lsa6 = &lsa6_tmp;
 4653|  2.35k|		if (net && out_of_asoc_ok == 0) {
  ------------------
  |  Branch (4653:7): [True: 2.35k, False: 0]
  |  Branch (4653:14): [True: 2.35k, False: 0]
  ------------------
 4654|  2.35k|			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: 2.35k]
  |  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|  2.35k|			if (net->src_addr_selected == 0) {
  ------------------
  |  Branch (4667:8): [True: 2.35k, 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|  2.35k|				net->ro._s_addr = sctp_source_address_selection(inp,
 4690|  2.35k|										stcb,
 4691|  2.35k|										ro,
 4692|  2.35k|										net,
 4693|  2.35k|										0,
 4694|  2.35k|										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|  2.35k|				net->src_addr_selected = 1;
 4703|  2.35k|			}
 4704|  2.35k|			if (net->ro._s_addr == NULL) {
  ------------------
  |  Branch (4704:8): [True: 2.35k, False: 0]
  ------------------
 4705|  2.35k|				SCTPDBG(SCTP_DEBUG_OUTPUT3, "V6:No route to host\n");
 4706|  2.35k|				net->src_addr_selected = 0;
 4707|  2.35k|				sctp_handle_no_route(stcb, net, so_locked);
 4708|  2.35k|				SCTP_LTRACE_ERR_RET_PKT(m, inp, stcb, NULL, SCTP_FROM_SCTP_OUTPUT, EHOSTUNREACH);
 4709|  2.35k|				sctp_m_freem(m);
  ------------------
  |  |   52|  2.35k|#define sctp_m_freem m_freem
  ------------------
 4710|  2.35k|				return (EHOSTUNREACH);
 4711|  2.35k|			}
 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|  49.1k|	case AF_CONN:
  ------------------
  |  | 1014|  49.1k|#define AF_CONN 123
  ------------------
  |  Branch (5002:2): [True: 49.1k, False: 3.44k]
  ------------------
 5003|  49.1k|	{
 5004|  49.1k|		char *buffer;
 5005|  49.1k|		struct sockaddr_conn *sconn;
 5006|  49.1k|		int len;
 5007|       |
 5008|  49.1k|		sconn = (struct sockaddr_conn *)to;
 5009|  49.1k|		len = sizeof(struct sctphdr);
 5010|  49.1k|		newm = sctp_get_mbuf_for_msg(len, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  49.1k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		newm = sctp_get_mbuf_for_msg(len, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  49.1k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5011|  49.1k|		if (newm == NULL) {
  ------------------
  |  Branch (5011:7): [True: 0, False: 49.1k]
  ------------------
 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|  49.1k|		SCTP_ALIGN_TO_END(newm, len);
  ------------------
  |  |  812|  49.1k|#define SCTP_ALIGN_TO_END(m, len) if(m->m_flags & M_PKTHDR) { \
  |  |  ------------------
  |  |  |  |  221|  49.1k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               #define SCTP_ALIGN_TO_END(m, len) if(m->m_flags & M_PKTHDR) { \
  |  |  ------------------
  |  |  |  |  234|  98.3k|#define	M_PKTHDR	0x0002	/* start of record */
  |  |  ------------------
  |  |  |  Branch (812:38): [True: 49.1k, False: 0]
  |  |  ------------------
  |  |  813|  49.1k|                                     MH_ALIGN(m, len); \
  |  |  ------------------
  |  |  |  |  399|  49.1k|#define	MH_ALIGN(m, len) do {						\
  |  |  |  |  400|  49.1k|        KASSERT((m)->m_flags & M_PKTHDR && !((m)->m_flags & M_EXT),     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  49.1k|	do {                         \
  |  |  |  |  |  |  113|  98.3k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:9): [True: 49.1k, False: 0]
  |  |  |  |  |  |  |  Branch (113:9): [True: 49.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|  49.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 49.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  401|  49.1k|                ("%s: MH_ALIGN not PKTHDR mbuf", __func__));            \
  |  |  |  |  402|  49.1k|        KASSERT((m)->m_data == (m)->m_pktdat,                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  49.1k|	do {                         \
  |  |  |  |  |  |  113|  49.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 49.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|  49.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 49.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  403|  49.1k|                ("%s: MH_ALIGN not a virgin mbuf", __func__));          \
  |  |  |  |  404|  49.1k|	(m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  49.1k|#define	m_data		m_hdr.mh_data
  |  |  |  |  ------------------
  |  |  |  |               	(m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  139|  49.1k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  138|  49.1k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   47|  49.1k|#define MSIZE 256
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  405|  49.1k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (405:10): [Folded, False: 49.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  814|  49.1k|                                  } 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|  49.1k|		SCTP_BUF_LEN(newm) = len;
  ------------------
  |  |  801|  49.1k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  49.1k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5018|  49.1k|		SCTP_BUF_NEXT(newm) = m;
  ------------------
  |  |  802|  49.1k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  49.1k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 5019|  49.1k|		m = newm;
 5020|  49.1k|		packet_length = sctp_calculate_len(m);
 5021|  49.1k|		m->m_pkthdr.len = packet_length;
  ------------------
  |  |  224|  49.1k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
 5022|  49.1k|		sctphdr = mtod(m, struct sctphdr *);
  ------------------
  |  |   96|  49.1k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  49.1k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5023|  49.1k|		sctphdr->src_port = src_port;
 5024|  49.1k|		sctphdr->dest_port = dest_port;
 5025|  49.1k|		sctphdr->v_tag = v_tag;
 5026|  49.1k|		sctphdr->checksum = 0;
 5027|  49.1k|		if (use_zero_crc) {
  ------------------
  |  Branch (5027:7): [True: 0, False: 49.1k]
  ------------------
 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|  49.1k|		} else if (SCTP_BASE_VAR(crc32c_offloaded) == 0) {
  ------------------
  |  |  591|  49.1k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (5029:14): [True: 0, False: 49.1k]
  ------------------
 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|  49.1k|		} else {
 5033|  49.1k|			SCTP_STAT_INCR(sctps_sendhwcrc);
  ------------------
  |  | 1112|  49.1k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  49.1k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  49.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5034|  49.1k|		}
 5035|  49.1k|		if (tos_value == 0) {
  ------------------
  |  Branch (5035:7): [True: 49.1k, False: 0]
  ------------------
 5036|  49.1k|			tos_value = inp->ip_inp.inp.inp_ip_tos;
  ------------------
  |  |  148|  49.1k|#define	inp_ip_tos	inp_depend4.inp4_ip_tos
  ------------------
 5037|  49.1k|		}
 5038|  49.1k|		tos_value &= 0xfc;
 5039|  49.1k|		if (ecn_ok) {
  ------------------
  |  Branch (5039:7): [True: 3.87k, False: 45.2k]
  ------------------
 5040|  3.87k|			tos_value |= sctp_get_ect(stcb);
 5041|  3.87k|		}
 5042|       |		/* Don't alloc/free for each packet */
 5043|  49.1k|		if ((buffer = malloc(packet_length)) != NULL) {
  ------------------
  |  Branch (5043:7): [True: 49.1k, False: 0]
  ------------------
 5044|  49.1k|			m_copydata(m, 0, packet_length, buffer);
 5045|  49.1k|			ret = SCTP_BASE_VAR(conn_output)(sconn->sconn_addr, buffer, packet_length, tos_value, nofragment_flag);
  ------------------
  |  |  591|  49.1k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
 5046|  49.1k|			free(buffer);
 5047|  49.1k|		} else {
 5048|      0|			ret = ENOMEM;
 5049|      0|		}
 5050|  49.1k|		sctp_m_freem(m);
  ------------------
  |  |   52|  49.1k|#define sctp_m_freem m_freem
  ------------------
 5051|  49.1k|		return (ret);
 5052|  49.1k|	}
 5053|      0|#endif
 5054|      0|	default:
  ------------------
  |  Branch (5054:2): [True: 0, False: 52.6k]
  ------------------
 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|  52.6k|	}
 5061|  52.6k|}
sctp_output.c:sctp_get_ect:
 4015|  3.94k|{
 4016|  3.94k|	if ((stcb != NULL) && (stcb->asoc.ecn_supported == 1)) {
  ------------------
  |  Branch (4016:6): [True: 3.94k, False: 0]
  |  Branch (4016:24): [True: 3.49k, False: 449]
  ------------------
 4017|  3.49k|		return (SCTP_ECT0_BIT);
  ------------------
  |  |  441|  3.49k|#define SCTP_ECT0_BIT		0x02
  ------------------
 4018|  3.49k|	} else {
 4019|    449|		return (0);
 4020|    449|	}
 4021|  3.94k|}
sctp_output.c:sctp_handle_no_route:
 4028|  3.44k|{
 4029|  3.44k|	SCTPDBG(SCTP_DEBUG_OUTPUT1, "dropped packet - no valid source addr\n");
 4030|       |
 4031|  3.44k|	if (net) {
  ------------------
  |  Branch (4031:6): [True: 3.44k, False: 0]
  ------------------
 4032|  3.44k|		SCTPDBG(SCTP_DEBUG_OUTPUT1, "Destination was ");
 4033|  3.44k|		SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT1, &net->ro._l_addr.sa);
 4034|  3.44k|		if (net->dest_state & SCTP_ADDR_CONFIRMED) {
  ------------------
  |  |  360|  3.44k|#define SCTP_ADDR_CONFIRMED	0x0006
  ------------------
  |  Branch (4034:7): [True: 0, False: 3.44k]
  ------------------
 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.44k|		if (stcb) {
  ------------------
  |  Branch (4045:7): [True: 3.44k, False: 0]
  ------------------
 4046|  3.44k|			if (net == stcb->asoc.primary_destination) {
  ------------------
  |  Branch (4046:8): [True: 1.60k, False: 1.83k]
  ------------------
 4047|       |				/* need a new primary */
 4048|  1.60k|				struct sctp_nets *alt;
 4049|       |
 4050|  1.60k|				alt = sctp_find_alternate_net(stcb, net, 0);
 4051|  1.60k|				if (alt != net) {
  ------------------
  |  Branch (4051:9): [True: 1.60k, False: 0]
  ------------------
 4052|  1.60k|					if (stcb->asoc.alternate) {
  ------------------
  |  Branch (4052:10): [True: 1.36k, False: 239]
  ------------------
 4053|  1.36k|						sctp_free_remote_addr(stcb->asoc.alternate);
  ------------------
  |  |  228|  1.36k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  1.36k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 1.36k, False: 0]
  |  |  ------------------
  |  |  230|  1.36k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  1.36k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  1.36k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 1.36k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  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.36k|	} \
  |  |  245|  1.36k|}
  ------------------
 4054|  1.36k|					}
 4055|  1.60k|					stcb->asoc.alternate = alt;
 4056|  1.60k|					atomic_add_int(&stcb->asoc.alternate->ref_count, 1);
  ------------------
  |  |   94|  1.60k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 4057|  1.60k|					if (net->ro._s_addr) {
  ------------------
  |  Branch (4057:10): [True: 0, False: 1.60k]
  ------------------
 4058|      0|						sctp_free_ifa(net->ro._s_addr);
 4059|       |						net->ro._s_addr = NULL;
 4060|      0|					}
 4061|  1.60k|					net->src_addr_selected = 0;
 4062|  1.60k|				}
 4063|  1.60k|			}
 4064|  3.44k|		}
 4065|  3.44k|	}
 4066|  3.44k|}
sctp_output.c:sctp_med_chunk_output:
 8404|  36.3k|{
 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|  36.3k|	struct sctp_nets *net, *start_at, *sack_goes_to = NULL, *old_start_at = NULL;
 8418|  36.3k|	struct mbuf *outchain, *endoutchain;
 8419|  36.3k|	struct sctp_tmit_chunk *chk, *nchk;
 8420|       |
 8421|       |	/* temp arrays for unlinking */
 8422|  36.3k|	struct sctp_tmit_chunk *data_list[SCTP_MAX_DATA_BUNDLING];
 8423|  36.3k|	int no_fragmentflg, error;
 8424|  36.3k|	unsigned int max_rwnd_per_dest, max_send_per_dest;
 8425|  36.3k|	int one_chunk, hbflag, skip_data_for_this_net;
 8426|  36.3k|	int asconf, cookie, no_out_cnt;
 8427|  36.3k|	int bundle_at, ctl_cnt, no_data_chunks, eeor_mode;
 8428|  36.3k|	unsigned int mtu, r_mtu, omtu, mx_mtu, to_out;
 8429|  36.3k|	int tsns_sent = 0;
 8430|  36.3k|	uint32_t auth_offset;
 8431|  36.3k|	struct sctp_auth_chunk *auth;
 8432|  36.3k|	uint16_t auth_keyid;
 8433|  36.3k|	int override_ok = 1;
 8434|  36.3k|	int skip_fill_up = 0;
 8435|  36.3k|	int data_auth_reqd = 0;
 8436|       |	/* JRS 5/14/07 - Add flag for whether a heartbeat is sent to
 8437|       |	   the destination. */
 8438|  36.3k|	int quit_now = 0;
 8439|  36.3k|	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|  36.3k|	*num_out = 0;
 8449|  36.3k|	*reason_code = 0;
 8450|  36.3k|	auth_keyid = stcb->asoc.authinfo.active_keyid;
 8451|  36.3k|	if ((asoc->state & SCTP_STATE_SHUTDOWN_PENDING) ||
  ------------------
  |  |  463|  36.3k|#define SCTP_STATE_SHUTDOWN_PENDING	0x0080
  ------------------
  |  Branch (8451:6): [True: 0, False: 36.3k]
  ------------------
 8452|  36.3k|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED) ||
  ------------------
  |  |  472|  36.3k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  36.3k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED) ||
  ------------------
  |  |  461|  36.3k|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (8452:6): [True: 38, False: 36.3k]
  ------------------
 8453|  36.3k|	    (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_EXPLICIT_EOR))) {
  ------------------
  |  |   52|  36.3k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (8453:6): [True: 0, False: 36.3k]
  ------------------
 8454|     38|		eeor_mode = 1;
 8455|  36.3k|	} else {
 8456|  36.3k|		eeor_mode = 0;
 8457|  36.3k|	}
 8458|  36.3k|	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|  36.3k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  36.3k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  36.3k|	do {                         \
  |  |  |  |  113|  36.3k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 36.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|  36.3k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 36.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8468|  36.3k|	hbflag = 0;
 8469|  36.3k|	if (control_only)
  ------------------
  |  Branch (8469:6): [True: 1.53k, False: 34.8k]
  ------------------
 8470|  1.53k|		no_data_chunks = 1;
 8471|  34.8k|	else
 8472|  34.8k|		no_data_chunks = 0;
 8473|       |
 8474|       |	/* Nothing to possible to send? */
 8475|  36.3k|	if ((TAILQ_EMPTY(&asoc->control_send_queue) ||
  ------------------
  |  Branch (8475:7): [True: 3.77k, False: 32.5k]
  ------------------
 8476|  32.5k|	     (asoc->ctrl_queue_cnt == stcb->asoc.ecn_echo_cnt_onq)) &&
  ------------------
  |  Branch (8476:7): [True: 0, False: 32.5k]
  ------------------
 8477|  36.3k|	    TAILQ_EMPTY(&asoc->asconf_send_queue) &&
  ------------------
  |  Branch (8477:6): [True: 3.77k, False: 0]
  ------------------
 8478|  36.3k|	    TAILQ_EMPTY(&asoc->send_queue) &&
  ------------------
  |  Branch (8478:6): [True: 3.33k, False: 442]
  ------------------
 8479|  3.33k|	    sctp_is_there_unsent_data(stcb, so_locked) == 0) {
  ------------------
  |  Branch (8479:6): [True: 0, False: 3.33k]
  ------------------
 8480|      0|	nothing_to_send:
 8481|      0|		*reason_code = 9;
 8482|      0|		return (0);
 8483|      0|	}
 8484|  36.3k|	if (asoc->peers_rwnd == 0) {
  ------------------
  |  Branch (8484:6): [True: 205, False: 36.1k]
  ------------------
 8485|       |		/* No room in peers rwnd */
 8486|    205|		*reason_code = 1;
 8487|    205|		if (asoc->total_flight > 0) {
  ------------------
  |  Branch (8487:7): [True: 8, False: 197]
  ------------------
 8488|       |			/* we are allowed one chunk in flight */
 8489|      8|			no_data_chunks = 1;
 8490|      8|		}
 8491|    205|	}
 8492|  36.3k|	if (stcb->asoc.ecn_echo_cnt_onq) {
  ------------------
  |  Branch (8492:6): [True: 0, False: 36.3k]
  ------------------
 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|  36.3k|	max_rwnd_per_dest = ((asoc->peers_rwnd + asoc->total_flight) / asoc->numnets);
 8508|  36.3k|	if (stcb->sctp_socket)
  ------------------
  |  Branch (8508:6): [True: 36.3k, False: 0]
  ------------------
 8509|  36.3k|		max_send_per_dest = SCTP_SB_LIMIT_SND(stcb->sctp_socket) / asoc->numnets;
  ------------------
  |  |  984|  36.3k|#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat
  ------------------
 8510|      0|	else
 8511|      0|		max_send_per_dest = 0;
 8512|  36.3k|	if (no_data_chunks == 0) {
  ------------------
  |  Branch (8512:6): [True: 34.8k, False: 1.54k]
  ------------------
 8513|       |		/* How many non-directed chunks are there? */
 8514|  34.8k|		TAILQ_FOREACH(chk, &asoc->send_queue, sctp_next) {
  ------------------
  |  Branch (8514:3): [True: 1.34k, False: 33.4k]
  ------------------
 8515|  1.34k|			if (chk->whoTo == NULL) {
  ------------------
  |  Branch (8515:8): [True: 1.34k, False: 0]
  ------------------
 8516|       |				/* We already have non-directed
 8517|       |				 * chunks on the queue, no need
 8518|       |				 * to do a fill-up.
 8519|       |				 */
 8520|  1.34k|				skip_fill_up = 1;
 8521|  1.34k|				break;
 8522|  1.34k|			}
 8523|  1.34k|		}
 8524|  34.8k|	}
 8525|  36.3k|	if ((no_data_chunks == 0) &&
  ------------------
  |  Branch (8525:6): [True: 34.8k, False: 1.54k]
  ------------------
 8526|  34.8k|	    (skip_fill_up == 0) &&
  ------------------
  |  Branch (8526:6): [True: 33.4k, False: 1.34k]
  ------------------
 8527|  33.4k|	    (!stcb->asoc.ss_functions.sctp_ss_is_empty(stcb, asoc))) {
  ------------------
  |  Branch (8527:6): [True: 5.32k, False: 28.1k]
  ------------------
 8528|  8.84k|		TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
  ------------------
  |  Branch (8528:3): [True: 8.84k, False: 5.32k]
  ------------------
 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.84k|			net->window_probe = 0;
 8541|  8.84k|			if ((net != stcb->asoc.alternate) &&
  ------------------
  |  Branch (8541:8): [True: 8.79k, False: 42]
  ------------------
 8542|  8.79k|			    ((net->dest_state & SCTP_ADDR_PF) ||
  ------------------
  |  |  490|  8.79k|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (8542:9): [True: 0, False: 8.79k]
  ------------------
 8543|  8.79k|			     ((net->dest_state & SCTP_ADDR_REACHABLE) == 0) ||
  ------------------
  |  |  481|  8.79k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (8543:9): [True: 0, False: 8.79k]
  ------------------
 8544|  8.79k|			     (net->dest_state & SCTP_ADDR_UNCONFIRMED))) {
  ------------------
  |  |  487|  8.79k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (8544:9): [True: 2.48k, False: 6.31k]
  ------------------
 8545|  2.48k|				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|  2.48k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|  2.48k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (8545:9): [True: 0, False: 2.48k]
  ------------------
 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.48k|				continue;
 8550|  2.48k|			}
 8551|  6.35k|			if ((stcb->asoc.cc_functions.sctp_cwnd_new_transmission_begins) &&
  ------------------
  |  Branch (8551:8): [True: 0, False: 6.35k]
  ------------------
 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|  6.35k|			if (net->flight_size >= net->cwnd) {
  ------------------
  |  Branch (8555:8): [True: 0, False: 6.35k]
  ------------------
 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|  6.35k|			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|  6.35k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              			if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|  6.35k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (8563:8): [True: 0, False: 6.35k]
  ------------------
 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|  6.35k|			sctp_fill_outqueue(stcb, net, frag_point, eeor_mode, &quit_now, so_locked);
 8567|  6.35k|			if (quit_now) {
  ------------------
  |  Branch (8567:8): [True: 0, False: 6.35k]
  ------------------
 8568|       |				/* memory alloc failure */
 8569|      0|				no_data_chunks = 1;
 8570|      0|				break;
 8571|      0|			}
 8572|  6.35k|		}
 8573|  5.32k|	}
 8574|       |	/* now service each destination and send out what we can for it */
 8575|       |	/* Nothing to send? */
 8576|  36.3k|	if (TAILQ_EMPTY(&asoc->control_send_queue) &&
  ------------------
  |  Branch (8576:6): [True: 3.77k, False: 32.5k]
  ------------------
 8577|  36.3k|	    TAILQ_EMPTY(&asoc->asconf_send_queue) &&
  ------------------
  |  Branch (8577:6): [True: 3.77k, False: 0]
  ------------------
 8578|  36.3k|	    TAILQ_EMPTY(&asoc->send_queue)) {
  ------------------
  |  Branch (8578:6): [True: 0, False: 3.77k]
  ------------------
 8579|      0|		*reason_code = 8;
 8580|      0|		return (0);
 8581|      0|	}
 8582|       |
 8583|  36.3k|	if (asoc->sctp_cmt_on_off > 0) {
  ------------------
  |  Branch (8583:6): [True: 0, False: 36.3k]
  ------------------
 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|  36.3k|	} else {
 8597|  36.3k|		start_at = TAILQ_FIRST(&asoc->nets);
 8598|  36.3k|	}
 8599|   261k|	TAILQ_FOREACH(chk, &asoc->control_send_queue, sctp_next) {
  ------------------
  |  Branch (8599:2): [True: 261k, False: 36.3k]
  ------------------
 8600|   261k|		if (chk->whoTo == NULL) {
  ------------------
  |  Branch (8600:7): [True: 158k, False: 103k]
  ------------------
 8601|   158k|			if (asoc->alternate) {
  ------------------
  |  Branch (8601:8): [True: 414, False: 157k]
  ------------------
 8602|    414|				chk->whoTo = asoc->alternate;
 8603|   157k|			} else {
 8604|   157k|				chk->whoTo = asoc->primary_destination;
 8605|   157k|			}
 8606|   158k|			atomic_add_int(&chk->whoTo->ref_count, 1);
  ------------------
  |  |   94|   158k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 8607|   158k|		}
 8608|   261k|	}
 8609|  36.3k|	old_start_at = NULL;
 8610|  72.7k|again_one_more_time:
 8611|   120k|	for (net = start_at; net != NULL; net = TAILQ_NEXT(net, sctp_next)) {
  ------------------
  |  Branch (8611:23): [True: 84.6k, False: 36.2k]
  ------------------
 8612|       |		/* how much can we send? */
 8613|       |		/* SCTPDBG("Examine for sending net:%x\n", (uint32_t)net); */
 8614|  84.6k|		if (old_start_at && (old_start_at == net)) {
  ------------------
  |  Branch (8614:7): [True: 36.3k, False: 48.2k]
  |  Branch (8614:23): [True: 36.3k, False: 0]
  ------------------
 8615|       |			/* through list completely. */
 8616|  36.3k|			break;
 8617|  36.3k|		}
 8618|  48.2k|		tsns_sent = 0xa;
 8619|  48.2k|		if (TAILQ_EMPTY(&asoc->control_send_queue) &&
  ------------------
  |  Branch (8619:7): [True: 5.12k, False: 43.1k]
  ------------------
 8620|  48.2k|		    TAILQ_EMPTY(&asoc->asconf_send_queue) &&
  ------------------
  |  Branch (8620:7): [True: 5.12k, False: 0]
  ------------------
 8621|  5.12k|		    (net->flight_size >= net->cwnd)) {
  ------------------
  |  Branch (8621:7): [True: 0, False: 5.12k]
  ------------------
 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|  48.2k|		bundle_at = 0;
 8628|  48.2k|		endoutchain = outchain = NULL;
 8629|  48.2k|		auth = NULL;
 8630|  48.2k|		auth_offset = 0;
 8631|  48.2k|		no_fragmentflg = 1;
 8632|  48.2k|		one_chunk = 0;
 8633|  48.2k|		if (net->dest_state & SCTP_ADDR_UNCONFIRMED) {
  ------------------
  |  |  487|  48.2k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (8633:7): [True: 8.29k, False: 39.9k]
  ------------------
 8634|  8.29k|			skip_data_for_this_net = 1;
 8635|  39.9k|		} else {
 8636|  39.9k|			skip_data_for_this_net = 0;
 8637|  39.9k|		}
 8638|  48.2k|		switch (((struct sockaddr *)&net->ro._l_addr)->sa_family) {
 8639|      0|#ifdef INET
 8640|  5.10k|		case AF_INET:
  ------------------
  |  Branch (8640:3): [True: 5.10k, False: 43.1k]
  ------------------
 8641|  5.10k|			mtu = net->mtu - SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|  5.10k|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|  5.10k|                              sizeof(struct sctphdr))
  ------------------
 8642|  5.10k|			break;
 8643|      0|#endif
 8644|      0|#ifdef INET6
 8645|  6.79k|		case AF_INET6:
  ------------------
  |  Branch (8645:3): [True: 6.79k, False: 41.4k]
  ------------------
 8646|  6.79k|			mtu = net->mtu - SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|  6.79k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  6.79k|                           sizeof(struct sctphdr))
  ------------------
 8647|  6.79k|			break;
 8648|      0|#endif
 8649|      0|#if defined(__Userspace__)
 8650|  36.3k|		case AF_CONN:
  ------------------
  |  | 1014|  36.3k|#define AF_CONN 123
  ------------------
  |  Branch (8650:3): [True: 36.3k, False: 11.8k]
  ------------------
 8651|  36.3k|			mtu = net->mtu - sizeof(struct sctphdr);
 8652|  36.3k|			break;
 8653|      0|#endif
 8654|      0|		default:
  ------------------
  |  Branch (8654:3): [True: 0, False: 48.2k]
  ------------------
 8655|       |			/* TSNH */
 8656|      0|			mtu = net->mtu;
 8657|      0|			break;
 8658|  48.2k|		}
 8659|  48.2k|		mx_mtu = mtu;
 8660|  48.2k|		to_out = 0;
 8661|  48.2k|		if (mtu > asoc->peers_rwnd) {
  ------------------
  |  Branch (8661:7): [True: 205, False: 48.0k]
  ------------------
 8662|    205|			if (asoc->total_flight > 0) {
  ------------------
  |  Branch (8662:8): [True: 8, False: 197]
  ------------------
 8663|       |				/* We have a packet in flight somewhere */
 8664|      8|				r_mtu = asoc->peers_rwnd;
 8665|    197|			} else {
 8666|       |				/* We are always allowed to send one MTU out */
 8667|    197|				one_chunk = 1;
 8668|    197|				r_mtu = mtu;
 8669|    197|			}
 8670|  48.0k|		} else {
 8671|  48.0k|			r_mtu = mtu;
 8672|  48.0k|		}
 8673|  48.2k|		error = 0;
 8674|       |		/************************/
 8675|       |		/* ASCONF transmission */
 8676|       |		/************************/
 8677|       |		/* Now first lets go through the asconf queue */
 8678|  48.2k|		TAILQ_FOREACH_SAFE(chk, &asoc->asconf_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  48.2k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  48.2k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 48.2k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  48.2k|              (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|  48.2k|		if (error != 0) {
  ------------------
  |  Branch (8879:7): [True: 0, False: 48.2k]
  ------------------
 8880|       |			/* try next net */
 8881|      0|			continue;
 8882|      0|		}
 8883|       |		/************************/
 8884|       |		/* Control transmission */
 8885|       |		/************************/
 8886|       |		/* Now first lets go through the control queue */
 8887|   675k|		TAILQ_FOREACH_SAFE(chk, &asoc->control_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  48.2k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|   723k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 675k, False: 48.2k]
  |  |  |  Branch (1130:24): [True: 675k, False: 0]
  |  |  ------------------
  |  | 1131|   675k|              (var) = (tvar))
  ------------------
 8888|   675k|			if ((sack_goes_to) &&
  ------------------
  |  Branch (8888:8): [True: 0, False: 675k]
  ------------------
 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|   675k|			if (chk->whoTo == NULL) {
  ------------------
  |  Branch (8903:8): [True: 0, False: 675k]
  ------------------
 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|   675k|			} else {
 8914|   675k|				if (chk->whoTo != net) {
  ------------------
  |  Branch (8914:9): [True: 414k, False: 260k]
  ------------------
 8915|   414k|					continue;
 8916|   414k|				}
 8917|   675k|			}
 8918|   260k|		skip_net_check:
 8919|   260k|			if (chk->data == NULL) {
  ------------------
  |  Branch (8919:8): [True: 0, False: 260k]
  ------------------
 8920|      0|				continue;
 8921|      0|			}
 8922|   260k|			if (chk->sent != SCTP_DATAGRAM_UNSENT) {
  ------------------
  |  |  348|   260k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
  |  Branch (8922:8): [True: 16.8k, False: 243k]
  ------------------
 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|  16.8k|				continue;
 8929|  16.8k|			}
 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|   243k|			if ((auth == NULL) &&
  ------------------
  |  Branch (8938:8): [True: 241k, False: 2.07k]
  ------------------
 8939|   241k|			    sctp_auth_is_required_chunk(chk->rec.chunk_id.id,
  ------------------
  |  |  100|   241k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 941, False: 240k]
  |  |  |  Branch (100:51): [True: 58.2k, False: 183k]
  |  |  ------------------
  ------------------
 8940|   243k|							stcb->asoc.peer_auth_chunks)) {
 8941|    941|				omtu = sctp_get_auth_chunk_len(stcb->asoc.peer_hmac_id);
 8942|    941|			} else
 8943|   242k|				omtu = 0;
 8944|       |			/* Here we do NOT factor the r_mtu */
 8945|   243k|			if ((chk->send_size <= (int)(mtu - omtu)) ||
  ------------------
  |  Branch (8945:8): [True: 195k, False: 47.9k]
  ------------------
 8946|   195k|			    (chk->flags & CHUNK_FLAGS_FRAGMENT_OK)) {
  ------------------
  |  |  481|  47.9k|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
  |  Branch (8946:8): [True: 41, False: 47.9k]
  ------------------
 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|   195k|				if ((auth == NULL) &&
  ------------------
  |  Branch (8961:9): [True: 193k, False: 1.92k]
  ------------------
 8962|   193k|				    (sctp_auth_is_required_chunk(chk->rec.chunk_id.id,
  ------------------
  |  |  100|   193k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:51): [True: 39.3k, False: 154k]
  |  |  ------------------
  ------------------
  |  Branch (8962:9): [True: 941, False: 192k]
  ------------------
 8963|   193k|								 stcb->asoc.peer_auth_chunks))) {
 8964|    941|					outchain = sctp_add_auth_chunk(outchain,
 8965|    941|								       &endoutchain,
 8966|    941|								       &auth,
 8967|    941|								       &auth_offset,
 8968|    941|								       stcb,
 8969|    941|								       chk->rec.chunk_id.id);
 8970|    941|					SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|    941|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|    941|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    941|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    941|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8971|    941|				}
 8972|   195k|				outchain = sctp_copy_mbufchain(chk->data, outchain, &endoutchain,
 8973|   195k|							       (int)chk->rec.chunk_id.can_take_data,
 8974|   195k|							       chk->send_size, chk->copy_by_ref);
 8975|   195k|				if (outchain == NULL) {
  ------------------
  |  Branch (8975:9): [True: 0, False: 195k]
  ------------------
 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|   195k|				SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|   195k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|   195k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|   195k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|   195k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8981|       |				/* update our MTU size */
 8982|   195k|				if (mtu > (chk->send_size + omtu))
  ------------------
  |  Branch (8982:9): [True: 193k, False: 1.94k]
  ------------------
 8983|   193k|					mtu -= (chk->send_size + omtu);
 8984|  1.94k|				else
 8985|  1.94k|					mtu = 0;
 8986|   195k|				to_out += (chk->send_size + omtu);
 8987|       |				/* Do clear IP_DF ? */
 8988|   195k|				if (chk->flags & CHUNK_FLAGS_FRAGMENT_OK) {
  ------------------
  |  |  481|   195k|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
  |  Branch (8988:9): [True: 9.61k, False: 186k]
  ------------------
 8989|  9.61k|					no_fragmentflg = 0;
 8990|  9.61k|				}
 8991|   195k|				if (chk->rec.chunk_id.can_take_data)
  ------------------
  |  Branch (8991:9): [True: 54.6k, False: 141k]
  ------------------
 8992|  54.6k|					chk->data = NULL;
 8993|       |				/* Mark things to be removed, if needed */
 8994|   195k|				if ((chk->rec.chunk_id.id == SCTP_SELECTIVE_ACK) ||
  ------------------
  |  |  457|   195k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (8994:9): [True: 5.68k, False: 190k]
  ------------------
 8995|   190k|				    (chk->rec.chunk_id.id == SCTP_NR_SELECTIVE_ACK) || /* EY */
  ------------------
  |  |  472|   190k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (8995:9): [True: 381, False: 189k]
  ------------------
 8996|   189k|				    (chk->rec.chunk_id.id == SCTP_HEARTBEAT_REQUEST) ||
  ------------------
  |  |  458|   189k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
  |  Branch (8996:9): [True: 22.2k, False: 167k]
  ------------------
 8997|   167k|				    (chk->rec.chunk_id.id == SCTP_HEARTBEAT_ACK) ||
  ------------------
  |  |  459|   167k|#define SCTP_HEARTBEAT_ACK	0x05
  ------------------
  |  Branch (8997:9): [True: 23.2k, False: 144k]
  ------------------
 8998|   144k|				    (chk->rec.chunk_id.id == SCTP_SHUTDOWN) ||
  ------------------
  |  |  461|   144k|#define SCTP_SHUTDOWN		0x07
  ------------------
  |  Branch (8998:9): [True: 69, False: 144k]
  ------------------
 8999|   144k|				    (chk->rec.chunk_id.id == SCTP_SHUTDOWN_ACK) ||
  ------------------
  |  |  462|   144k|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
  |  Branch (8999:9): [True: 988, False: 143k]
  ------------------
 9000|   143k|				    (chk->rec.chunk_id.id == SCTP_OPERATION_ERROR) ||
  ------------------
  |  |  463|   143k|#define SCTP_OPERATION_ERROR	0x09
  ------------------
  |  Branch (9000:9): [True: 122k, False: 21.0k]
  ------------------
 9001|  21.0k|				    (chk->rec.chunk_id.id == SCTP_COOKIE_ACK) ||
  ------------------
  |  |  465|  21.0k|#define SCTP_COOKIE_ACK		0x0b
  ------------------
  |  Branch (9001:9): [True: 703, False: 20.3k]
  ------------------
 9002|  20.3k|				    (chk->rec.chunk_id.id == SCTP_ECN_CWR) ||
  ------------------
  |  |  467|  20.3k|#define SCTP_ECN_CWR		0x0d
  ------------------
  |  Branch (9002:9): [True: 380, False: 19.9k]
  ------------------
 9003|  19.9k|				    (chk->rec.chunk_id.id == SCTP_PACKET_DROPPED) ||
  ------------------
  |  |  479|  19.9k|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (9003:9): [True: 0, False: 19.9k]
  ------------------
 9004|   176k|				    (chk->rec.chunk_id.id == SCTP_ASCONF_ACK)) {
  ------------------
  |  |  477|  19.9k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (9004:9): [True: 912, False: 19.0k]
  ------------------
 9005|   176k|					if (chk->rec.chunk_id.id == SCTP_HEARTBEAT_REQUEST) {
  ------------------
  |  |  458|   176k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
  |  Branch (9005:10): [True: 22.2k, False: 154k]
  ------------------
 9006|  22.2k|						hbflag = 1;
 9007|  22.2k|					}
 9008|       |					/* remove these chunks at the end */
 9009|   176k|					if ((chk->rec.chunk_id.id == SCTP_SELECTIVE_ACK) ||
  ------------------
  |  |  457|   176k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (9009:10): [True: 5.68k, False: 171k]
  ------------------
 9010|   171k|					    (chk->rec.chunk_id.id == SCTP_NR_SELECTIVE_ACK)) {
  ------------------
  |  |  472|   171k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (9010:10): [True: 381, False: 170k]
  ------------------
 9011|       |						/* turn off the timer */
 9012|  6.06k|						if (SCTP_OS_TIMER_PENDING(&stcb->asoc.dack_timer.timer)) {
  ------------------
  |  |  102|  6.06k|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|  6.06k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 0, False: 6.06k]
  |  |  ------------------
  ------------------
 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|  6.06k|					}
 9018|   176k|					ctl_cnt++;
 9019|   176k|				} 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|  19.0k|					ctl_cnt++;
 9027|  19.0k|					if (chk->rec.chunk_id.id == SCTP_COOKIE_ECHO) {
  ------------------
  |  |  464|  19.0k|#define SCTP_COOKIE_ECHO	0x0a
  ------------------
  |  Branch (9027:10): [True: 8.70k, False: 10.3k]
  ------------------
 9028|  8.70k|						cookie = 1;
 9029|  8.70k|						no_out_cnt = 1;
 9030|  10.3k|					} else if (chk->rec.chunk_id.id == SCTP_ECN_ECHO) {
  ------------------
  |  |  466|  10.3k|#define SCTP_ECN_ECHO		0x0c
  ------------------
  |  Branch (9030:17): [True: 0, False: 10.3k]
  ------------------
 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|  19.0k|					chk->sent = SCTP_DATAGRAM_SENT;
  ------------------
  |  |  349|  19.0k|#define SCTP_DATAGRAM_SENT		1
  ------------------
 9042|  19.0k|					if (chk->whoTo == NULL) {
  ------------------
  |  Branch (9042:10): [True: 0, False: 19.0k]
  ------------------
 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|  19.0k|					chk->snd_count++;
 9047|  19.0k|				}
 9048|   195k|				if (mtu == 0) {
  ------------------
  |  Branch (9048:9): [True: 1.94k, False: 193k]
  ------------------
 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.94k|					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.94k]
  ------------------
 9057|      0|						use_zero_crc = true;
 9058|      0|						break;
 9059|  1.94k|					default:
  ------------------
  |  Branch (9059:6): [True: 1.94k, False: 0]
  ------------------
 9060|  1.94k|						use_zero_crc = false;
 9061|  1.94k|						break;
 9062|  1.94k|					}
 9063|  1.94k|					if (asconf) {
  ------------------
  |  Branch (9063:10): [True: 0, False: 1.94k]
  ------------------
 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.94k|					if (cookie) {
  ------------------
  |  Branch (9073:10): [True: 8, False: 1.93k]
  ------------------
 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.94k|					if (hbflag) {
  ------------------
  |  Branch (9079:10): [True: 749, False: 1.19k]
  ------------------
 9080|    749|						if (*now_filled == 0) {
  ------------------
  |  Branch (9080:11): [True: 40, False: 709]
  ------------------
 9081|     40|							(void)SCTP_GETTIME_TIMEVAL(now);
  ------------------
  |  |  991|     40|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 9082|     40|							*now_filled = 1;
 9083|     40|						}
 9084|    749|						net->last_sent_time = *now;
 9085|    749|						hbflag = 0;
 9086|    749|					}
 9087|  1.94k|					if ((error = sctp_lowlevel_chunk_output(inp, stcb, net,
  ------------------
  |  Branch (9087:10): [True: 7, False: 1.93k]
  ------------------
 9088|  1.94k|					                                        (struct sockaddr *)&net->ro._l_addr,
 9089|  1.94k|					                                        outchain,
 9090|  1.94k|					                                        auth_offset, auth,
 9091|  1.94k|					                                        stcb->asoc.authinfo.active_keyid,
 9092|  1.94k|					                                        no_fragmentflg, 0, asconf,
 9093|  1.94k|					                                        inp->sctp_lport, stcb->rport,
  ------------------
  |  |  426|  1.94k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  1.94k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  1.94k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9094|  1.94k|					                                        htonl(stcb->asoc.peer_vtag),
 9095|  1.94k|					                                        net->port, NULL,
 9096|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 9097|       |					                                        0, 0,
 9098|       |#endif
 9099|  1.94k|					                                        use_zero_crc, so_locked))) {
 9100|       |						/* error, we could not output */
 9101|      7|						SCTPDBG(SCTP_DEBUG_OUTPUT3, "Gak send error %d\n", error);
 9102|      7|						if (from_where == 0) {
  ------------------
  |  Branch (9102:11): [True: 0, False: 7]
  ------------------
 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|      7|						if (error == ENOBUFS) {
  ------------------
  |  Branch (9105:11): [True: 0, False: 7]
  ------------------
 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|      7|						if (error == EHOSTUNREACH) {
  ------------------
  |  Branch (9109:11): [True: 3, False: 4]
  ------------------
 9110|       |							/*
 9111|       |							 * Destination went
 9112|       |							 * unreachable
 9113|       |							 * during this send
 9114|       |							 */
 9115|      3|							sctp_move_chunks_from_net(stcb, net);
 9116|      3|						}
 9117|      7|						asconf = 0;
 9118|      7|						*reason_code = 7;
 9119|      7|						break;
 9120|  1.93k|					} else {
 9121|  1.93k|						asoc->ifp_had_enobuf = 0;
 9122|  1.93k|					}
 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.93k|					outchain = endoutchain = NULL;
 9129|  1.93k|					auth = NULL;
 9130|  1.93k|					auth_offset = 0;
 9131|  1.93k|					asconf = 0;
 9132|  1.93k|					if (!no_out_cnt)
  ------------------
  |  Branch (9132:10): [True: 1.92k, False: 9]
  ------------------
 9133|  1.92k|						*num_out += ctl_cnt;
 9134|       |					/* recalc a clean slate and setup */
 9135|  1.93k|					switch (net->ro._l_addr.sa.sa_family) {
 9136|      0|#ifdef INET
 9137|      0|						case AF_INET:
  ------------------
  |  Branch (9137:7): [True: 0, False: 1.93k]
  ------------------
 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.93k]
  ------------------
 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.93k|						case AF_CONN:
  ------------------
  |  | 1014|  1.93k|#define AF_CONN 123
  ------------------
  |  Branch (9147:7): [True: 1.93k, False: 0]
  ------------------
 9148|  1.93k|							mtu = net->mtu - sizeof(struct sctphdr);
 9149|  1.93k|							break;
 9150|      0|#endif
 9151|      0|						default:
  ------------------
  |  Branch (9151:7): [True: 0, False: 1.93k]
  ------------------
 9152|       |							/* TSNH */
 9153|      0|							mtu = net->mtu;
 9154|      0|							break;
 9155|  1.93k|					}
 9156|  1.93k|					to_out = 0;
 9157|  1.93k|					no_fragmentflg = 1;
 9158|  1.93k|				}
 9159|   195k|			}
 9160|   243k|		}
 9161|  48.2k|		if (error != 0) {
  ------------------
  |  Branch (9161:7): [True: 7, False: 48.2k]
  ------------------
 9162|       |			/* try next net */
 9163|      7|			continue;
 9164|      7|		}
 9165|       |		/* JRI: if dest is in PF state, do not send data to it */
 9166|  48.2k|		if ((asoc->sctp_cmt_on_off > 0) &&
  ------------------
  |  Branch (9166:7): [True: 0, False: 48.2k]
  ------------------
 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|  48.2k|		if (net->flight_size >= net->cwnd) {
  ------------------
  |  Branch (9171:7): [True: 0, False: 48.2k]
  ------------------
 9172|      0|			goto no_data_fill;
 9173|      0|		}
 9174|  48.2k|		if ((asoc->sctp_cmt_on_off > 0) &&
  ------------------
  |  Branch (9174:7): [True: 0, False: 48.2k]
  ------------------
 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|  48.2k|		if ((asoc->sctp_cmt_on_off > 0) &&
  ------------------
  |  Branch (9185:7): [True: 0, False: 48.2k]
  ------------------
 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|  48.2k|		data_auth_reqd = sctp_auth_is_required_chunk(SCTP_DATA,
  ------------------
  |  |  100|  48.2k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:51): [True: 2.41k, False: 45.8k]
  |  |  ------------------
  ------------------
 9201|  48.2k|							     stcb->asoc.peer_auth_chunks);
 9202|  48.2k|		if (data_auth_reqd && (auth == NULL)) {
  ------------------
  |  Branch (9202:7): [True: 92, False: 48.1k]
  |  Branch (9202:25): [True: 78, False: 14]
  ------------------
 9203|     78|			mtu -= sctp_get_auth_chunk_len(stcb->asoc.peer_hmac_id);
 9204|     78|		}
 9205|       |		/* now lets add any data within the MTU constraints */
 9206|  48.2k|		switch (((struct sockaddr *)&net->ro._l_addr)->sa_family) {
 9207|      0|#ifdef INET
 9208|  5.10k|		case AF_INET:
  ------------------
  |  Branch (9208:3): [True: 5.10k, False: 43.1k]
  ------------------
 9209|  5.10k|			if (net->mtu > SCTP_MIN_V4_OVERHEAD)
  ------------------
  |  |  588|  5.10k|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|  5.10k|                              sizeof(struct sctphdr))
  ------------------
  |  Branch (9209:8): [True: 5.10k, False: 0]
  ------------------
 9210|  5.10k|				omtu = net->mtu - SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|  5.10k|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|  5.10k|                              sizeof(struct sctphdr))
  ------------------
 9211|      0|			else
 9212|      0|				omtu = 0;
 9213|  5.10k|			break;
 9214|      0|#endif
 9215|      0|#ifdef INET6
 9216|  6.78k|		case AF_INET6:
  ------------------
  |  Branch (9216:3): [True: 6.78k, False: 41.4k]
  ------------------
 9217|  6.78k|			if (net->mtu > SCTP_MIN_OVERHEAD)
  ------------------
  |  |  564|  6.78k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  6.78k|                           sizeof(struct sctphdr))
  ------------------
  |  Branch (9217:8): [True: 6.78k, False: 0]
  ------------------
 9218|  6.78k|				omtu = net->mtu - SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|  6.78k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  6.78k|                           sizeof(struct sctphdr))
  ------------------
 9219|      0|			else
 9220|      0|				omtu = 0;
 9221|  6.78k|			break;
 9222|      0|#endif
 9223|      0|#if defined(__Userspace__)
 9224|  36.3k|		case AF_CONN:
  ------------------
  |  | 1014|  36.3k|#define AF_CONN 123
  ------------------
  |  Branch (9224:3): [True: 36.3k, False: 11.8k]
  ------------------
 9225|  36.3k|			if (net->mtu > sizeof(struct sctphdr)) {
  ------------------
  |  Branch (9225:8): [True: 36.3k, False: 0]
  ------------------
 9226|  36.3k|				omtu = net->mtu - sizeof(struct sctphdr);
 9227|  36.3k|			} else {
 9228|      0|				omtu = 0;
 9229|      0|			}
 9230|  36.3k|			break;
 9231|      0|#endif
 9232|      0|		default:
  ------------------
  |  Branch (9232:3): [True: 0, False: 48.2k]
  ------------------
 9233|       |			/* TSNH */
 9234|      0|			omtu = 0;
 9235|      0|			break;
 9236|  48.2k|		}
 9237|  48.2k|		if ((((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|  48.2k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  48.2k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|  48.2k|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (9237:9): [True: 19.5k, False: 28.7k]
  ------------------
 9238|  28.7k|		      (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) &&
  ------------------
  |  |  472|  28.7k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  28.7k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		      (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) &&
  ------------------
  |  |  461|  28.7k|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (9238:9): [True: 90, False: 28.6k]
  ------------------
 9239|  19.6k|		     (skip_data_for_this_net == 0)) ||
  ------------------
  |  Branch (9239:8): [True: 15.6k, False: 3.97k]
  ------------------
 9240|  32.6k|		    (cookie)) {
  ------------------
  |  Branch (9240:7): [True: 8.69k, False: 23.9k]
  ------------------
 9241|  24.3k|			TAILQ_FOREACH_SAFE(chk, &asoc->send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  24.3k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  30.2k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 5.90k, False: 24.3k]
  |  |  |  Branch (1130:24): [True: 5.90k, False: 0]
  |  |  ------------------
  |  | 1131|  24.3k|              (var) = (tvar))
  ------------------
 9242|  5.90k|				if (no_data_chunks) {
  ------------------
  |  Branch (9242:9): [True: 0, False: 5.90k]
  ------------------
 9243|       |					/* let only control go out */
 9244|      0|					*reason_code = 1;
 9245|      0|					break;
 9246|      0|				}
 9247|  5.90k|				if (net->flight_size >= net->cwnd) {
  ------------------
  |  Branch (9247:9): [True: 0, False: 5.90k]
  ------------------
 9248|       |					/* skip this net, no room for data */
 9249|      0|					*reason_code = 2;
 9250|      0|					break;
 9251|      0|				}
 9252|  5.90k|				if ((chk->whoTo != NULL) &&
  ------------------
  |  Branch (9252:9): [True: 0, False: 5.90k]
  ------------------
 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|  5.90k|				if (asoc->sctp_cmt_on_off == 0) {
  ------------------
  |  Branch (9258:9): [True: 5.90k, False: 0]
  ------------------
 9259|  5.90k|					if ((asoc->alternate) &&
  ------------------
  |  Branch (9259:10): [True: 794, False: 5.10k]
  ------------------
 9260|    794|					    (asoc->alternate != net) &&
  ------------------
  |  Branch (9260:10): [True: 688, False: 106]
  ------------------
 9261|    688|					    (chk->whoTo == NULL)) {
  ------------------
  |  Branch (9261:10): [True: 688, False: 0]
  ------------------
 9262|    688|						continue;
 9263|  5.21k|					} else if ((net != asoc->primary_destination) &&
  ------------------
  |  Branch (9263:17): [True: 1.02k, False: 4.18k]
  ------------------
 9264|  1.02k|						   (asoc->alternate == NULL) &&
  ------------------
  |  Branch (9264:10): [True: 921, False: 106]
  ------------------
 9265|    921|						   (chk->whoTo == NULL)) {
  ------------------
  |  Branch (9265:10): [True: 921, False: 0]
  ------------------
 9266|    921|						continue;
 9267|    921|					}
 9268|  5.90k|				}
 9269|  4.29k|				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: 4.29k]
  |  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|  4.29k|				if (SCTP_BASE_SYSCTL(sctp_enable_sack_immediately) &&
  ------------------
  |  |  590|  8.58k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 4.29k, False: 0]
  |  |  ------------------
  ------------------
 9287|  4.29k|				    (asoc->state & SCTP_STATE_SHUTDOWN_PENDING)) {
  ------------------
  |  |  463|  4.29k|#define SCTP_STATE_SHUTDOWN_PENDING	0x0080
  ------------------
  |  Branch (9287:9): [True: 0, False: 4.29k]
  ------------------
 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|  4.29k|				if (((chk->send_size <= mtu) && (chk->send_size <= r_mtu)) ||
  ------------------
  |  Branch (9293:10): [True: 4.27k, False: 19]
  |  Branch (9293:37): [True: 4.27k, False: 0]
  ------------------
 9294|  4.27k|				    ((chk->flags & CHUNK_FLAGS_FRAGMENT_OK) && (chk->send_size <= asoc->peers_rwnd))) {
  ------------------
  |  |  481|     19|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
  |  Branch (9294:10): [True: 0, False: 19]
  |  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|  4.27k|					if (data_auth_reqd) {
  ------------------
  |  Branch (9302:10): [True: 33, False: 4.24k]
  ------------------
 9303|     33|						if (auth == NULL) {
  ------------------
  |  Branch (9303:11): [True: 25, False: 8]
  ------------------
 9304|     25|							outchain = sctp_add_auth_chunk(outchain,
 9305|     25|										       &endoutchain,
 9306|     25|										       &auth,
 9307|     25|										       &auth_offset,
 9308|     25|										       stcb,
 9309|     25|										       SCTP_DATA);
  ------------------
  |  |  454|     25|#define SCTP_DATA		0x00
  ------------------
 9310|     25|							auth_keyid = chk->auth_keyid;
 9311|     25|							override_ok = 0;
 9312|     25|							SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|     25|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|     25|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|     25|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|     25|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9313|     25|						} else if (override_ok) {
  ------------------
  |  Branch (9313:18): [True: 8, False: 0]
  ------------------
 9314|       |							/* use this data's keyid */
 9315|      8|							auth_keyid = chk->auth_keyid;
 9316|      8|							override_ok = 0;
 9317|      8|						} 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|     33|					}
 9322|  4.27k|					outchain = sctp_copy_mbufchain(chk->data, outchain, &endoutchain, 0,
 9323|  4.27k|								       chk->send_size, chk->copy_by_ref);
 9324|  4.27k|					if (outchain == NULL) {
  ------------------
  |  Branch (9324:10): [True: 0, False: 4.27k]
  ------------------
 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|  4.27k|					if (chk->flags & CHUNK_FLAGS_FRAGMENT_OK) {
  ------------------
  |  |  481|  4.27k|#define CHUNK_FLAGS_FRAGMENT_OK	        0x0100
  ------------------
  |  Branch (9335:10): [True: 0, False: 4.27k]
  ------------------
 9336|      0|						no_fragmentflg = 0;
 9337|      0|					}
 9338|       |					/* unsigned subtraction of mtu */
 9339|  4.27k|					if (mtu > chk->send_size)
  ------------------
  |  Branch (9339:10): [True: 4.26k, False: 4]
  ------------------
 9340|  4.26k|						mtu -= chk->send_size;
 9341|      4|					else
 9342|      4|						mtu = 0;
 9343|       |					/* unsigned subtraction of r_mtu */
 9344|  4.27k|					if (r_mtu > chk->send_size)
  ------------------
  |  Branch (9344:10): [True: 4.27k, False: 0]
  ------------------
 9345|  4.27k|						r_mtu -= chk->send_size;
 9346|      0|					else
 9347|      0|						r_mtu = 0;
 9348|       |
 9349|  4.27k|					to_out += chk->send_size;
 9350|  4.27k|					if ((to_out > mx_mtu) && no_fragmentflg) {
  ------------------
  |  Branch (9350:10): [True: 6, False: 4.26k]
  |  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|  4.27k|					chk->window_probe = 0;
 9359|  4.27k|					data_list[bundle_at++] = chk;
 9360|  4.27k|					if (bundle_at >= SCTP_MAX_DATA_BUNDLING) {
  ------------------
  |  |  876|  4.27k|#define SCTP_MAX_DATA_BUNDLING		256
  ------------------
  |  Branch (9360:10): [True: 0, False: 4.27k]
  ------------------
 9361|      0|						break;
 9362|      0|					}
 9363|  4.27k|					if (chk->sent == SCTP_DATAGRAM_UNSENT) {
  ------------------
  |  |  348|  4.27k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
  |  Branch (9363:10): [True: 4.27k, False: 0]
  ------------------
 9364|  4.27k|						if ((chk->rec.data.rcv_flags & SCTP_DATA_UNORDERED) == 0) {
  ------------------
  |  |  515|  4.27k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (9364:11): [True: 4.27k, False: 0]
  ------------------
 9365|  4.27k|							SCTP_STAT_INCR_COUNTER64(sctps_outorderchunks);
  ------------------
  |  | 1128|  4.27k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  4.27k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  4.27k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  4.27k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9366|  4.27k|						} 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|  4.27k|						if (((chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) == SCTP_DATA_LAST_FRAG) &&
  ------------------
  |  |  512|  4.27k|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
              						if (((chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) == SCTP_DATA_LAST_FRAG) &&
  ------------------
  |  |  512|  4.27k|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (9369:11): [True: 4.27k, False: 0]
  ------------------
 9370|  4.27k|						    ((chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) == 0))
  ------------------
  |  |  513|  4.27k|#define SCTP_DATA_FIRST_FRAG       0x02
  ------------------
  |  Branch (9370:11): [True: 0, False: 4.27k]
  ------------------
 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|  4.27k|							SCTP_STAT_INCR_COUNTER64(sctps_fragusrmsgs);
  ------------------
  |  | 1128|  4.27k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  4.27k|#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|  4.27k|					}
 9377|  4.27k|					if ((mtu == 0) || (r_mtu == 0) || (one_chunk)) {
  ------------------
  |  Branch (9377:10): [True: 4, False: 4.26k]
  |  Branch (9377:24): [True: 0, False: 4.26k]
  |  Branch (9377:40): [True: 0, False: 4.26k]
  ------------------
 9378|      4|						if ((one_chunk) && (stcb->asoc.total_flight == 0)) {
  ------------------
  |  Branch (9378:11): [True: 0, False: 4]
  |  Branch (9378:26): [True: 0, False: 0]
  ------------------
 9379|      0|							data_list[0]->window_probe = 1;
 9380|      0|							net->window_probe = 1;
 9381|      0|						}
 9382|      4|						break;
 9383|      4|					}
 9384|  4.27k|				} else {
 9385|       |					/*
 9386|       |					 * Must be sent in order of the
 9387|       |					 * TSN's (on a network)
 9388|       |					 */
 9389|     19|					break;
 9390|     19|				}
 9391|  4.29k|			}	/* for (chunk gather loop for this net) */
 9392|  24.3k|		}		/* if asoc.state OPEN */
 9393|  48.2k|	no_data_fill:
 9394|       |		/* Is there something to send for this destination? */
 9395|  48.2k|		if (outchain) {
  ------------------
  |  Branch (9395:7): [True: 25.6k, False: 22.6k]
  ------------------
 9396|  25.6k|			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: 25.6k]
  ------------------
 9398|      0|				use_zero_crc = true;
 9399|      0|				break;
 9400|  25.6k|			default:
  ------------------
  |  Branch (9400:4): [True: 25.6k, False: 0]
  ------------------
 9401|  25.6k|				use_zero_crc = false;
 9402|  25.6k|				break;
 9403|  25.6k|			}
 9404|       |			/* We may need to start a control timer or two */
 9405|  25.6k|			if (asconf) {
  ------------------
  |  Branch (9405:8): [True: 0, False: 25.6k]
  ------------------
 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|  25.6k|			if (cookie) {
  ------------------
  |  Branch (9414:8): [True: 8.69k, False: 16.9k]
  ------------------
 9415|  8.69k|				sctp_timer_start(SCTP_TIMER_TYPE_COOKIE, inp, stcb, net);
  ------------------
  |  |  537|  8.69k|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
 9416|  8.69k|				use_zero_crc = false;
 9417|  8.69k|				cookie = 0;
 9418|  8.69k|			}
 9419|       |			/* must start a send timer if data is being sent */
 9420|  25.6k|			if (bundle_at && (!SCTP_OS_TIMER_PENDING(&net->rxt_timer.timer))) {
  ------------------
  |  |  102|  4.27k|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|  4.27k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  ------------------
  |  Branch (9420:8): [True: 4.27k, False: 21.3k]
  |  Branch (9420:21): [True: 3.12k, False: 1.15k]
  ------------------
 9421|       |				/*
 9422|       |				 * no timer running on this destination
 9423|       |				 * restart it.
 9424|       |				 */
 9425|  3.12k|				sctp_timer_start(SCTP_TIMER_TYPE_SEND, inp, stcb, net);
  ------------------
  |  |  532|  3.12k|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
 9426|  3.12k|			}
 9427|  25.6k|			if (bundle_at || hbflag) {
  ------------------
  |  Branch (9427:8): [True: 4.27k, False: 21.3k]
  |  Branch (9427:21): [True: 2.35k, False: 19.0k]
  ------------------
 9428|       |				/* For data/asconf and hb set time */
 9429|  6.62k|				if (*now_filled == 0) {
  ------------------
  |  Branch (9429:9): [True: 5.03k, False: 1.58k]
  ------------------
 9430|  5.03k|					(void)SCTP_GETTIME_TIMEVAL(now);
  ------------------
  |  |  991|  5.03k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 9431|  5.03k|					*now_filled = 1;
 9432|  5.03k|				}
 9433|  6.62k|				net->last_sent_time = *now;
 9434|  6.62k|			}
 9435|       |			/* Now send it, if there is anything to send :> */
 9436|  25.6k|			if ((error = sctp_lowlevel_chunk_output(inp,
  ------------------
  |  Branch (9436:8): [True: 2.58k, False: 23.0k]
  ------------------
 9437|  25.6k|			                                        stcb,
 9438|  25.6k|			                                        net,
 9439|  25.6k|			                                        (struct sockaddr *)&net->ro._l_addr,
 9440|  25.6k|			                                        outchain,
 9441|  25.6k|			                                        auth_offset,
 9442|  25.6k|			                                        auth,
 9443|  25.6k|			                                        auth_keyid,
 9444|  25.6k|			                                        no_fragmentflg,
 9445|  25.6k|			                                        bundle_at,
 9446|  25.6k|			                                        asconf,
 9447|  25.6k|			                                        inp->sctp_lport, stcb->rport,
  ------------------
  |  |  426|  25.6k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  25.6k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  25.6k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9448|  25.6k|			                                        htonl(stcb->asoc.peer_vtag),
 9449|  25.6k|			                                        net->port, NULL,
 9450|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 9451|       |			                                        0, 0,
 9452|       |#endif
 9453|  25.6k|			                                        use_zero_crc,
 9454|  25.6k|			                                        so_locked))) {
 9455|       |				/* error, we could not output */
 9456|  2.58k|				SCTPDBG(SCTP_DEBUG_OUTPUT3, "Gak send error %d\n", error);
 9457|  2.58k|				if (from_where == 0) {
  ------------------
  |  Branch (9457:9): [True: 0, False: 2.58k]
  ------------------
 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.58k|				if (error == ENOBUFS) {
  ------------------
  |  Branch (9460:9): [True: 0, False: 2.58k]
  ------------------
 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.58k|				if (error == EHOSTUNREACH) {
  ------------------
  |  Branch (9464:9): [True: 1.90k, False: 673]
  ------------------
 9465|       |					/*
 9466|       |					 * Destination went unreachable
 9467|       |					 * during this send
 9468|       |					 */
 9469|  1.90k|					sctp_move_chunks_from_net(stcb, net);
 9470|  1.90k|				}
 9471|  2.58k|				asconf = 0;
 9472|  2.58k|				*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.58k|				ctl_cnt = 0;
 9480|  2.58k|				continue; /* This takes us back to the for() for the nets. */
 9481|  23.0k|			} else {
 9482|  23.0k|				asoc->ifp_had_enobuf = 0;
 9483|  23.0k|			}
 9484|  23.0k|			endoutchain = NULL;
 9485|  23.0k|			auth = NULL;
 9486|  23.0k|			auth_offset = 0;
 9487|  23.0k|			asconf = 0;
 9488|  23.0k|			if (!no_out_cnt) {
  ------------------
  |  Branch (9488:8): [True: 14.3k, False: 8.70k]
  ------------------
 9489|  14.3k|				*num_out += (ctl_cnt + bundle_at);
 9490|  14.3k|			}
 9491|  23.0k|			if (bundle_at) {
  ------------------
  |  Branch (9491:8): [True: 3.87k, False: 19.1k]
  ------------------
 9492|       |				/* setup for a RTO measurement */
 9493|  3.87k|				tsns_sent = data_list[0]->rec.data.tsn;
 9494|       |				/* fill time if not already filled */
 9495|  3.87k|				if (*now_filled == 0) {
  ------------------
  |  Branch (9495:9): [True: 0, False: 3.87k]
  ------------------
 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.87k|				} else {
 9500|  3.87k|					asoc->time_last_sent = *now;
 9501|  3.87k|				}
 9502|  3.87k|				if (net->rto_needed) {
  ------------------
  |  Branch (9502:9): [True: 3.45k, False: 422]
  ------------------
 9503|  3.45k|					data_list[0]->do_rtt = 1;
 9504|  3.45k|					net->rto_needed = 0;
 9505|  3.45k|				}
 9506|  3.87k|				SCTP_STAT_INCR_BY(sctps_senddata, bundle_at);
  ------------------
  |  | 1123|  3.87k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  ------------------
  |  |  |  |   94|  3.87k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 9507|  3.87k|				sctp_clean_up_datalist(stcb, asoc, data_list, bundle_at, net);
 9508|  3.87k|			}
 9509|  23.0k|			if (one_chunk) {
  ------------------
  |  Branch (9509:8): [True: 107, False: 22.9k]
  ------------------
 9510|    107|				break;
 9511|    107|			}
 9512|  23.0k|		}
 9513|  45.5k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|  45.5k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|  45.5k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (9513:7): [True: 0, False: 45.5k]
  ------------------
 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|  45.5k|	}
 9517|  72.7k|	if (old_start_at == NULL) {
  ------------------
  |  Branch (9517:6): [True: 36.3k, False: 36.3k]
  ------------------
 9518|  36.3k|		old_start_at = start_at;
 9519|  36.3k|		start_at = TAILQ_FIRST(&asoc->nets);
 9520|  36.3k|		if (old_start_at)
  ------------------
  |  Branch (9520:7): [True: 36.3k, False: 0]
  ------------------
 9521|  36.3k|			goto again_one_more_time;
 9522|  36.3k|	}
 9523|       |
 9524|       |	/*
 9525|       |	 * At the end there should be no NON timed chunks hanging on this
 9526|       |	 * queue.
 9527|       |	 */
 9528|  36.3k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|  36.3k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_LOGGING_ENABLE) {
  ------------------
  |  |  645|  36.3k|#define SCTP_CWND_LOGGING_ENABLE			0x00000004
  ------------------
  |  Branch (9528:6): [True: 0, False: 36.3k]
  ------------------
 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|  36.3k|	if ((*num_out == 0) && (*reason_code == 0)) {
  ------------------
  |  Branch (9531:6): [True: 22.0k, False: 14.3k]
  |  Branch (9531:25): [True: 21.3k, False: 698]
  ------------------
 9532|  21.3k|		*reason_code = 4;
 9533|  21.3k|	} else {
 9534|  15.0k|		*reason_code = 5;
 9535|  15.0k|	}
 9536|  36.3k|	sctp_clean_up_ctl(stcb, asoc, so_locked);
 9537|  36.3k|	return (0);
 9538|  72.7k|}
sctp_output.c:sctp_fill_outqueue:
 8279|  6.35k|{
 8280|  6.35k|	struct sctp_association *asoc;
 8281|  6.35k|	struct sctp_stream_out *strq;
 8282|  6.35k|	uint32_t space_left, moved, total_moved;
 8283|  6.35k|	int bail, giveup;
 8284|       |
 8285|  6.35k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  6.35k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.35k|	do {                         \
  |  |  |  |  113|  6.35k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.35k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.35k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.35k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8286|  6.35k|	asoc = &stcb->asoc;
 8287|  6.35k|	total_moved = 0;
 8288|  6.35k|	switch (net->ro._l_addr.sa.sa_family) {
 8289|      0|#ifdef INET
 8290|     11|		case AF_INET:
  ------------------
  |  Branch (8290:3): [True: 11, False: 6.34k]
  ------------------
 8291|     11|			space_left = net->mtu - SCTP_MIN_V4_OVERHEAD;
  ------------------
  |  |  588|     11|#define SCTP_MIN_V4_OVERHEAD (sizeof(struct ip) + \
  |  |  589|     11|                              sizeof(struct sctphdr))
  ------------------
 8292|     11|			break;
 8293|      0|#endif
 8294|      0|#ifdef INET6
 8295|  1.01k|		case AF_INET6:
  ------------------
  |  Branch (8295:3): [True: 1.01k, False: 5.33k]
  ------------------
 8296|  1.01k|			space_left = net->mtu - SCTP_MIN_OVERHEAD;
  ------------------
  |  |  564|  1.01k|#define SCTP_MIN_OVERHEAD (sizeof(struct ip6_hdr) + \
  |  |  565|  1.01k|                           sizeof(struct sctphdr))
  ------------------
 8297|  1.01k|			break;
 8298|      0|#endif
 8299|      0|#if defined(__Userspace__)
 8300|  5.32k|		case AF_CONN:
  ------------------
  |  | 1014|  5.32k|#define AF_CONN 123
  ------------------
  |  Branch (8300:3): [True: 5.32k, False: 1.02k]
  ------------------
 8301|  5.32k|			space_left = net->mtu - sizeof(struct sctphdr);
 8302|  5.32k|			break;
 8303|      0|#endif
 8304|      0|		default:
  ------------------
  |  Branch (8304:3): [True: 0, False: 6.35k]
  ------------------
 8305|       |			/* TSNH */
 8306|      0|			space_left = net->mtu;
 8307|      0|			break;
 8308|  6.35k|	}
 8309|       |	/* Need an allowance for the data chunk header too */
 8310|  6.35k|	space_left -= SCTP_DATA_CHUNK_OVERHEAD(stcb);
  ------------------
  |  |  134|  6.35k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 4.88k, False: 1.46k]
  |  |  ------------------
  |  |  135|  6.35k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  6.35k|                                        sizeof(struct sctp_data_chunk))
  ------------------
 8311|       |
 8312|       |	/* must make even word boundary */
 8313|  6.35k|	space_left &= 0xfffffffc;
 8314|  6.35k|	strq = stcb->asoc.ss_functions.sctp_ss_select_stream(stcb, net, asoc);
 8315|  6.35k|	giveup = 0;
 8316|  6.35k|	bail = 0;
 8317|  11.6k|	while ((space_left > 0) && (strq != NULL)) {
  ------------------
  |  Branch (8317:9): [True: 11.6k, False: 0]
  |  Branch (8317:29): [True: 5.32k, False: 6.35k]
  ------------------
 8318|  5.32k|		moved = sctp_move_to_outqueue(stcb, net, strq, space_left,
 8319|  5.32k|		                              frag_point, &giveup, eeor_mode,
 8320|  5.32k|		                              &bail, so_locked);
 8321|  5.32k|		if ((giveup != 0) || (bail != 0)) {
  ------------------
  |  Branch (8321:7): [True: 0, False: 5.32k]
  |  Branch (8321:24): [True: 0, False: 5.32k]
  ------------------
 8322|      0|			break;
 8323|      0|		}
 8324|  5.32k|		strq = stcb->asoc.ss_functions.sctp_ss_select_stream(stcb, net, asoc);
 8325|  5.32k|		total_moved += moved;
 8326|  5.32k|		if (space_left >= moved) {
  ------------------
  |  Branch (8326:7): [True: 5.32k, False: 0]
  ------------------
 8327|  5.32k|			space_left -= moved;
 8328|  5.32k|		} else {
 8329|      0|			space_left = 0;
 8330|      0|		}
 8331|  5.32k|		if (space_left >= SCTP_DATA_CHUNK_OVERHEAD(stcb)) {
  ------------------
  |  |  134|  5.32k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 3.86k, False: 1.46k]
  |  |  ------------------
  |  |  135|  5.32k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  5.32k|                                        sizeof(struct sctp_data_chunk))
  ------------------
  |  Branch (8331:7): [True: 5.32k, False: 0]
  ------------------
 8332|  5.32k|			space_left -= SCTP_DATA_CHUNK_OVERHEAD(stcb);
  ------------------
  |  |  134|  5.32k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 3.86k, False: 1.46k]
  |  |  ------------------
  |  |  135|  5.32k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  5.32k|                                        sizeof(struct sctp_data_chunk))
  ------------------
 8333|  5.32k|		} else {
 8334|      0|			space_left = 0;
 8335|      0|		}
 8336|  5.32k|		space_left &= 0xfffffffc;
 8337|  5.32k|	}
 8338|  6.35k|	if (bail != 0)
  ------------------
  |  Branch (8338:6): [True: 0, False: 6.35k]
  ------------------
 8339|      0|		*quit_now = 1;
 8340|       |
 8341|  6.35k|	stcb->asoc.ss_functions.sctp_ss_packet_done(stcb, net, asoc);
 8342|       |
 8343|  6.35k|	if (total_moved == 0) {
  ------------------
  |  Branch (8343:6): [True: 1.02k, False: 5.32k]
  ------------------
 8344|  1.02k|		if ((stcb->asoc.sctp_cmt_on_off == 0) &&
  ------------------
  |  Branch (8344:7): [True: 1.02k, False: 0]
  ------------------
 8345|  1.02k|		    (net == stcb->asoc.primary_destination)) {
  ------------------
  |  Branch (8345:7): [True: 21, False: 1.00k]
  ------------------
 8346|       |			/* ran dry for primary network net */
 8347|     21|			SCTP_STAT_INCR(sctps_primary_randry);
  ------------------
  |  | 1112|     21|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|     21|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     21|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8348|  1.00k|		} else if (stcb->asoc.sctp_cmt_on_off > 0) {
  ------------------
  |  Branch (8348:14): [True: 0, False: 1.00k]
  ------------------
 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.02k|	}
 8353|  6.35k|}
sctp_output.c:sctp_move_to_outqueue:
 7816|  5.32k|{
 7817|       |	/* Move from the stream to the send_queue keeping track of the total */
 7818|  5.32k|	struct sctp_association *asoc;
 7819|  5.32k|	struct sctp_stream_queue_pending *sp;
 7820|  5.32k|	struct sctp_tmit_chunk *chk;
 7821|  5.32k|	struct sctp_data_chunk *dchkh=NULL;
 7822|  5.32k|	struct sctp_idata_chunk *ndchkh=NULL;
 7823|  5.32k|	uint32_t to_move, length;
 7824|  5.32k|	int leading;
 7825|  5.32k|	uint8_t rcv_flags = 0;
 7826|  5.32k|	uint8_t some_taken;
 7827|       |
 7828|  5.32k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.32k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.32k|	do {                         \
  |  |  |  |  113|  5.32k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.32k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.32k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.32k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7829|  5.32k|	asoc = &stcb->asoc;
 7830|  5.32k|one_more_time:
 7831|       |	/*sa_ignore FREED_MEMORY*/
 7832|  5.32k|	sp = TAILQ_FIRST(&strq->outqueue);
 7833|  5.32k|	if (sp == NULL) {
  ------------------
  |  Branch (7833:6): [True: 0, False: 5.32k]
  ------------------
 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|  5.32k|	if ((sp->msg_is_complete) && (sp->length == 0)) {
  ------------------
  |  Branch (7849:6): [True: 5.32k, False: 0]
  |  Branch (7849:31): [True: 0, False: 5.32k]
  ------------------
 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|  5.32k|	} else {
 7891|       |		/* is there some to get */
 7892|  5.32k|		if (sp->length == 0) {
  ------------------
  |  Branch (7892:7): [True: 0, False: 5.32k]
  ------------------
 7893|       |			/* no */
 7894|      0|			*giveup = 1;
 7895|      0|			to_move = 0;
 7896|      0|			goto out_of;
 7897|  5.32k|		} else if (sp->discard_rest) {
  ------------------
  |  Branch (7897:14): [True: 0, False: 5.32k]
  ------------------
 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|  5.32k|	}
 7917|  5.32k|	some_taken = sp->some_taken;
 7918|  5.32k|	length = sp->length;
 7919|  5.32k|	if (sp->msg_is_complete) {
  ------------------
  |  Branch (7919:6): [True: 5.32k, False: 0]
  ------------------
 7920|       |		/* The message is complete */
 7921|  5.32k|		to_move = min(length, frag_point);
  ------------------
  |  |   66|  5.32k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 5.32k]
  |  |  ------------------
  ------------------
 7922|  5.32k|		if (to_move == length) {
  ------------------
  |  Branch (7922:7): [True: 5.32k, False: 0]
  ------------------
 7923|       |			/* All of it fits in the MTU */
 7924|  5.32k|			if (sp->some_taken) {
  ------------------
  |  Branch (7924:8): [True: 0, False: 5.32k]
  ------------------
 7925|      0|				rcv_flags |= SCTP_DATA_LAST_FRAG;
  ------------------
  |  |  512|      0|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
 7926|  5.32k|			} else {
 7927|  5.32k|				rcv_flags |= SCTP_DATA_NOT_FRAG;
  ------------------
  |  |  514|  5.32k|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
 7928|  5.32k|			}
 7929|  5.32k|			sp->put_last_out = 1;
 7930|  5.32k|			if (sp->sinfo_flags & SCTP_SACK_IMMEDIATELY) {
  ------------------
  |  |  263|  5.32k|#define SCTP_SACK_IMMEDIATELY 0x4000 /* Set I-Bit */
  ------------------
  |  Branch (7930:8): [True: 0, False: 5.32k]
  ------------------
 7931|      0|				rcv_flags |= SCTP_DATA_SACK_IMMEDIATELY;
  ------------------
  |  |  516|      0|#define SCTP_DATA_SACK_IMMEDIATELY 0x08
  ------------------
 7932|      0|			}
 7933|  5.32k|		} 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|  5.32k|	} 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|  5.32k|	sctp_alloc_a_chunk(stcb, chk);
  ------------------
  |  |  169|  5.32k|#define sctp_alloc_a_chunk(_stcb, _chk) { \
  |  |  170|  5.32k|	if (TAILQ_EMPTY(&(_stcb)->asoc.free_chunks)) { \
  |  |  171|  2.31k|		(_chk) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_chunk), struct sctp_tmit_chunk); \
  |  |  ------------------
  |  |  |  |  703|  2.31k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  172|  2.31k|		if ((_chk)) { \
  |  |  ------------------
  |  |  |  Branch (172:7): [True: 2.31k, False: 0]
  |  |  ------------------
  |  |  173|  2.31k|			SCTP_INCR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  676|  2.31k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  2.31k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  174|  2.31k|			(_chk)->whoTo = NULL; \
  |  |  175|  2.31k|			(_chk)->holds_key_ref = 0; \
  |  |  176|  2.31k|		} \
  |  |  177|  3.01k|	} else { \
  |  |  178|  3.01k|		(_chk) = TAILQ_FIRST(&(_stcb)->asoc.free_chunks); \
  |  |  179|  3.01k|		TAILQ_REMOVE(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  180|  3.01k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   97|  3.01k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  181|  3.01k|		(_chk)->holds_key_ref = 0; \
  |  |  182|  3.01k|		SCTP_STAT_INCR(sctps_cached_chk); \
  |  |  ------------------
  |  |  |  | 1112|  3.01k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  3.01k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  3.01k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  183|  3.01k|		(_stcb)->asoc.free_chunk_cnt--; \
  |  |  184|  3.01k|	} \
  |  |  185|  5.32k|}
  ------------------
  |  Branch (7959:2): [True: 6, False: 3.00k]
  |  Branch (7959:2): [Folded, False: 3.01k]
  |  Branch (7959:2): [True: 2.31k, False: 3.01k]
  ------------------
 7960|  5.32k|	if (chk == NULL) {
  ------------------
  |  Branch (7960:6): [True: 0, False: 5.32k]
  ------------------
 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|  5.32k|	if (sp->sinfo_flags & SCTP_UNORDERED) {
  ------------------
  |  |  259|  5.32k|#define SCTP_UNORDERED        0x0400 /* Message is un-ordered */
  ------------------
  |  Branch (7969:6): [True: 0, False: 5.32k]
  ------------------
 7970|      0|		rcv_flags |= SCTP_DATA_UNORDERED;
  ------------------
  |  |  515|      0|#define SCTP_DATA_UNORDERED        0x04
  ------------------
 7971|      0|	}
 7972|  5.32k|	if (SCTP_BASE_SYSCTL(sctp_enable_sack_immediately) &&
  ------------------
  |  |  590|  10.6k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (590:31): [True: 5.32k, False: 0]
  |  |  ------------------
  ------------------
 7973|  5.32k|	    (sp->sinfo_flags & SCTP_EOF) == SCTP_EOF) {
  ------------------
  |  |  257|  5.32k|#define SCTP_EOF              0x0100 /* Start shutdown procedures */
  ------------------
              	    (sp->sinfo_flags & SCTP_EOF) == SCTP_EOF) {
  ------------------
  |  |  257|  5.32k|#define SCTP_EOF              0x0100 /* Start shutdown procedures */
  ------------------
  |  Branch (7973:6): [True: 0, False: 5.32k]
  ------------------
 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|  5.32k|	memset(chk, 0, sizeof(*chk));
 7978|  5.32k|	chk->rec.data.rcv_flags = rcv_flags;
 7979|       |
 7980|  5.32k|	if (to_move >= length) {
  ------------------
  |  Branch (7980:6): [True: 5.32k, False: 0]
  ------------------
 7981|       |		/* we think we can steal the whole thing */
 7982|  5.32k|		if (to_move < sp->length) {
  ------------------
  |  Branch (7982:7): [True: 0, False: 5.32k]
  ------------------
 7983|       |			/* bail, it changed */
 7984|      0|			goto dont_do_it;
 7985|      0|		}
 7986|  5.32k|		chk->data = sp->data;
 7987|  5.32k|		chk->last_mbuf = sp->tail_mbuf;
 7988|       |		/* register the stealing */
 7989|  5.32k|		sp->data = sp->tail_mbuf = NULL;
 7990|  5.32k|	} 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|  5.32k|	if (SCTP_BUF_IS_EXTENDED(chk->data)) {
  ------------------
  |  |  806|  5.32k|#define SCTP_BUF_IS_EXTENDED(m) (m->m_flags & M_EXT)
  |  |  ------------------
  |  |  |  |  221|  5.32k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               #define SCTP_BUF_IS_EXTENDED(m) (m->m_flags & M_EXT)
  |  |  ------------------
  |  |  |  |  233|  5.32k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (806:33): [True: 0, False: 5.32k]
  |  |  ------------------
  ------------------
 8033|      0|		chk->copy_by_ref = 1;
 8034|  5.32k|	} else {
 8035|  5.32k|		chk->copy_by_ref = 0;
 8036|  5.32k|	}
 8037|       |	/* get last_mbuf and counts of mb usage
 8038|       |	 * This is ugly but hopefully its only one mbuf.
 8039|       |	 */
 8040|  5.32k|	if (chk->last_mbuf == NULL) {
  ------------------
  |  Branch (8040:6): [True: 0, False: 5.32k]
  ------------------
 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|  5.32k|	if (to_move > length) {
  ------------------
  |  Branch (8047:6): [True: 0, False: 5.32k]
  ------------------
 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|  5.32k|	} else {
 8059|  5.32k|		atomic_subtract_int(&sp->length, to_move);
  ------------------
  |  |   97|  5.32k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 8060|  5.32k|	}
 8061|  5.32k|	leading = SCTP_DATA_CHUNK_OVERHEAD(stcb);
  ------------------
  |  |  134|  5.32k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 3.86k, False: 1.46k]
  |  |  ------------------
  |  |  135|  5.32k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  5.32k|                                        sizeof(struct sctp_data_chunk))
  ------------------
 8062|  5.32k|	if (M_LEADINGSPACE(chk->data) < leading) {
  ------------------
  |  |  343|  5.32k|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|  5.32k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|  5.32k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (343:3): [True: 0, False: 5.32k]
  |  |  ------------------
  |  |  344|  5.32k|	    (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|  5.32k|	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  ------------------
  |  |  |  |  221|  5.32k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  ------------------
  |  |  |  |  234|  5.32k|#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: 5.32k]
  |  |  ------------------
  |  |  346|  5.32k|	    (m)->m_data - (m)->m_dat)
  |  |  ------------------
  |  |  |  |  219|  5.32k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	    (m)->m_data - (m)->m_dat)
  |  |  ------------------
  |  |  |  |  227|  5.32k|#define	m_dat		M_dat.M_databuf
  |  |  ------------------
  ------------------
  |  Branch (8062:6): [True: 0, False: 5.32k]
  ------------------
 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|  5.32k|	SCTP_BUF_PREPEND(chk->data, SCTP_DATA_CHUNK_OVERHEAD(stcb), M_NOWAIT);
  ------------------
  |  |  810|  5.32k|#define SCTP_BUF_PREPEND	M_PREPEND
  |  |  ------------------
  |  |  |  |  367|  5.32k|#define	M_PREPEND(m, plen, how) do {					\
  |  |  |  |  368|  5.32k|	struct mbuf **_mmp = &(m);					\
  |  |  |  |  369|  5.32k|	struct mbuf *_mm = *_mmp;					\
  |  |  |  |  370|  10.6k|	int _mplen = (plen);						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (370:16): [True: 3.86k, False: 1.46k]
  |  |  |  |  ------------------
  |  |  |  |  371|  5.32k|	int __mhow = (how);						\
  |  |  |  |  372|  5.32k|									\
  |  |  |  |  373|  5.32k|	if (M_LEADINGSPACE(_mm) >= _mplen) {				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  343|  5.32k|	(((m)->m_flags & M_EXT) ?					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|  5.32k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  233|  5.32k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (343:3): [True: 0, False: 5.32k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  344|  5.32k|	    (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|  5.32k|	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|  5.32k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    ((m)->m_flags & M_PKTHDR)? (m)->m_data - (m)->m_pktdat :	\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  234|  5.32k|#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: 5.32k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  346|  5.32k|	    (m)->m_data - (m)->m_dat)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  219|  5.32k|#define	m_data		m_hdr.mh_data
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               	    (m)->m_data - (m)->m_dat)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|  5.32k|#define	m_dat		M_dat.M_databuf
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (373:6): [True: 5.32k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  374|  5.32k|		_mm->m_data -= _mplen;					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  219|  5.32k|#define	m_data		m_hdr.mh_data
  |  |  |  |  ------------------
  |  |  |  |  375|  5.32k|		_mm->m_len += _mplen;					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  218|  5.32k|#define	m_len		m_hdr.mh_len
  |  |  |  |  ------------------
  |  |  |  |  376|  5.32k|	} else								\
  |  |  |  |  377|  5.32k|		_mm = m_prepend(_mm, _mplen, __mhow);			\
  |  |  |  |  378|  5.32k|	if (_mm != NULL && _mm->m_flags & M_PKTHDR)			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  5.32k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               	if (_mm != NULL && _mm->m_flags & M_PKTHDR)			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  234|  5.32k|#define	M_PKTHDR	0x0002	/* start of record */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (378:6): [True: 5.32k, False: 0]
  |  |  |  |  |  Branch (378:21): [True: 0, False: 5.32k]
  |  |  |  |  ------------------
  |  |  |  |  379|  5.32k|		_mm->m_pkthdr.len += _mplen;				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  224|      0|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  |  |  |  |  ------------------
  |  |  |  |  380|  5.32k|	*_mmp = _mm;							\
  |  |  |  |  381|  5.32k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (381:10): [Folded, False: 5.32k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8099|  5.32k|	if (chk->data == NULL) {
  ------------------
  |  Branch (8099:6): [True: 0, False: 5.32k]
  ------------------
 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|  5.32k|	sctp_snd_sb_alloc(stcb, SCTP_DATA_CHUNK_OVERHEAD(stcb));
  ------------------
  |  |  285|  5.32k|#define sctp_snd_sb_alloc(stcb, sz)  \
  |  |  286|  5.32k|do { \
  |  |  287|  5.32k|	atomic_add_int(&stcb->asoc.total_output_queue_size,sz); \
  |  |  ------------------
  |  |  |  |   94|  10.6k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (94:62): [True: 3.86k, False: 1.46k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  288|  5.32k|	if ((stcb->sctp_socket != NULL) && \
  |  |  ------------------
  |  |  |  Branch (288:6): [True: 5.32k, False: 0]
  |  |  ------------------
  |  |  289|  5.32k|	    ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) || \
  |  |  ------------------
  |  |  |  |  529|  5.32k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (289:7): [True: 5.32k, False: 0]
  |  |  ------------------
  |  |  290|  5.32k|	     (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.32k|		SCTP_SB_INCR(&stcb->sctp_socket->so_snd, sz); \
  |  |  ------------------
  |  |  |  |  969|  5.32k|#define SCTP_SB_INCR(sb, incr)			\
  |  |  |  |  970|  5.32k|{						\
  |  |  |  |  971|  5.32k|	atomic_add_int(&(sb)->sb_cc, incr);	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  10.6k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (94:62): [True: 3.86k, False: 1.46k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  972|  5.32k|}
  |  |  ------------------
  |  |  292|  5.32k|	} \
  |  |  293|  5.32k|} while (0)
  |  |  ------------------
  |  |  |  Branch (293:10): [Folded, False: 5.32k]
  |  |  ------------------
  ------------------
 8112|  5.32k|	chk->book_size = chk->send_size = (uint16_t)(to_move + SCTP_DATA_CHUNK_OVERHEAD(stcb));
  ------------------
  |  |  134|  5.32k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 3.86k, False: 1.46k]
  |  |  ------------------
  |  |  135|  5.32k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  5.32k|                                        sizeof(struct sctp_data_chunk))
  ------------------
 8113|  5.32k|	chk->book_size_scale = 0;
 8114|  5.32k|	chk->sent = SCTP_DATAGRAM_UNSENT;
  ------------------
  |  |  348|  5.32k|#define SCTP_DATAGRAM_UNSENT		0
  ------------------
 8115|       |
 8116|  5.32k|	chk->flags = 0;
 8117|  5.32k|	chk->asoc = &stcb->asoc;
 8118|  5.32k|	chk->pad_inplace = 0;
 8119|  5.32k|	chk->no_fr_allowed = 0;
 8120|  5.32k|	if (stcb->asoc.idata_supported == 0) {
  ------------------
  |  Branch (8120:6): [True: 1.46k, False: 3.86k]
  ------------------
 8121|  1.46k|		if (rcv_flags & SCTP_DATA_UNORDERED) {
  ------------------
  |  |  515|  1.46k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (8121:7): [True: 0, False: 1.46k]
  ------------------
 8122|       |			/* Just use 0. The receiver ignores the values. */
 8123|      0|			chk->rec.data.mid = 0;
 8124|  1.46k|		} else {
 8125|  1.46k|			chk->rec.data.mid = strq->next_mid_ordered;
 8126|  1.46k|			if (rcv_flags & SCTP_DATA_LAST_FRAG) {
  ------------------
  |  |  512|  1.46k|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (8126:8): [True: 1.46k, False: 0]
  ------------------
 8127|  1.46k|				strq->next_mid_ordered++;
 8128|  1.46k|			}
 8129|  1.46k|		}
 8130|  3.86k|	} else {
 8131|  3.86k|		if (rcv_flags & SCTP_DATA_UNORDERED) {
  ------------------
  |  |  515|  3.86k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (8131:7): [True: 0, False: 3.86k]
  ------------------
 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.86k|		} else {
 8137|  3.86k|			chk->rec.data.mid = strq->next_mid_ordered;
 8138|  3.86k|			if (rcv_flags & SCTP_DATA_LAST_FRAG) {
  ------------------
  |  |  512|  3.86k|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
  |  Branch (8138:8): [True: 3.86k, False: 0]
  ------------------
 8139|  3.86k|				strq->next_mid_ordered++;
 8140|  3.86k|			}
 8141|  3.86k|		}
 8142|  3.86k|	}
 8143|  5.32k|	chk->rec.data.sid = sp->sid;
 8144|  5.32k|	chk->rec.data.ppid = sp->ppid;
 8145|  5.32k|	chk->rec.data.context = sp->context;
 8146|  5.32k|	chk->rec.data.doing_fast_retransmit = 0;
 8147|       |
 8148|  5.32k|	chk->rec.data.timetodrop = sp->ts;
 8149|  5.32k|	chk->flags = sp->act_flags;
 8150|       |
 8151|  5.32k|	if (sp->net) {
  ------------------
  |  Branch (8151:6): [True: 0, False: 5.32k]
  ------------------
 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|  5.32k|		chk->whoTo = NULL;
 8156|       |
 8157|  5.32k|	if (sp->holds_key_ref) {
  ------------------
  |  Branch (8157:6): [True: 0, False: 5.32k]
  ------------------
 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|  5.32k|	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|  5.32k|	chk->rec.data.tsn = asoc->sending_seq++;
 8167|  5.32k|#endif
 8168|  5.32k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_AT_SEND_2_OUTQ) {
  ------------------
  |  |  590|  5.32k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_AT_SEND_2_OUTQ) {
  ------------------
  |  |  668|  5.32k|#define SCTP_LOG_AT_SEND_2_OUTQ				0x08000000
  ------------------
  |  Branch (8168:6): [True: 0, False: 5.32k]
  ------------------
 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|  5.32k|	if (stcb->asoc.idata_supported == 0) {
  ------------------
  |  Branch (8174:6): [True: 1.46k, False: 3.86k]
  ------------------
 8175|  1.46k|		dchkh = mtod(chk->data, struct sctp_data_chunk *);
  ------------------
  |  |   96|  1.46k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  1.46k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 8176|  3.86k|	} else {
 8177|  3.86k|		ndchkh = mtod(chk->data, struct sctp_idata_chunk *);
  ------------------
  |  |   96|  3.86k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  3.86k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 8178|  3.86k|	}
 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|  5.32k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.32k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.32k|	do {                         \
  |  |  |  |  113|  5.32k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.32k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.32k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.32k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 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|  5.32k|	if (stcb->asoc.idata_supported == 0) {
  ------------------
  |  Branch (8200:6): [True: 1.46k, False: 3.86k]
  ------------------
 8201|  1.46k|		dchkh->ch.chunk_type = SCTP_DATA;
  ------------------
  |  |  454|  1.46k|#define SCTP_DATA		0x00
  ------------------
 8202|  1.46k|		dchkh->ch.chunk_flags = chk->rec.data.rcv_flags;
 8203|  1.46k|		dchkh->dp.tsn = htonl(chk->rec.data.tsn);
 8204|  1.46k|		dchkh->dp.sid = htons(strq->sid);
 8205|  1.46k|		dchkh->dp.ssn = htons((uint16_t)chk->rec.data.mid);
 8206|  1.46k|		dchkh->dp.ppid = chk->rec.data.ppid;
 8207|  1.46k|		dchkh->ch.chunk_length = htons(chk->send_size);
 8208|  3.86k|	} else {
 8209|  3.86k|		ndchkh->ch.chunk_type = SCTP_IDATA;
  ------------------
  |  |  474|  3.86k|#define SCTP_IDATA		0x40
  ------------------
 8210|  3.86k|		ndchkh->ch.chunk_flags = chk->rec.data.rcv_flags;
 8211|  3.86k|		ndchkh->dp.tsn = htonl(chk->rec.data.tsn);
 8212|  3.86k|		ndchkh->dp.sid = htons(strq->sid);
 8213|  3.86k|		ndchkh->dp.reserved = htons(0);
 8214|  3.86k|		ndchkh->dp.mid = htonl(chk->rec.data.mid);
 8215|  3.86k|		if (sp->fsn == 0)
  ------------------
  |  Branch (8215:7): [True: 3.86k, False: 0]
  ------------------
 8216|  3.86k|			ndchkh->dp.ppid_fsn.ppid = chk->rec.data.ppid;
 8217|      0|		else
 8218|      0|			ndchkh->dp.ppid_fsn.fsn = htonl(sp->fsn);
 8219|  3.86k|		sp->fsn++;
 8220|  3.86k|		ndchkh->ch.chunk_length = htons(chk->send_size);
 8221|  3.86k|	}
 8222|       |	/* Now advance the chk->send_size by the actual pad needed. */
 8223|  5.32k|	if (chk->send_size < SCTP_SIZE32(chk->book_size)) {
  ------------------
  |  |  383|  5.32k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (8223:6): [True: 5.32k, False: 0]
  ------------------
 8224|       |		/* need a pad */
 8225|  5.32k|		struct mbuf *lm;
 8226|  5.32k|		int pads;
 8227|       |
 8228|  5.32k|		pads = SCTP_SIZE32(chk->book_size) - chk->send_size;
  ------------------
  |  |  383|  5.32k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 8229|  5.32k|		lm = sctp_pad_lastmbuf(chk->data, pads, chk->last_mbuf);
 8230|  5.32k|		if (lm != NULL) {
  ------------------
  |  Branch (8230:7): [True: 5.32k, False: 0]
  ------------------
 8231|  5.32k|			chk->last_mbuf = lm;
 8232|  5.32k|			chk->pad_inplace = 1;
 8233|  5.32k|		}
 8234|  5.32k|		chk->send_size += pads;
 8235|  5.32k|	}
 8236|  5.32k|	if (PR_SCTP_ENABLED(chk->flags)) {
  ------------------
  |  |  281|  5.32k|#define PR_SCTP_ENABLED(x)        ((PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE) && \
  |  |  ------------------
  |  |  |  |  280|  5.32k|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  |  |  ------------------
  |  |               #define PR_SCTP_ENABLED(x)        ((PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE) && \
  |  |  ------------------
  |  |  |  |  272|  5.32k|#define SCTP_PR_SCTP_NONE 0x0000 /* Reliable transfer */
  |  |  ------------------
  |  |  |  Branch (281:36): [True: 0, False: 5.32k]
  |  |  ------------------
  |  |  282|  5.32k|                                   (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|  5.32k|	if (sp->msg_is_complete && (sp->length == 0) && (sp->sender_all_done)) {
  ------------------
  |  Branch (8239:6): [True: 5.32k, False: 0]
  |  Branch (8239:29): [True: 5.32k, False: 0]
  |  Branch (8239:50): [True: 5.32k, False: 0]
  ------------------
 8240|       |		/* All done pull and kill the message */
 8241|  5.32k|		if (sp->put_last_out == 0) {
  ------------------
  |  Branch (8241:7): [True: 0, False: 5.32k]
  ------------------
 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|  5.32k|		atomic_subtract_int(&asoc->stream_queue_cnt, 1);
  ------------------
  |  |   97|  5.32k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 8250|  5.32k|		TAILQ_REMOVE(&strq->outqueue, sp, next);
  ------------------
  |  Branch (8250:3): [True: 0, False: 5.32k]
  |  Branch (8250:3): [Folded, False: 5.32k]
  ------------------
 8251|  5.32k|		stcb->asoc.ss_functions.sctp_ss_remove_from_stream(stcb, asoc, strq, sp);
 8252|  5.32k|		if ((strq->state == SCTP_STREAM_RESET_PENDING) &&
  ------------------
  |  |  671|  5.32k|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
  |  Branch (8252:7): [True: 44, False: 5.28k]
  ------------------
 8253|     44|		    (strq->chunks_on_queues == 0) &&
  ------------------
  |  Branch (8253:7): [True: 44, False: 0]
  ------------------
 8254|  5.32k|		    TAILQ_EMPTY(&strq->outqueue)) {
  ------------------
  |  Branch (8254:7): [True: 44, False: 0]
  ------------------
 8255|     44|			stcb->asoc.trigger_reset = 1;
 8256|     44|		}
 8257|  5.32k|		if (sp->net) {
  ------------------
  |  Branch (8257:7): [True: 0, False: 5.32k]
  ------------------
 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|  5.32k|		if (sp->data) {
  ------------------
  |  Branch (8261:7): [True: 0, False: 5.32k]
  ------------------
 8262|      0|			sctp_m_freem(sp->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 8263|      0|			sp->data = NULL;
 8264|      0|		}
 8265|  5.32k|		sctp_free_a_strmoq(stcb, sp, so_locked);
  ------------------
  |  |  125|  5.32k|#define sctp_free_a_strmoq(_stcb, _strmoq, _so_locked) { \
  |  |  126|  5.32k|	if ((_strmoq)->holds_key_ref) { \
  |  |  ------------------
  |  |  |  Branch (126:6): [True: 0, False: 5.32k]
  |  |  ------------------
  |  |  127|      0|		sctp_auth_key_release(stcb, sp->auth_keyid, _so_locked); \
  |  |  128|      0|		(_strmoq)->holds_key_ref = 0; \
  |  |  129|      0|	} \
  |  |  130|  5.32k|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_strmoq), (_strmoq)); \
  |  |  ------------------
  |  |  |  |  707|  5.32k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|  5.32k|	free(element);  \
  |  |  |  |  709|  5.32k|}
  |  |  ------------------
  |  |  131|  5.32k|	SCTP_DECR_STRMOQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  691|  5.32k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_strmoq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|  5.32k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  132|  5.32k|}
  ------------------
 8266|  5.32k|	}
 8267|  5.32k|	asoc->chunks_on_out_queue++;
 8268|  5.32k|	strq->chunks_on_queues++;
 8269|  5.32k|	TAILQ_INSERT_TAIL(&asoc->send_queue, chk, sctp_next);
  ------------------
  |  Branch (8269:2): [Folded, False: 5.32k]
  ------------------
 8270|  5.32k|	asoc->send_queue_cnt++;
 8271|  5.32k|out_of:
 8272|  5.32k|	return (to_move);
 8273|  5.32k|}
sctp_output.c:sctp_clean_up_datalist:
 7624|  3.87k|{
 7625|  3.87k|	int i;
 7626|  3.87k|	struct sctp_tmit_chunk *tp1;
 7627|       |
 7628|  7.75k|	for (i = 0; i < bundle_at; i++) {
  ------------------
  |  Branch (7628:14): [True: 3.87k, False: 3.87k]
  ------------------
 7629|       |		/* off of the send queue */
 7630|  3.87k|		TAILQ_REMOVE(&asoc->send_queue, data_list[i], sctp_next);
  ------------------
  |  Branch (7630:3): [True: 0, False: 3.87k]
  |  Branch (7630:3): [Folded, False: 3.87k]
  ------------------
 7631|  3.87k|		asoc->send_queue_cnt--;
 7632|  3.87k|		if (i > 0) {
  ------------------
  |  Branch (7632:7): [True: 0, False: 3.87k]
  ------------------
 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.87k|		data_list[i]->sent_rcv_time = net->last_sent_time;
 7642|  3.87k|		data_list[i]->rec.data.cwnd_at_send = net->cwnd;
 7643|  3.87k|		data_list[i]->rec.data.fast_retran_tsn = data_list[i]->rec.data.tsn;
 7644|  3.87k|		if (data_list[i]->whoTo == NULL) {
  ------------------
  |  Branch (7644:7): [True: 3.87k, False: 0]
  ------------------
 7645|  3.87k|			data_list[i]->whoTo = net;
 7646|  3.87k|			atomic_add_int(&net->ref_count, 1);
  ------------------
  |  |   94|  3.87k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 7647|  3.87k|		}
 7648|       |		/* on to the sent queue */
 7649|  3.87k|		tp1 = TAILQ_LAST(&asoc->sent_queue, sctpchunk_listhead);
 7650|  3.87k|		if ((tp1) && SCTP_TSN_GT(tp1->rec.data.tsn, data_list[i]->rec.data.tsn)) {
  ------------------
  |  |  889|    422|#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
  |  |  ------------------
  |  |  |  |  883|    422|#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (883:32): [True: 422, False: 0]
  |  |  |  |  |  Branch (883:43): [True: 0, False: 422]
  |  |  |  |  ------------------
  |  |  |  |  884|    422|                              ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (884:32): [True: 0, False: 422]
  |  |  |  |  |  Branch (884:43): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (7650:7): [True: 422, False: 3.45k]
  ------------------
 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.87k|		} else {
 7666|  3.87k|			TAILQ_INSERT_TAIL(&asoc->sent_queue,
  ------------------
  |  Branch (7666:4): [Folded, False: 3.87k]
  ------------------
 7667|  3.87k|					  data_list[i],
 7668|  3.87k|					  sctp_next);
 7669|  3.87k|		}
 7670|  3.87k|	all_done:
 7671|       |		/* This does not lower until the cum-ack passes it */
 7672|  3.87k|		asoc->sent_queue_cnt++;
 7673|  3.87k|		if ((asoc->peers_rwnd <= 0) &&
  ------------------
  |  Branch (7673:7): [True: 0, False: 3.87k]
  ------------------
 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.87k|		data_list[i]->sent = SCTP_DATAGRAM_SENT;
  ------------------
  |  |  349|  3.87k|#define SCTP_DATAGRAM_SENT		1
  ------------------
 7683|  3.87k|		data_list[i]->snd_count = 1;
 7684|  3.87k|		data_list[i]->rec.data.chunk_was_revoked = 0;
 7685|  3.87k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FLIGHT_LOGGING_ENABLE) {
  ------------------
  |  |  590|  3.87k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FLIGHT_LOGGING_ENABLE) {
  ------------------
  |  |  646|  3.87k|#define SCTP_FLIGHT_LOGGING_ENABLE			0x00000020
  ------------------
  |  Branch (7685:7): [True: 0, False: 3.87k]
  ------------------
 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.87k|		sctp_flight_size_increase(data_list[i]);
  ------------------
  |  |  296|  3.87k|#define sctp_flight_size_increase(tp1) do { \
  |  |  297|  3.87k|	(tp1)->whoTo->flight_size += (tp1)->book_size; \
  |  |  298|  3.87k|} while (0)
  |  |  ------------------
  |  |  |  Branch (298:10): [Folded, False: 3.87k]
  |  |  ------------------
  ------------------
 7693|  3.87k|		sctp_total_flight_increase(stcb, data_list[i]);
  ------------------
  |  |  350|  3.87k|#define sctp_total_flight_increase(stcb, tp1) do { \
  |  |  351|  3.87k|	(stcb)->asoc.total_flight_count++; \
  |  |  352|  3.87k|	(stcb)->asoc.total_flight += (tp1)->book_size; \
  |  |  353|  3.87k|} while (0)
  |  |  ------------------
  |  |  |  Branch (353:10): [Folded, False: 3.87k]
  |  |  ------------------
  ------------------
 7694|  3.87k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_RWND_ENABLE) {
  ------------------
  |  |  590|  3.87k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_RWND_ENABLE) {
  ------------------
  |  |  661|  3.87k|#define SCTP_LOG_RWND_ENABLE    			0x00100000
  ------------------
  |  Branch (7694:7): [True: 0, False: 3.87k]
  ------------------
 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.87k|		asoc->peers_rwnd = sctp_sbspace_sub(asoc->peers_rwnd,
  ------------------
  |  |   93|  3.87k|#define sctp_sbspace_sub(a,b) (((a) > (b)) ? ((a) - (b)) : 0)
  |  |  ------------------
  |  |  |  Branch (93:32): [True: 3.87k, False: 0]
  |  |  ------------------
  ------------------
 7699|  3.87k|						    (uint32_t) (data_list[i]->send_size + SCTP_BASE_SYSCTL(sctp_peer_chunk_oh)));
 7700|  3.87k|		if (asoc->peers_rwnd < stcb->sctp_ep->sctp_ep.sctp_sws_sender) {
  ------------------
  |  Branch (7700:7): [True: 8, False: 3.87k]
  ------------------
 7701|       |			/* SWS sender side engages */
 7702|      8|			asoc->peers_rwnd = 0;
 7703|      8|		}
 7704|  3.87k|	}
 7705|  3.87k|	if (asoc->cc_functions.sctp_cwnd_update_packet_transmitted) {
  ------------------
  |  Branch (7705:6): [True: 0, False: 3.87k]
  ------------------
 7706|      0|		(*asoc->cc_functions.sctp_cwnd_update_packet_transmitted)(stcb, net);
 7707|      0|	}
 7708|  3.87k|}
sctp_output.c:sctp_clean_up_ctl:
 7712|  36.3k|{
 7713|  36.3k|	struct sctp_tmit_chunk *chk, *nchk;
 7714|       |
 7715|   261k|	TAILQ_FOREACH_SAFE(chk, &asoc->control_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  36.3k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|   297k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 261k, False: 36.3k]
  |  |  |  Branch (1130:24): [True: 261k, False: 0]
  |  |  ------------------
  |  | 1131|   261k|              (var) = (tvar))
  ------------------
 7716|   261k|		if ((chk->rec.chunk_id.id == SCTP_SELECTIVE_ACK) ||
  ------------------
  |  |  457|   261k|#define SCTP_SELECTIVE_ACK	0x03
  ------------------
  |  Branch (7716:7): [True: 5.70k, False: 255k]
  ------------------
 7717|   255k|		    (chk->rec.chunk_id.id == SCTP_NR_SELECTIVE_ACK) ||	/* EY */
  ------------------
  |  |  472|   255k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (7717:7): [True: 390, False: 255k]
  ------------------
 7718|   255k|		    (chk->rec.chunk_id.id == SCTP_HEARTBEAT_REQUEST) ||
  ------------------
  |  |  458|   255k|#define SCTP_HEARTBEAT_REQUEST	0x04
  ------------------
  |  Branch (7718:7): [True: 37.3k, False: 217k]
  ------------------
 7719|   217k|		    (chk->rec.chunk_id.id == SCTP_HEARTBEAT_ACK) ||
  ------------------
  |  |  459|   217k|#define SCTP_HEARTBEAT_ACK	0x05
  ------------------
  |  Branch (7719:7): [True: 28.2k, False: 189k]
  ------------------
 7720|   189k|		    (chk->rec.chunk_id.id == SCTP_FORWARD_CUM_TSN) ||
  ------------------
  |  |  487|   189k|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (7720:7): [True: 58, False: 189k]
  ------------------
 7721|   189k|		    (chk->rec.chunk_id.id == SCTP_SHUTDOWN) ||
  ------------------
  |  |  461|   189k|#define SCTP_SHUTDOWN		0x07
  ------------------
  |  Branch (7721:7): [True: 70, False: 189k]
  ------------------
 7722|   189k|		    (chk->rec.chunk_id.id == SCTP_SHUTDOWN_ACK) ||
  ------------------
  |  |  462|   189k|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
  |  Branch (7722:7): [True: 988, False: 188k]
  ------------------
 7723|   188k|		    (chk->rec.chunk_id.id == SCTP_OPERATION_ERROR) ||
  ------------------
  |  |  463|   188k|#define SCTP_OPERATION_ERROR	0x09
  ------------------
  |  Branch (7723:7): [True: 149k, False: 39.5k]
  ------------------
 7724|  39.5k|		    (chk->rec.chunk_id.id == SCTP_PACKET_DROPPED) ||
  ------------------
  |  |  479|  39.5k|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (7724:7): [True: 0, False: 39.5k]
  ------------------
 7725|  39.5k|		    (chk->rec.chunk_id.id == SCTP_COOKIE_ACK) ||
  ------------------
  |  |  465|  39.5k|#define SCTP_COOKIE_ACK		0x0b
  ------------------
  |  Branch (7725:7): [True: 703, False: 38.8k]
  ------------------
 7726|  38.8k|		    (chk->rec.chunk_id.id == SCTP_ECN_CWR) ||
  ------------------
  |  |  467|  38.8k|#define SCTP_ECN_CWR		0x0d
  ------------------
  |  Branch (7726:7): [True: 380, False: 38.4k]
  ------------------
 7727|   223k|		    (chk->rec.chunk_id.id == SCTP_ASCONF_ACK)) {
  ------------------
  |  |  477|  38.4k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (7727:7): [True: 912, False: 37.5k]
  ------------------
 7728|       |			/* Stray chunks must be cleaned up */
 7729|   233k|	clean_up_anyway:
 7730|   233k|			TAILQ_REMOVE(&asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (7730:4): [True: 223k, False: 9.62k]
  |  Branch (7730:4): [Folded, False: 233k]
  ------------------
 7731|   233k|			asoc->ctrl_queue_cnt--;
 7732|   233k|			if (chk->data) {
  ------------------
  |  Branch (7732:8): [True: 178k, False: 54.6k]
  ------------------
 7733|   178k|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|   178k|#define sctp_m_freem m_freem
  ------------------
 7734|   178k|				chk->data = NULL;
 7735|   178k|			}
 7736|   233k|			if (chk->rec.chunk_id.id == SCTP_FORWARD_CUM_TSN) {
  ------------------
  |  |  487|   233k|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (7736:8): [True: 58, False: 233k]
  ------------------
 7737|     58|				asoc->fwd_tsn_cnt--;
 7738|     58|			}
 7739|   233k|			sctp_free_a_chunk(stcb, chk, so_locked);
  ------------------
  |  |  143|   233k|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|   233k|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 233k]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|   233k|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 233k, False: 0]
  |  |  ------------------
  |  |  149|   233k|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|   233k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|   233k|	do {                         \
  |  |  |  |  |  |  113|   233k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 233k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|   233k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 233k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|   233k|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 233k, False: 0]
  |  |  ------------------
  |  |  151|   233k|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|   233k|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|   233k|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 233k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|   233k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|   233k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|   233k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 576, False: 232k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  231|    576|			if ((__net)->ro.ro_rt) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (231:8): [True: 576, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  232|    576|				RTFREE((__net)->ro.ro_rt); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  126|    576|#define	RTFREE(_rt) do {					\
  |  |  |  |  |  |  127|    576|		RT_LOCK(_rt);					\
  |  |  |  |  |  |  128|    576|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  116|    576|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  |  |  117|    576|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (117:7): [True: 576, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  118|    576|			rtfree(_rt);				\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  884|    576|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  119|    576|		} 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|    576|		/* guard against invalid refs */		\
  |  |  |  |  |  |  |  |  124|    576|		_rt = NULL;					\
  |  |  |  |  |  |  |  |  125|    576|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 576]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  129|    576|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (129:10): [Folded, False: 576]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  233|    576|				(__net)->ro.ro_rt = NULL; \
  |  |  |  |  234|    576|			} \
  |  |  |  |  235|    576|			if ((__net)->src_addr_selected) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:8): [True: 0, False: 576]
  |  |  |  |  ------------------
  |  |  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  |  |  238|      0|			} \
  |  |  |  |  239|    576|			(__net)->src_addr_selected = 0; \
  |  |  |  |  240|    576|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  481|    576|#define SCTP_ADDR_REACHABLE		0x001
  |  |  |  |  ------------------
  |  |  |  |  241|    576|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  707|    576|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  |  |  708|    576|	free(element);  \
  |  |  |  |  |  |  709|    576|}
  |  |  |  |  ------------------
  |  |  |  |  242|    576|			SCTP_DECR_RADDR_COUNT(); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  673|    576|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|    576|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  243|    576|		} \
  |  |  |  |  244|   233k|	} \
  |  |  |  |  245|   233k|}
  |  |  ------------------
  |  |  152|   233k|			(_chk)->whoTo = NULL; \
  |  |  153|   233k|		} \
  |  |  154|   233k|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|   233k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 212k, False: 20.2k]
  |  |  ------------------
  |  |  155|   233k|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|  20.2k|#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|  20.2k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 20.2k]
  |  |  ------------------
  |  |  156|   212k|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|   212k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|   212k|	free(element);  \
  |  |  |  |  709|   212k|}
  |  |  ------------------
  |  |  157|   212k|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|   212k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|   212k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|   212k|		} else { \
  |  |  159|  20.2k|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|  20.2k|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|  20.2k|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|  20.2k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|  20.2k|		} \
  |  |  163|   233k|	} 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|   233k|}
  ------------------
  |  Branch (7739:4): [Folded, False: 20.2k]
  ------------------
 7740|   233k|		} else if (chk->rec.chunk_id.id == SCTP_STREAM_RESET) {
  ------------------
  |  |  481|  37.5k|#define SCTP_STREAM_RESET       0x82
  ------------------
  |  Branch (7740:14): [True: 15.7k, False: 21.7k]
  ------------------
 7741|       |			/* special handling, we must look into the param */
 7742|  15.7k|			if (chk != asoc->str_reset) {
  ------------------
  |  Branch (7742:8): [True: 9.30k, False: 6.45k]
  ------------------
 7743|  9.30k|				goto clean_up_anyway;
 7744|  9.30k|			}
 7745|  15.7k|		}
 7746|   261k|	}
 7747|  36.3k|}
sctp_output.c:sctp_send_resp_msg:
11741|    851|{
11742|    851|	struct mbuf *o_pak;
11743|    851|	struct mbuf *mout;
11744|    851|	struct sctphdr *shout;
11745|    851|	struct sctp_chunkhdr *ch;
11746|    851|#if defined(INET) || defined(INET6)
11747|    851|	struct udphdr *udp;
11748|    851|#endif
11749|    851|	int ret, len, cause_len, padding_len;
11750|    851|#ifdef INET
11751|       |#if defined(__APPLE__) && !defined(__Userspace__)
11752|       |	sctp_route_t ro;
11753|       |#endif
11754|    851|	struct sockaddr_in *src_sin, *dst_sin;
11755|    851|	struct ip *ip;
11756|    851|#endif
11757|    851|#ifdef INET6
11758|    851|	struct sockaddr_in6 *src_sin6, *dst_sin6;
11759|    851|	struct ip6_hdr *ip6;
11760|    851|#endif
11761|       |
11762|       |	/* Compute the length of the cause and add final padding. */
11763|    851|	cause_len = 0;
11764|    851|	if (cause != NULL) {
  ------------------
  |  Branch (11764:6): [True: 297, False: 554]
  ------------------
11765|    297|		struct mbuf *m_at, *m_last = NULL;
11766|       |
11767|    637|		for (m_at = cause; m_at; m_at = SCTP_BUF_NEXT(m_at)) {
  ------------------
  |  |  802|    340|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    340|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (11767:22): [True: 340, False: 297]
  ------------------
11768|    340|			if (SCTP_BUF_NEXT(m_at) == NULL)
  ------------------
  |  |  802|    340|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    340|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (11768:8): [True: 297, False: 43]
  ------------------
11769|    297|				m_last = m_at;
11770|    340|			cause_len += SCTP_BUF_LEN(m_at);
  ------------------
  |  |  801|    340|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    340|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11771|    340|		}
11772|    297|		padding_len = cause_len % 4;
11773|    297|		if (padding_len != 0) {
  ------------------
  |  Branch (11773:7): [True: 196, False: 101]
  ------------------
11774|    196|			padding_len = 4 - padding_len;
11775|    196|		}
11776|    297|		if (padding_len != 0) {
  ------------------
  |  Branch (11776:7): [True: 196, False: 101]
  ------------------
11777|    196|			if (sctp_add_pad_tombuf(m_last, padding_len) == NULL) {
  ------------------
  |  Branch (11777:8): [True: 0, False: 196]
  ------------------
11778|      0|				sctp_m_freem(cause);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
11779|      0|				return;
11780|      0|			}
11781|    196|		}
11782|    554|	} else {
11783|    554|		padding_len = 0;
11784|    554|	}
11785|       |	/* Get an mbuf for the header. */
11786|    851|	len = sizeof(struct sctphdr) + sizeof(struct sctp_chunkhdr);
11787|    851|	switch (dst->sa_family) {
11788|      0|#ifdef INET
11789|      0|	case AF_INET:
  ------------------
  |  Branch (11789:2): [True: 0, False: 851]
  ------------------
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: 851]
  ------------------
11795|      0|		len += sizeof(struct ip6_hdr);
11796|      0|		break;
11797|      0|#endif
11798|    851|	default:
  ------------------
  |  Branch (11798:2): [True: 851, False: 0]
  ------------------
11799|    851|		break;
11800|    851|	}
11801|    851|#if defined(INET) || defined(INET6)
11802|    851|	if (port) {
  ------------------
  |  Branch (11802:6): [True: 0, False: 851]
  ------------------
11803|      0|		len += sizeof(struct udphdr);
11804|      0|	}
11805|    851|#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|    851|	mout = sctp_get_mbuf_for_msg(len + max_linkhdr, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    851|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	mout = sctp_get_mbuf_for_msg(len + max_linkhdr, 1, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    851|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
11814|    851|#endif
11815|    851|	if (mout == NULL) {
  ------------------
  |  Branch (11815:6): [True: 0, False: 851]
  ------------------
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|    851|	SCTP_BUF_RESV_UF(mout, max_linkhdr);
  ------------------
  |  |  804|    851|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    851|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11829|    851|#endif
11830|    851|	SCTP_BUF_LEN(mout) = len;
  ------------------
  |  |  801|    851|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    851|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
11831|    851|	SCTP_BUF_NEXT(mout) = cause;
  ------------------
  |  |  802|    851|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    851|#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|    851|#ifdef INET
11838|    851|	ip = NULL;
11839|    851|#endif
11840|    851|#ifdef INET6
11841|    851|	ip6 = NULL;
11842|    851|#endif
11843|    851|	switch (dst->sa_family) {
11844|      0|#ifdef INET
11845|      0|	case AF_INET:
  ------------------
  |  Branch (11845:2): [True: 0, False: 851]
  ------------------
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: 851]
  ------------------
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|    851|	default:
  ------------------
  |  Branch (11912:2): [True: 851, False: 0]
  ------------------
11913|    851|		len = 0;
11914|    851|		shout = mtod(mout, struct sctphdr *);
  ------------------
  |  |   96|    851|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    851|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
11915|    851|		break;
11916|    851|	}
11917|    851|#if defined(INET) || defined(INET6)
11918|    851|	if (port) {
  ------------------
  |  Branch (11918:6): [True: 0, False: 851]
  ------------------
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|    851|	} else {
11934|    851|		udp = NULL;
11935|    851|	}
11936|    851|#endif
11937|    851|	shout->src_port = sh->dest_port;
11938|    851|	shout->dest_port = sh->src_port;
11939|    851|	shout->checksum = 0;
11940|    851|	if (vtag) {
  ------------------
  |  Branch (11940:6): [True: 580, False: 271]
  ------------------
11941|    580|		shout->v_tag = htonl(vtag);
11942|    580|	} else {
11943|    271|		shout->v_tag = sh->v_tag;
11944|    271|	}
11945|    851|	len += sizeof(struct sctphdr);
11946|    851|	ch = (struct sctp_chunkhdr *)((caddr_t)shout + sizeof(struct sctphdr));
11947|    851|	ch->chunk_type = type;
11948|    851|	if (vtag) {
  ------------------
  |  Branch (11948:6): [True: 580, False: 271]
  ------------------
11949|    580|		ch->chunk_flags = 0;
11950|    580|	} else {
11951|    271|		ch->chunk_flags = SCTP_HAD_NO_TCB;
  ------------------
  |  |  493|    271|#define SCTP_HAD_NO_TCB		0x01
  ------------------
11952|    271|	}
11953|    851|	ch->chunk_length = htons((uint16_t)(sizeof(struct sctp_chunkhdr) + cause_len));
11954|    851|	len += sizeof(struct sctp_chunkhdr);
11955|    851|	len += cause_len + padding_len;
11956|       |
11957|    851|	if (SCTP_GET_HEADER_FOR_OUTPUT(o_pak)) {
  ------------------
  |  |  922|    851|#define SCTP_GET_HEADER_FOR_OUTPUT(o_pak) 0
  |  |  ------------------
  |  |  |  Branch (922:43): [Folded, False: 851]
  |  |  ------------------
  ------------------
11958|      0|		sctp_m_freem(mout);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
11959|      0|		return;
11960|      0|	}
11961|    851|	SCTP_ATTACH_CHAIN(o_pak, mout, len);
  ------------------
  |  |  931|    851|#define SCTP_ATTACH_CHAIN(pak, m, packet_length) do { \
  |  |  932|    851|                                                  pak = m; \
  |  |  933|    851|                                                  pak->m_pkthdr.len = packet_length; \
  |  |  ------------------
  |  |  |  |  224|    851|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  |  |  ------------------
  |  |  934|    851|                          } while(0)
  |  |  ------------------
  |  |  |  Branch (934:35): [Folded, False: 851]
  |  |  ------------------
  ------------------
11962|    851|	switch (dst->sa_family) {
11963|      0|#ifdef INET
11964|      0|	case AF_INET:
  ------------------
  |  Branch (11964:2): [True: 0, False: 851]
  ------------------
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: 851]
  ------------------
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|    851|	case AF_CONN:
  ------------------
  |  | 1014|    851|#define AF_CONN 123
  ------------------
  |  Branch (12070:2): [True: 851, False: 0]
  ------------------
12071|    851|	{
12072|    851|		char *buffer;
12073|    851|		struct sockaddr_conn *sconn;
12074|       |
12075|    851|		sconn = (struct sockaddr_conn *)src;
12076|    851|		if (SCTP_BASE_VAR(crc32c_offloaded) == 0) {
  ------------------
  |  |  591|    851|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (12076:7): [True: 0, False: 851]
  ------------------
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|    851|		} else {
12080|    851|			SCTP_STAT_INCR(sctps_sendhwcrc);
  ------------------
  |  | 1112|    851|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    851|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    851|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12081|    851|		}
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|    851|		if ((buffer = malloc(len)) != NULL) {
  ------------------
  |  Branch (12088:7): [True: 851, False: 0]
  ------------------
12089|    851|			m_copydata(o_pak, 0, len, buffer);
12090|    851|			ret = SCTP_BASE_VAR(conn_output)(sconn->sconn_addr, buffer, len, 0, 0);
  ------------------
  |  |  591|    851|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
12091|    851|			free(buffer);
12092|    851|		} else {
12093|      0|			ret = ENOMEM;
12094|      0|		}
12095|    851|		sctp_m_freem(o_pak);
  ------------------
  |  |   52|    851|#define sctp_m_freem m_freem
  ------------------
12096|    851|		break;
12097|      0|	}
12098|      0|#endif
12099|      0|	default:
  ------------------
  |  Branch (12099:2): [True: 0, False: 851]
  ------------------
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|    851|	}
12106|    851|	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|    851|	SCTP_STAT_INCR(sctps_sendpackets);
  ------------------
  |  | 1112|    851|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|    851|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    851|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12113|    851|	SCTP_STAT_INCR_COUNTER64(sctps_outpackets);
  ------------------
  |  | 1128|    851|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|    851|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    851|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    851|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12114|    851|	SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks);
  ------------------
  |  | 1128|    851|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|    851|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    851|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    851|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
12115|    851|	if (ret) {
  ------------------
  |  Branch (12115:6): [True: 0, False: 851]
  ------------------
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|    851|	return;
12119|    851|}
sctp_output.c:sctp_add_stream_reset_out:
12548|  8.40k|{
12549|  8.40k|	uint16_t len, old_len, i;
12550|  8.40k|	struct sctp_stream_reset_out_request *req_out;
12551|  8.40k|	struct sctp_chunkhdr *ch;
12552|  8.40k|	int at;
12553|  8.40k|	int number_entries=0;
12554|       |
12555|  8.40k|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  8.40k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  8.40k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12556|  8.40k|	old_len = len = SCTP_SIZE32(ntohs(ch->chunk_length));
  ------------------
  |  |  383|  8.40k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12557|       |	/* get to new offset for the param. */
12558|  8.40k|	req_out = (struct sctp_stream_reset_out_request *)((caddr_t)ch + len);
12559|       |	/* now how long will this param be? */
12560|  2.16M|	for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (12560:14): [True: 2.15M, False: 8.40k]
  ------------------
12561|  2.15M|		if ((stcb->asoc.strmout[i].state == SCTP_STREAM_RESET_PENDING) &&
  ------------------
  |  |  671|  2.15M|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
  |  Branch (12561:7): [True: 646k, False: 1.51M]
  ------------------
12562|   646k|		    (stcb->asoc.strmout[i].chunks_on_queues == 0) &&
  ------------------
  |  Branch (12562:7): [True: 644k, False: 2.40k]
  ------------------
12563|  2.15M|		    TAILQ_EMPTY(&stcb->asoc.strmout[i].outqueue)) {
  ------------------
  |  Branch (12563:7): [True: 643k, False: 1.05k]
  ------------------
12564|   643k|			number_entries++;
12565|   643k|		}
12566|  2.15M|	}
12567|  8.40k|	if (number_entries == 0) {
  ------------------
  |  Branch (12567:6): [True: 5.79k, False: 2.60k]
  ------------------
12568|  5.79k|		return (0);
12569|  5.79k|	}
12570|  2.60k|	if (number_entries == stcb->asoc.streamoutcnt) {
  ------------------
  |  Branch (12570:6): [True: 1.06k, False: 1.54k]
  ------------------
12571|  1.06k|		number_entries = 0;
12572|  1.06k|	}
12573|  2.60k|	if (number_entries > SCTP_MAX_STREAMS_AT_ONCE_RESET) {
  ------------------
  |  |  697|  2.60k|#define SCTP_MAX_STREAMS_AT_ONCE_RESET 200
  ------------------
  |  Branch (12573:6): [True: 1.44k, False: 1.16k]
  ------------------
12574|  1.44k|		number_entries = SCTP_MAX_STREAMS_AT_ONCE_RESET;
  ------------------
  |  |  697|  1.44k|#define SCTP_MAX_STREAMS_AT_ONCE_RESET 200
  ------------------
12575|  1.44k|	}
12576|  2.60k|	len = (uint16_t)(sizeof(struct sctp_stream_reset_out_request) + (sizeof(uint16_t) * number_entries));
12577|  2.60k|	req_out->ph.param_type = htons(SCTP_STR_RESET_OUT_REQUEST);
12578|  2.60k|	req_out->ph.param_length = htons(len);
12579|  2.60k|	req_out->request_seq = htonl(seq);
12580|  2.60k|	req_out->response_seq = htonl(resp_seq);
12581|  2.60k|	req_out->send_reset_at_tsn = htonl(last_sent);
12582|  2.60k|	at = 0;
12583|  2.60k|	if (number_entries) {
  ------------------
  |  Branch (12583:6): [True: 1.54k, False: 1.06k]
  ------------------
12584|   305k|		for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (12584:15): [True: 305k, False: 0]
  ------------------
12585|   305k|			if ((stcb->asoc.strmout[i].state == SCTP_STREAM_RESET_PENDING) &&
  ------------------
  |  |  671|   305k|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
  |  Branch (12585:8): [True: 291k, False: 14.6k]
  ------------------
12586|   291k|			    (stcb->asoc.strmout[i].chunks_on_queues == 0) &&
  ------------------
  |  Branch (12586:8): [True: 289k, False: 1.44k]
  ------------------
12587|   305k|			    TAILQ_EMPTY(&stcb->asoc.strmout[i].outqueue)) {
  ------------------
  |  Branch (12587:8): [True: 289k, False: 11]
  ------------------
12588|   289k|				req_out->list_of_streams[at] = htons(i);
12589|   289k|				at++;
12590|   289k|				stcb->asoc.strmout[i].state = SCTP_STREAM_RESET_IN_FLIGHT;
  ------------------
  |  |  672|   289k|#define SCTP_STREAM_RESET_IN_FLIGHT  0x04
  ------------------
12591|   289k|				if (at >= number_entries) {
  ------------------
  |  Branch (12591:9): [True: 1.54k, False: 288k]
  ------------------
12592|  1.54k|					break;
12593|  1.54k|				}
12594|   289k|			}
12595|   305k|		}
12596|  1.54k|	} else {
12597|   273k|		for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (12597:15): [True: 272k, False: 1.06k]
  ------------------
12598|   272k|			stcb->asoc.strmout[i].state = SCTP_STREAM_RESET_IN_FLIGHT;
  ------------------
  |  |  672|   272k|#define SCTP_STREAM_RESET_IN_FLIGHT  0x04
  ------------------
12599|   272k|		}
12600|  1.06k|	}
12601|  2.60k|	if (SCTP_SIZE32(len) > len) {
  ------------------
  |  |  383|  2.60k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (12601:6): [True: 39, False: 2.56k]
  ------------------
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|     39|		req_out->list_of_streams[number_entries] = 0;
12608|     39|	}
12609|       |	/* now fix the chunk length */
12610|  2.60k|	ch->chunk_length = htons(len + old_len);
12611|  2.60k|	chk->book_size = len + old_len;
12612|  2.60k|	chk->book_size_scale = 0;
12613|  2.60k|	chk->send_size = SCTP_SIZE32(chk->book_size);
  ------------------
  |  |  383|  2.60k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12614|  2.60k|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|  2.60k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.60k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12615|  2.60k|	return (1);
12616|  8.40k|}
sctp_output.c:sctp_add_an_out_stream:
12814|     52|{
12815|     52|	uint16_t len, old_len;
12816|     52|	struct sctp_chunkhdr *ch;
12817|     52|	struct sctp_stream_reset_add_strm *addstr;
12818|       |
12819|     52|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|     52|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|     52|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12820|     52|	old_len = len = SCTP_SIZE32(ntohs(ch->chunk_length));
  ------------------
  |  |  383|     52|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12821|       |
12822|       |	/* get to new offset for the param. */
12823|     52|	addstr = (struct sctp_stream_reset_add_strm *)((caddr_t)ch + len);
12824|       |	/* now how long will this param be? */
12825|     52|	len = sizeof(struct sctp_stream_reset_add_strm);
12826|       |
12827|       |	/* Fill it out. */
12828|     52|	addstr->ph.param_type = htons(SCTP_STR_RESET_ADD_OUT_STREAMS);
12829|     52|	addstr->ph.param_length = htons(len);
12830|     52|	addstr->request_seq = htonl(seq);
12831|     52|	addstr->number_of_streams = htons(adding);
12832|     52|	addstr->reserved = 0;
12833|       |
12834|       |	/* now fix the chunk length */
12835|     52|	ch->chunk_length = htons(len + old_len);
12836|     52|	chk->send_size = len + old_len;
12837|     52|	chk->book_size = SCTP_SIZE32(chk->send_size);
  ------------------
  |  |  383|     52|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12838|     52|	chk->book_size_scale = 0;
12839|     52|	SCTP_BUF_LEN(chk->data) = SCTP_SIZE32(chk->send_size);
  ------------------
  |  |  801|     52|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     52|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
              	SCTP_BUF_LEN(chk->data) = SCTP_SIZE32(chk->send_size);
  ------------------
  |  |  383|     52|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12840|     52|	return;
12841|     52|}
sctp_output.c:sctp_add_stream_reset_in:
12622|  2.48k|{
12623|  2.48k|	uint16_t len, old_len, i;
12624|  2.48k|	struct sctp_stream_reset_in_request *req_in;
12625|  2.48k|	struct sctp_chunkhdr *ch;
12626|       |
12627|  2.48k|	ch = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|  2.48k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.48k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
12628|  2.48k|	old_len = len = SCTP_SIZE32(ntohs(ch->chunk_length));
  ------------------
  |  |  383|  2.48k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12629|       |
12630|       |	/* get to new offset for the param. */
12631|  2.48k|	req_in = (struct sctp_stream_reset_in_request *)((caddr_t)ch + len);
12632|       |	/* now how long will this param be? */
12633|  2.48k|	len = (uint16_t)(sizeof(struct sctp_stream_reset_in_request) + (sizeof(uint16_t) * number_entries));
12634|  2.48k|	req_in->ph.param_type = htons(SCTP_STR_RESET_IN_REQUEST);
12635|  2.48k|	req_in->ph.param_length = htons(len);
12636|  2.48k|	req_in->request_seq = htonl(seq);
12637|  2.48k|	if (number_entries) {
  ------------------
  |  Branch (12637:6): [True: 0, False: 2.48k]
  ------------------
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.48k|	if (SCTP_SIZE32(len) > len) {
  ------------------
  |  |  383|  2.48k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
  |  Branch (12642:6): [True: 0, False: 2.48k]
  ------------------
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.48k|	ch->chunk_length = htons(len + old_len);
12652|  2.48k|	chk->book_size = len + old_len;
12653|  2.48k|	chk->book_size_scale = 0;
12654|  2.48k|	chk->send_size = SCTP_SIZE32(chk->book_size);
  ------------------
  |  |  383|  2.48k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
12655|  2.48k|	SCTP_BUF_LEN(chk->data) = chk->send_size;
  ------------------
  |  |  801|  2.48k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.48k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
12656|  2.48k|	return;
12657|  2.48k|}
sctp_output.c:sctp_copy_it_in:
13356|  5.96k|{
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.96k|	struct sctp_stream_queue_pending *sp;
13365|  5.96k|	int resv_in_first;
13366|       |
13367|  5.96k|	*error = 0;
13368|  5.96k|	sctp_alloc_a_strmoq(stcb, sp);
  ------------------
  |  |  134|  5.96k|#define sctp_alloc_a_strmoq(_stcb, _strmoq) { \
  |  |  135|  5.96k|	(_strmoq) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_strmoq), struct sctp_stream_queue_pending); \
  |  |  ------------------
  |  |  |  |  703|  5.96k|        (type *)malloc(zone);
  |  |  ------------------
  |  |  136|  5.96k|	if ((_strmoq)) { \
  |  |  ------------------
  |  |  |  Branch (136:6): [True: 5.96k, False: 0]
  |  |  ------------------
  |  |  137|  5.96k|		memset(_strmoq, 0, sizeof(struct sctp_stream_queue_pending)); \
  |  |  138|  5.96k|		SCTP_INCR_STRMOQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  688|  5.96k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_strmoq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  5.96k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  139|  5.96k|		(_strmoq)->holds_key_ref = 0; \
  |  |  140|  5.96k|	} \
  |  |  141|  5.96k|}
  ------------------
13369|  5.96k|	if (sp == NULL) {
  ------------------
  |  Branch (13369:6): [True: 0, False: 5.96k]
  ------------------
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.96k|	sp->act_flags = 0;
13375|  5.96k|	sp->sender_all_done = 0;
13376|  5.96k|	sp->sinfo_flags = srcv->sinfo_flags;
13377|  5.96k|	sp->timetolive = srcv->sinfo_timetolive;
13378|  5.96k|	sp->ppid = srcv->sinfo_ppid;
13379|  5.96k|	sp->context = srcv->sinfo_context;
13380|  5.96k|	sp->fsn = 0;
13381|  5.96k|	(void)SCTP_GETTIME_TIMEVAL(&sp->ts);
  ------------------
  |  |  991|  5.96k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
13382|  5.96k|	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.96k|	sp->length = (uint32_t)min(uio->uio_resid, max_send_len);
  ------------------
  |  |   66|  5.96k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 5.96k]
  |  |  ------------------
  ------------------
13391|  5.96k|#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.96k|	if ((sp->length == (uint32_t)uio->uio_resid) &&
  ------------------
  |  Branch (13399:6): [True: 5.96k, False: 0]
  ------------------
13400|  5.96k|#endif
13401|  5.96k|	    ((user_marks_eor == 0) ||
  ------------------
  |  Branch (13401:7): [True: 5.96k, 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.96k|	     (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.96k|		sp->msg_is_complete = 1;
13405|  5.96k|	} else {
13406|      0|		sp->msg_is_complete = 0;
13407|      0|	}
13408|  5.96k|	sp->sender_all_done = 0;
13409|  5.96k|	sp->some_taken = 0;
13410|  5.96k|	sp->put_last_out = 0;
13411|  5.96k|	resv_in_first = SCTP_DATA_CHUNK_OVERHEAD(stcb);
  ------------------
  |  |  134|  5.96k|#define SCTP_DATA_CHUNK_OVERHEAD(stcb) ((stcb)->asoc.idata_supported ? \
  |  |  ------------------
  |  |  |  Branch (134:41): [True: 4.94k, False: 1.02k]
  |  |  ------------------
  |  |  135|  5.96k|                                        sizeof(struct sctp_idata_chunk) : \
  |  |  136|  5.96k|                                        sizeof(struct sctp_data_chunk))
  ------------------
13412|  5.96k|	sp->data = sp->tail_mbuf = NULL;
13413|  5.96k|	if (sp->length == 0) {
  ------------------
  |  Branch (13413:6): [True: 0, False: 5.96k]
  ------------------
13414|      0|		goto skip_copy;
13415|      0|	}
13416|  5.96k|	if (srcv->sinfo_keynumber_valid) {
  ------------------
  |  Branch (13416:6): [True: 0, False: 5.96k]
  ------------------
13417|      0|		sp->auth_keyid = srcv->sinfo_keynumber;
13418|  5.96k|	} else {
13419|  5.96k|		sp->auth_keyid = stcb->asoc.authinfo.active_keyid;
13420|  5.96k|	}
13421|  5.96k|	if (sctp_auth_is_required_chunk(SCTP_DATA, stcb->asoc.peer_auth_chunks)) {
  ------------------
  |  |  100|  5.96k|#define sctp_auth_is_required_chunk(chunk, list) ((list == NULL) ? (0) : (list->chunks[chunk] != 0))
  |  |  ------------------
  |  |  |  Branch (100:50): [True: 0, False: 5.96k]
  |  |  |  Branch (100:51): [True: 1.47k, False: 4.49k]
  |  |  ------------------
  ------------------
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.96k|	*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.96k| skip_copy:
13433|  5.96k|	if (*error) {
  ------------------
  |  Branch (13433:6): [True: 0, False: 5.96k]
  ------------------
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.96k|	} else {
13443|  5.96k|		if (sp->sinfo_flags & SCTP_ADDR_OVER) {
  ------------------
  |  |  260|  5.96k|#define SCTP_ADDR_OVER        0x0800 /* Override the primary-address */
  ------------------
  |  Branch (13443:7): [True: 0, False: 5.96k]
  ------------------
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.96k|		} else {
13447|  5.96k|			sp->net = NULL;
13448|  5.96k|		}
13449|  5.96k|		sctp_set_prsctp_policy(sp);
13450|  5.96k|	}
13451|  5.96k|out_now:
13452|  5.96k|	return (sp);
13453|  5.96k|}
sctp_output.c:sctp_copy_one:
13281|  5.96k|{
13282|  5.96k|#if defined(__FreeBSD__) || defined(__Userspace__)
13283|  5.96k|	sp->data = m_uiotombuf(uio, M_WAITOK, sp->length, resv_upfront, 0);
  ------------------
  |  |   61|  5.96k|#define	M_WAITOK	0x0002		/* ok to block */
  ------------------
13284|  5.96k|	if (sp->data == NULL) {
  ------------------
  |  Branch (13284:6): [True: 0, False: 5.96k]
  ------------------
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.96k|	sp->tail_mbuf = m_last(sp->data);
13290|  5.96k|	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.96k|}
sctp_output.c:sctp_set_prsctp_policy:
 6913|  5.96k|{
 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.96k|	if (PR_SCTP_ENABLED(sp->sinfo_flags)) {
  ------------------
  |  |  281|  5.96k|#define PR_SCTP_ENABLED(x)        ((PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE) && \
  |  |  ------------------
  |  |  |  |  280|  5.96k|#define PR_SCTP_POLICY(x)         ((x) & 0x0f)
  |  |  ------------------
  |  |               #define PR_SCTP_ENABLED(x)        ((PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE) && \
  |  |  ------------------
  |  |  |  |  272|  5.96k|#define SCTP_PR_SCTP_NONE 0x0000 /* Reliable transfer */
  |  |  ------------------
  |  |  |  Branch (281:36): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  282|  5.96k|                                   (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.96k|	} else if (sp->timetolive > 0) {
  ------------------
  |  Branch (6921:13): [True: 0, False: 5.96k]
  ------------------
 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.96k|	} else {
 6925|  5.96k|		return;
 6926|  5.96k|	}
 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|   201k|{
 7084|   201k|	struct mbuf *m;
 7085|   201k|	struct mbuf *appendchain;
 7086|   201k|	caddr_t cp;
 7087|   201k|	int len;
 7088|       |
 7089|   201k|	if (endofchain == NULL) {
  ------------------
  |  Branch (7089:6): [True: 0, False: 201k]
  ------------------
 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|   201k|	if (can_take_mbuf) {
  ------------------
  |  Branch (7096:6): [True: 55.5k, False: 145k]
  ------------------
 7097|  55.5k|		appendchain = clonechain;
 7098|   145k|	} else {
 7099|   145k|		if (!copy_by_ref &&
  ------------------
  |  Branch (7099:7): [True: 145k, False: 0]
  ------------------
 7100|   145k|		    (sizeofcpy <= (int)((((SCTP_BASE_SYSCTL(sctp_mbuf_threshold_count) - 1) * MLEN) + MHLEN)))) {
  ------------------
  |  |  590|   145k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		    (sizeofcpy <= (int)((((SCTP_BASE_SYSCTL(sctp_mbuf_threshold_count) - 1) * MLEN) + MHLEN)))) {
  ------------------
  |  |  138|   145k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|   145k|#define MSIZE 256
  |  |  ------------------
  ------------------
              		    (sizeofcpy <= (int)((((SCTP_BASE_SYSCTL(sctp_mbuf_threshold_count) - 1) * MLEN) + MHLEN)))) {
  ------------------
  |  |  139|   145k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  ------------------
  |  |  |  |  138|   145k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|   145k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (7100:7): [True: 145k, False: 53]
  ------------------
 7101|       |			/* Its not in a cluster */
 7102|   145k|			if (*endofchain == NULL) {
  ------------------
  |  Branch (7102:8): [True: 17.7k, False: 127k]
  ------------------
 7103|       |				/* lets get a mbuf cluster */
 7104|  17.7k|				if (outchain == NULL) {
  ------------------
  |  Branch (7104:9): [True: 17.7k, False: 0]
  ------------------
 7105|       |					/* This is the general case */
 7106|  17.7k|				new_mbuf:
 7107|  17.7k|					outchain = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   51|  17.7k|#define MCLBYTES 2048
  ------------------
              					outchain = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|  17.7k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              					outchain = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|  17.7k|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|  17.7k|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
 7108|  17.7k|					if (outchain == NULL) {
  ------------------
  |  Branch (7108:10): [True: 0, False: 17.7k]
  ------------------
 7109|      0|						goto error_out;
 7110|      0|					}
 7111|  17.7k|					SCTP_BUF_LEN(outchain) = 0;
  ------------------
  |  |  801|  17.7k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  17.7k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 7112|  17.7k|					*endofchain = outchain;
 7113|       |					/* get the prepend space */
 7114|  17.7k|					SCTP_BUF_RESV_UF(outchain, (SCTP_FIRST_MBUF_RESV+4));
  ------------------
  |  |  804|  17.7k|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|  17.7k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 7115|  17.7k|				} 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|  17.7k|				len = (int)M_TRAILINGSPACE(*endofchain);
  ------------------
  |  |  355|  17.7k|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|  17.7k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|  17.7k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (355:3): [True: 17.7k, False: 0]
  |  |  ------------------
  |  |  356|  17.7k|	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  326|  17.7k|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  17.7k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|  17.7k|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 17.7k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|  17.7k|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  17.7k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|  17.7k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 17.7k]
  |  |  |  |  ------------------
  |  |  |  |  328|  17.7k|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|  17.7k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 17.7k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|  17.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|  17.7k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |  357|  17.7k|		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  219|  17.7k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  218|  17.7k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  |  |  358|  17.7k|	    &(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|   127k|			} else {
 7136|       |				/* how much is left at the end? */
 7137|   127k|				len = (int)M_TRAILINGSPACE(*endofchain);
  ------------------
  |  |  355|   127k|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|   127k|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|   127k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (355:3): [True: 108k, False: 19.2k]
  |  |  ------------------
  |  |  356|   127k|	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  326|   108k|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|   108k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|   108k|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 108k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|   108k|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|   108k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|   108k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 108k]
  |  |  |  |  ------------------
  |  |  |  |  328|   108k|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|   108k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 105k, False: 2.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|   105k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|   105k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |  357|   105k|		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  219|   105k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  218|   105k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  |  |  358|   127k|	    &(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|   127k|			}
 7139|       |			/* Find the end of the data, for appending */
 7140|   145k|			cp = (mtod((*endofchain), caddr_t) + SCTP_BUF_LEN((*endofchain)));
  ------------------
  |  |   96|   145k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|   145k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
              			cp = (mtod((*endofchain), caddr_t) + SCTP_BUF_LEN((*endofchain)));
  ------------------
  |  |  801|   145k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   145k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 7141|       |
 7142|       |			/* Now lets copy it out */
 7143|   145k|			if (len >= sizeofcpy) {
  ------------------
  |  Branch (7143:8): [True: 141k, False: 3.41k]
  ------------------
 7144|       |				/* It all fits, copy it in */
 7145|   141k|				m_copydata(clonechain, 0, sizeofcpy, cp);
 7146|   141k|				SCTP_BUF_LEN((*endofchain)) += sizeofcpy;
  ------------------
  |  |  801|   141k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   141k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 7147|   141k|			} else {
 7148|       |				/* fill up the end of the chain */
 7149|  3.41k|				if (len > 0) {
  ------------------
  |  Branch (7149:9): [True: 966, False: 2.45k]
  ------------------
 7150|    966|					m_copydata(clonechain, 0, len, cp);
 7151|    966|					SCTP_BUF_LEN((*endofchain)) += len;
  ------------------
  |  |  801|    966|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    966|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 7152|       |					/* now we need another one */
 7153|    966|					sizeofcpy -= len;
 7154|    966|				}
 7155|  3.41k|				m = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   51|  3.41k|#define MCLBYTES 2048
  ------------------
              				m = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |   60|  3.41k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              				m = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_HEADER);
  ------------------
  |  |  288|  3.41k|#define	MT_HEADER	MT_DATA	/* packet header, use M_PKTHDR instead */
  |  |  ------------------
  |  |  |  |  287|  3.41k|#define	MT_DATA		1	/* dynamic (data) allocation */
  |  |  ------------------
  ------------------
 7156|  3.41k|				if (m == NULL) {
  ------------------
  |  Branch (7156:9): [True: 0, False: 3.41k]
  ------------------
 7157|       |					/* We failed */
 7158|      0|					goto error_out;
 7159|      0|				}
 7160|  3.41k|				SCTP_BUF_NEXT((*endofchain)) = m;
  ------------------
  |  |  802|  3.41k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  3.41k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 7161|  3.41k|				*endofchain = m;
 7162|  3.41k|				cp = mtod((*endofchain), caddr_t);
  ------------------
  |  |   96|  3.41k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  3.41k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 7163|  3.41k|				m_copydata(clonechain, len, sizeofcpy, cp);
 7164|  3.41k|				SCTP_BUF_LEN((*endofchain)) += sizeofcpy;
  ------------------
  |  |  801|  3.41k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  3.41k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 7165|  3.41k|			}
 7166|   145k|			return (outchain);
 7167|   145k|		} else {
 7168|       |			/* copy the old fashion way */
 7169|     53|			appendchain = SCTP_M_COPYM(clonechain, 0, M_COPYALL, M_NOWAIT);
  ------------------
  |  |  770|     53|#define SCTP_M_COPYM	m_copym
  ------------------
              			appendchain = SCTP_M_COPYM(clonechain, 0, M_COPYALL, M_NOWAIT);
  ------------------
  |  |   75|     53|#define	M_COPYALL	1000000000
  ------------------
              			appendchain = SCTP_M_COPYM(clonechain, 0, M_COPYALL, M_NOWAIT);
  ------------------
  |  |   60|     53|#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|     53|		}
 7176|   145k|	}
 7177|  55.6k|	if (appendchain == NULL) {
  ------------------
  |  Branch (7177:6): [True: 0, False: 55.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|  55.6k|	if (outchain) {
  ------------------
  |  Branch (7183:6): [True: 45.8k, False: 9.79k]
  ------------------
 7184|       |		/* tack on to the end */
 7185|  45.8k|		if (*endofchain != NULL) {
  ------------------
  |  Branch (7185:7): [True: 45.8k, False: 0]
  ------------------
 7186|  45.8k|			SCTP_BUF_NEXT(((*endofchain))) = appendchain;
  ------------------
  |  |  802|  45.8k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  45.8k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 7187|  45.8k|		} 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|  45.8k|		m = appendchain;
 7202|  63.3k|		while (m) {
  ------------------
  |  Branch (7202:10): [True: 63.3k, False: 0]
  ------------------
 7203|  63.3k|			if (SCTP_BUF_NEXT(m) == NULL) {
  ------------------
  |  |  802|  63.3k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  63.3k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (7203:8): [True: 45.8k, False: 17.5k]
  ------------------
 7204|  45.8k|				*endofchain = m;
 7205|  45.8k|				break;
 7206|  45.8k|			}
 7207|  17.5k|			m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|  17.5k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  17.5k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 7208|  17.5k|		}
 7209|  45.8k|		return (outchain);
 7210|  45.8k|	} else {
 7211|       |		/* save off the end and update the end-chain position */
 7212|  9.79k|		m = appendchain;
 7213|  10.1k|		while (m) {
  ------------------
  |  Branch (7213:10): [True: 10.1k, False: 0]
  ------------------
 7214|  10.1k|			if (SCTP_BUF_NEXT(m) == NULL) {
  ------------------
  |  |  802|  10.1k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  10.1k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (7214:8): [True: 9.79k, False: 392]
  ------------------
 7215|  9.79k|				*endofchain = m;
 7216|  9.79k|				break;
 7217|  9.79k|			}
 7218|    392|			m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|    392|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    392|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 7219|    392|		}
 7220|  9.79k|		return (appendchain);
 7221|  9.79k|	}
 7222|  55.6k|}

SCTP6_ARE_ADDR_EQUAL:
   83|  39.6k|{
   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.6k|#endif /* SCTP_EMBEDDED_V6_SCOPE */
  133|  39.6k|}
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.44k|{
  251|  3.44k|	struct sctp_ifn *sctp_ifnp;
  252|  3.44k|	struct sctp_ifnlist *hash_ifn_head;
  253|       |
  254|  3.44k|	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.44k|	hash_ifn_head = &SCTP_BASE_INFO(vrf_ifn_hash)[(ifn_index & SCTP_BASE_INFO(vrf_ifn_hashmark))];
  ------------------
  |  |  587|  3.44k|#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.44k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
  259|  10.3k|	LIST_FOREACH(sctp_ifnp, hash_ifn_head, next_bucket) {
  ------------------
  |  Branch (259:2): [True: 10.3k, False: 3]
  ------------------
  260|  10.3k|		if (sctp_ifnp->ifn_index == ifn_index &&
  ------------------
  |  Branch (260:7): [True: 3.44k, False: 6.88k]
  ------------------
  261|  3.44k|		    sctp_ifnp->ifn_p == ifn) {
  ------------------
  |  Branch (261:7): [True: 3.44k, False: 0]
  ------------------
  262|  3.44k|			break;
  263|  3.44k|		}
  264|  10.3k|	}
  265|  3.44k|	return (sctp_ifnp);
  266|  3.44k|}
sctp_find_vrf:
  270|   121k|{
  271|   121k|	struct sctp_vrflist *bucket;
  272|   121k|	struct sctp_vrf *liste;
  273|       |
  274|   121k|	bucket = &SCTP_BASE_INFO(sctp_vrfhash)[(vrf_id & SCTP_BASE_INFO(hashvrfmark))];
  ------------------
  |  |  587|   121k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	bucket = &SCTP_BASE_INFO(sctp_vrfhash)[(vrf_id & SCTP_BASE_INFO(hashvrfmark))];
  ------------------
  |  |  587|   121k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
  275|   121k|	LIST_FOREACH(liste, bucket, next_vrf) {
  ------------------
  |  Branch (275:2): [True: 121k, False: 1]
  ------------------
  276|   121k|		if (vrf_id == liste->vrf_id) {
  ------------------
  |  Branch (276:7): [True: 121k, False: 0]
  ------------------
  277|   121k|			return (liste);
  278|   121k|		}
  279|   121k|	}
  280|      1|	return (NULL);
  281|   121k|}
sctp_free_ifa:
  313|  11.1k|{
  314|  11.1k|	if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&sctp_ifap->refcount)) {
  ------------------
  |  |  115|  11.1k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  ------------------
  |  |  |  |  103|  11.1k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  ------------------
  |  |  |  Branch (115:49): [True: 0, False: 11.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|  11.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|  20.0k|{
 1321|  20.0k|	struct sctpasochead *head;
 1322|  20.0k|	struct sctp_inpcb *inp;
 1323|  20.0k|	struct sctp_tcb *stcb = NULL;
 1324|  20.0k|	struct sctp_nets *net;
 1325|  20.0k|	uint16_t rport;
 1326|       |
 1327|  20.0k|	inp = *inp_p;
 1328|  20.0k|	switch (remote->sa_family) {
 1329|      0|#ifdef INET
 1330|      0|	case AF_INET:
  ------------------
  |  Branch (1330:2): [True: 0, False: 20.0k]
  ------------------
 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: 20.0k]
  ------------------
 1336|      0|		rport = (((struct sockaddr_in6 *)remote)->sin6_port);
 1337|      0|		break;
 1338|      0|#endif
 1339|      0|#if defined(__Userspace__)
 1340|  20.0k|	case AF_CONN:
  ------------------
  |  | 1014|  20.0k|#define AF_CONN 123
  ------------------
  |  Branch (1340:2): [True: 20.0k, False: 0]
  ------------------
 1341|  20.0k|		rport = (((struct sockaddr_conn *)remote)->sconn_port);
 1342|  20.0k|		break;
 1343|      0|#endif
 1344|      0|	default:
  ------------------
  |  Branch (1344:2): [True: 0, False: 20.0k]
  ------------------
 1345|      0|		return (NULL);
 1346|  20.0k|	}
 1347|  20.0k|	if (locked_tcb) {
  ------------------
  |  Branch (1347:6): [True: 8.92k, False: 11.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.92k|		atomic_add_int(&locked_tcb->asoc.refcnt, 1);
  ------------------
  |  |   94|  8.92k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 1353|  8.92k|		SCTP_TCB_UNLOCK(locked_tcb);
  ------------------
  |  |  469|  8.92k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  8.92k|	do {                         \
  |  |  |  |  113|  8.92k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 8.92k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.92k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 8.92k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1354|  8.92k|	}
 1355|  20.0k|	SCTP_INP_INFO_RLOCK();
  ------------------
  |  |  295|  20.0k|	KASSERT(pthread_rwlock_rdlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  20.0k|	do {                         \
  |  |  |  |  113|  20.0k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 20.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|  20.0k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 20.0k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1356|  20.0k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|  20.0k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (1356:6): [True: 20.0k, False: 0]
  ------------------
 1357|  20.0k|	    (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|  20.0k|		if ((inp->sctp_socket) && SCTP_IS_LISTENING(inp)) {
  ------------------
  |  | 1152|  20.0k|#define SCTP_IS_LISTENING(inp) ((inp->sctp_flags & SCTP_PCB_FLAGS_ACCEPTING) != 0)
  |  |  ------------------
  |  |  |  |  531|  20.0k|#define SCTP_PCB_FLAGS_ACCEPTING	0x00000008
  |  |  ------------------
  |  |  |  Branch (1152:32): [True: 0, False: 20.0k]
  |  |  ------------------
  ------------------
  |  Branch (1365:7): [True: 20.0k, 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|  20.0k|		} else {
 1407|  20.0k|			SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  20.0k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  20.0k|	do {                         \
  |  |  |  |  113|  20.0k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 20.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|  20.0k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 20.0k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1408|  20.0k|			if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) {
  ------------------
  |  |  547|  20.0k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (1408:8): [True: 0, False: 20.0k]
  ------------------
 1409|      0|				goto null_return;
 1410|      0|			}
 1411|  20.0k|			stcb = LIST_FIRST(&inp->sctp_asoc_list);
 1412|  20.0k|			if (stcb == NULL) {
  ------------------
  |  Branch (1412:8): [True: 11.1k, False: 8.92k]
  ------------------
 1413|  11.1k|				goto null_return;
 1414|  11.1k|			}
 1415|  8.92k|			SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  8.92k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  8.92k|	do {                         \
  |  |  |  |  113|  8.92k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 8.92k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.92k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 8.92k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1416|       |
 1417|  8.92k|			if (stcb->rport != rport) {
  ------------------
  |  Branch (1417:8): [True: 0, False: 8.92k]
  ------------------
 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.92k|			if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|  8.92k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (1422:8): [True: 0, False: 8.92k]
  ------------------
 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.92k|			if (local && !sctp_does_stcb_own_this_addr(stcb, local)) {
  ------------------
  |  Branch (1426:8): [True: 8.92k, False: 0]
  |  Branch (1426:17): [True: 0, False: 8.92k]
  ------------------
 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.92k|			TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (1431:4): [True: 8.92k, False: 0]
  ------------------
 1432|  8.92k|#ifdef INVARIANTS
 1433|  8.92k|				if (net == (TAILQ_NEXT(net, sctp_next))) {
  ------------------
  |  Branch (1433:9): [True: 0, False: 8.92k]
  ------------------
 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.92k|#endif
 1437|  8.92k|				if (net->ro._l_addr.sa.sa_family !=
  ------------------
  |  Branch (1437:9): [True: 0, False: 8.92k]
  ------------------
 1438|  8.92k|				    remote->sa_family) {
 1439|       |					/* not the same family */
 1440|      0|					continue;
 1441|      0|				}
 1442|  8.92k|				switch (remote->sa_family) {
 1443|      0|#ifdef INET
 1444|      0|				case AF_INET:
  ------------------
  |  Branch (1444:5): [True: 0, False: 8.92k]
  ------------------
 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.92k]
  ------------------
 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.92k|				case AF_CONN:
  ------------------
  |  | 1014|  8.92k|#define AF_CONN 123
  ------------------
  |  Branch (1502:5): [True: 8.92k, False: 0]
  ------------------
 1503|  8.92k|				{
 1504|  8.92k|					struct sockaddr_conn *sconn, *rsconn;
 1505|       |
 1506|  8.92k|					sconn = (struct sockaddr_conn *)&net->ro._l_addr;
 1507|  8.92k|					rsconn = (struct sockaddr_conn *)remote;
 1508|  8.92k|					if (sconn->sconn_addr == rsconn->sconn_addr) {
  ------------------
  |  Branch (1508:10): [True: 8.92k, False: 0]
  ------------------
 1509|       |						/* found it */
 1510|  8.92k|						if (netp != NULL) {
  ------------------
  |  Branch (1510:11): [True: 8.92k, False: 0]
  ------------------
 1511|  8.92k|							*netp = net;
 1512|  8.92k|						}
 1513|  8.92k|						if (locked_tcb == NULL) {
  ------------------
  |  Branch (1513:11): [True: 0, False: 8.92k]
  ------------------
 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.92k|						} else if (locked_tcb != stcb) {
  ------------------
  |  Branch (1515:18): [True: 0, False: 8.92k]
  ------------------
 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.92k|						if (locked_tcb) {
  ------------------
  |  Branch (1518:11): [True: 8.92k, False: 0]
  ------------------
 1519|  8.92k|							atomic_subtract_int(&locked_tcb->asoc.refcnt, 1);
  ------------------
  |  |   97|  8.92k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 1520|  8.92k|						}
 1521|  8.92k|						SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  8.92k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  8.92k|	do {                         \
  |  |  |  |  113|  8.92k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 8.92k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.92k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 8.92k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1522|  8.92k|						SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|  8.92k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  8.92k|	do {                         \
  |  |  |  |  113|  8.92k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 8.92k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.92k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 8.92k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1523|  8.92k|						return (stcb);
 1524|  8.92k|					}
 1525|      0|					break;
 1526|  8.92k|				}
 1527|      0|#endif
 1528|      0|				default:
  ------------------
  |  Branch (1528:5): [True: 0, False: 8.92k]
  ------------------
 1529|       |					/* TSNH */
 1530|      0|					break;
 1531|  8.92k|				}
 1532|  8.92k|			}
 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|  20.0k|	} 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|  11.1k|null_return:
 1663|       |	/* clean up for returning null */
 1664|  11.1k|	if (locked_tcb) {
  ------------------
  |  Branch (1664:6): [True: 0, False: 11.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|  11.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1669|  11.1k|	SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|  11.1k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1670|       |	/* not found */
 1671|  11.1k|	return (NULL);
 1672|  11.1k|}
sctp_findasoc_ep_asocid_locked:
 1680|  11.1k|{
 1681|       |	/*
 1682|       |	 * Use my the assoc_id to find a endpoint
 1683|       |	 */
 1684|  11.1k|	struct sctpasochead *head;
 1685|  11.1k|	struct sctp_tcb *stcb;
 1686|  11.1k|	uint32_t id;
 1687|       |
 1688|  11.1k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) {
  ------------------
  |  |  547|  11.1k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (1688:6): [True: 0, False: 11.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|  11.1k|	id = (uint32_t)asoc_id;
 1693|  11.1k|	head = &inp->sctp_asocidhash[SCTP_PCBHASH_ASOC(id, inp->hashasocidmark)];
  ------------------
  |  |   57|  11.1k|#define SCTP_PCBHASH_ASOC(tag, mask) (tag & mask)
  ------------------
 1694|  11.1k|	if (head == NULL) {
  ------------------
  |  Branch (1694:6): [True: 0, False: 11.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|  11.1k|	LIST_FOREACH(stcb, head, sctp_tcbasocidhash) {
  ------------------
  |  Branch (1699:2): [True: 0, False: 11.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|  11.1k|	return (NULL);
 1719|  11.1k|}
sctp_pcb_findep:
 2092|  11.1k|{
 2093|       |	/*
 2094|       |	 * First we check the hash table to see if someone has this port
 2095|       |	 * bound with just the port.
 2096|       |	 */
 2097|  11.1k|	struct sctp_inpcb *inp;
 2098|  11.1k|	struct sctppcbhead *head;
 2099|  11.1k|	int lport;
 2100|  11.1k|	unsigned int i;
 2101|  11.1k|#ifdef INET
 2102|  11.1k|	struct sockaddr_in *sin;
 2103|  11.1k|#endif
 2104|  11.1k|#ifdef INET6
 2105|  11.1k|	struct sockaddr_in6 *sin6;
 2106|  11.1k|#endif
 2107|  11.1k|#if defined(__Userspace__)
 2108|  11.1k|	struct sockaddr_conn *sconn;
 2109|  11.1k|#endif
 2110|       |
 2111|  11.1k|	switch (nam->sa_family) {
 2112|      0|#ifdef INET
 2113|      0|	case AF_INET:
  ------------------
  |  Branch (2113:2): [True: 0, False: 11.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: 11.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|  11.1k|	case AF_CONN:
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (2125:2): [True: 11.1k, False: 0]
  ------------------
 2126|  11.1k|		sconn = (struct sockaddr_conn *)nam;
 2127|  11.1k|		lport = sconn->sconn_port;
 2128|  11.1k|		break;
 2129|      0|#endif
 2130|      0|	default:
  ------------------
  |  Branch (2130:2): [True: 0, False: 11.1k]
  ------------------
 2131|      0|		return (NULL);
 2132|  11.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|  11.1k|	if (have_lock == 0) {
  ------------------
  |  Branch (2139:6): [True: 0, False: 11.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|  11.1k|	head = &SCTP_BASE_INFO(sctp_ephash)[SCTP_PCBHASH_ALLADDR(lport,
  ------------------
  |  |  587|  11.1k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	head = &SCTP_BASE_INFO(sctp_ephash)[SCTP_PCBHASH_ALLADDR(lport,
  ------------------
  |  |   56|  11.1k|#define SCTP_PCBHASH_ALLADDR(port, mask) (port & mask)
  ------------------
 2143|  11.1k|	    SCTP_BASE_INFO(hashmark))];
 2144|  11.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|  11.1k|	if (inp == NULL && find_tcp_pool) {
  ------------------
  |  Branch (2156:6): [True: 11.1k, False: 0]
  |  Branch (2156:21): [True: 0, False: 11.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|  11.1k|	if (inp) {
  ------------------
  |  Branch (2165:6): [True: 0, False: 11.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|  11.1k|	if (have_lock == 0) {
  ------------------
  |  Branch (2168:6): [True: 0, False: 11.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|  11.1k|	return (inp);
 2172|  11.1k|}
sctp_findassociation_addr:
 2442|  26.3k|{
 2443|  26.3k|	struct sctp_tcb *stcb;
 2444|  26.3k|	struct sctp_inpcb *inp;
 2445|       |
 2446|  26.3k|	if (sh->v_tag) {
  ------------------
  |  Branch (2446:6): [True: 26.3k, False: 0]
  ------------------
 2447|       |		/* we only go down this path if vtag is non-zero */
 2448|  26.3k|		stcb = sctp_findassoc_by_vtag(src, dst, ntohl(sh->v_tag),
 2449|  26.3k|		                              inp_p, netp, sh->src_port, sh->dest_port, 0, vrf_id, 0);
 2450|  26.3k|		if (stcb) {
  ------------------
  |  Branch (2450:7): [True: 26.3k, False: 0]
  ------------------
 2451|  26.3k|			return (stcb);
 2452|  26.3k|		}
 2453|  26.3k|	}
 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|  11.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|  11.1k|	int i, error;
 2619|  11.1k|	struct sctp_inpcb *inp;
 2620|  11.1k|	struct sctp_pcb *m;
 2621|  11.1k|	struct timeval time;
 2622|  11.1k|	sctp_sharedkey_t *null_key;
 2623|       |
 2624|  11.1k|	error = 0;
 2625|       |
 2626|  11.1k|	SCTP_INP_INFO_WLOCK();
  ------------------
  |  |  297|  11.1k|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2627|  11.1k|	inp = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_ep), struct sctp_inpcb);
  ------------------
  |  |  703|  11.1k|        (type *)malloc(zone);
  ------------------
 2628|  11.1k|	if (inp == NULL) {
  ------------------
  |  Branch (2628:6): [True: 0, False: 11.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|  11.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|  11.1k|	inp->sctp_socket = so;
 2643|  11.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|  11.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|  11.1k|#endif
 2659|  11.1k|	inp->sctp_associd_counter = 1;
 2660|  11.1k|	inp->partial_delivery_point = SCTP_SB_LIMIT_RCV(so) >> SCTP_PARTIAL_DELIVERY_SHIFT;
  ------------------
  |  |  983|  11.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|  11.1k|#define SCTP_PARTIAL_DELIVERY_SHIFT 1
  ------------------
 2661|  11.1k|	inp->sctp_frag_point = 0;
 2662|  11.1k|	inp->max_cwnd = 0;
 2663|  11.1k|	inp->sctp_cmt_on_off = SCTP_BASE_SYSCTL(sctp_cmt_on_off);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2664|  11.1k|	inp->ecn_supported = (uint8_t)SCTP_BASE_SYSCTL(sctp_ecn_enable);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2665|  11.1k|	inp->prsctp_supported = (uint8_t)SCTP_BASE_SYSCTL(sctp_pr_enable);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2666|  11.1k|	inp->auth_supported = (uint8_t)SCTP_BASE_SYSCTL(sctp_auth_enable);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2667|  11.1k|	inp->asconf_supported = (uint8_t)SCTP_BASE_SYSCTL(sctp_asconf_enable);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2668|  11.1k|	inp->reconfig_supported = (uint8_t)SCTP_BASE_SYSCTL(sctp_reconfig_enable);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2669|  11.1k|	inp->nrsack_supported = (uint8_t)SCTP_BASE_SYSCTL(sctp_nrsack_enable);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2670|  11.1k|	inp->pktdrop_supported = (uint8_t)SCTP_BASE_SYSCTL(sctp_pktdrop_enable);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2671|  11.1k|	inp->idata_supported = 0;
 2672|  11.1k|	inp->rcv_edmid = SCTP_EDMID_NONE;
  ------------------
  |  |  809|  11.1k|#define SCTP_EDMID_NONE             0
  ------------------
 2673|       |
 2674|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2675|       |	inp->fibnum = so->so_fibnum;
 2676|       |#else
 2677|  11.1k|	inp->fibnum = 0;
 2678|  11.1k|#endif
 2679|  11.1k|#if defined(__Userspace__)
 2680|  11.1k|	inp->ulp_info = NULL;
 2681|  11.1k|	inp->recv_callback = NULL;
 2682|  11.1k|	inp->send_callback = NULL;
 2683|  11.1k|	inp->send_sb_threshold = 0;
 2684|  11.1k|#endif
 2685|       |	/* init the small hash table we use to track asocid <-> tcb */
 2686|  11.1k|	inp->sctp_asocidhash = SCTP_HASH_INIT(SCTP_STACK_VTAG_HASH_SIZE, &inp->hashasocidmark);
  ------------------
  |  |  765|  11.1k|#define SCTP_HASH_INIT(size, hashmark) sctp_hashinit_flags(size, M_PCB, hashmark, HASH_NOWAIT)
  |  |  ------------------
  |  |  |  |  761|  11.1k|#define HASH_NOWAIT 0x00000001
  |  |  ------------------
  ------------------
 2687|  11.1k|	if (inp->sctp_asocidhash == NULL) {
  ------------------
  |  Branch (2687:6): [True: 0, False: 11.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|  11.1k|	SCTP_INCR_EP_COUNT();
  ------------------
  |  |  652|  11.1k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_ep), 1)
  |  |  ------------------
  |  |  |  |   94|  11.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 2696|  11.1k|	inp->ip_inp.inp.inp_ip_ttl = MODULE_GLOBAL(ip_defttl);
  ------------------
  |  |   65|  11.1k|#define MODULE_GLOBAL(_B) (_B)
  ------------------
 2697|  11.1k|	SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|  11.1k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2698|       |
 2699|  11.1k|	so->so_pcb = (caddr_t)inp;
 2700|       |
 2701|  11.1k|	if (SCTP_SO_TYPE(so) == SOCK_SEQPACKET) {
  ------------------
  |  |  960|  11.1k|#define SCTP_SO_TYPE(so)	((so)->so_type)
  ------------------
  |  Branch (2701:6): [True: 0, False: 11.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|  11.1k|	} else if (SCTP_SO_TYPE(so) == SOCK_STREAM) {
  ------------------
  |  |  960|  11.1k|#define SCTP_SO_TYPE(so)	((so)->so_type)
  ------------------
  |  Branch (2707:13): [True: 11.1k, False: 0]
  ------------------
 2708|       |		/* TCP style socket */
 2709|  11.1k|		inp->sctp_flags = (SCTP_PCB_FLAGS_TCPTYPE |
  ------------------
  |  |  529|  11.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
 2710|  11.1k|		    SCTP_PCB_FLAGS_UNBOUND);
  ------------------
  |  |  532|  11.1k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
 2711|       |		/* Be sure we have blocking IO by default */
 2712|  11.1k|		SOCK_LOCK(so);
  ------------------
  |  |  527|  11.1k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  11.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2713|  11.1k|		SCTP_CLEAR_SO_NBIO(so);
  ------------------
  |  |  958|  11.1k|#define SCTP_CLEAR_SO_NBIO(so)	((so)->so_state &= ~SS_NBIO)
  |  |  ------------------
  |  |  |  |  343|  11.1k|#define	SS_NBIO			0x0100	/* non-blocking ops */
  |  |  ------------------
  ------------------
 2714|  11.1k|		SOCK_UNLOCK(so);
  ------------------
  |  |  529|  11.1k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  11.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2715|  11.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|  11.1k|	if (SCTP_BASE_SYSCTL(sctp_default_frag_interleave) == SCTP_FRAG_LEVEL_1) {
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_default_frag_interleave) == SCTP_FRAG_LEVEL_1) {
  ------------------
  |  |  345|  11.1k|#define SCTP_FRAG_LEVEL_1    0x00000001
  ------------------
  |  Branch (2728:6): [True: 11.1k, False: 0]
  ------------------
 2729|  11.1k|		sctp_feature_on(inp, SCTP_PCB_FLAGS_FRAG_INTERLEAVE);
  ------------------
  |  |   50|  11.1k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 2730|  11.1k|		sctp_feature_off(inp, SCTP_PCB_FLAGS_INTERLEAVE_STRMS);
  ------------------
  |  |   51|  11.1k|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 2731|  11.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|  11.1k|	inp->sctp_tcbhash = SCTP_HASH_INIT(SCTP_BASE_SYSCTL(sctp_pcbtblsize),
  ------------------
  |  |  765|  11.1k|#define SCTP_HASH_INIT(size, hashmark) sctp_hashinit_flags(size, M_PCB, hashmark, HASH_NOWAIT)
  |  |  ------------------
  |  |  |  |  761|  11.1k|#define HASH_NOWAIT 0x00000001
  |  |  ------------------
  ------------------
 2739|  11.1k|					   &inp->sctp_hashmark);
 2740|  11.1k|	if (inp->sctp_tcbhash == NULL) {
  ------------------
  |  Branch (2740:6): [True: 0, False: 11.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|  11.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|  11.1k|	SCTP_INP_INFO_WLOCK();
  ------------------
  |  |  297|  11.1k|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2791|  11.1k|	SCTP_INP_LOCK_INIT(inp);
  ------------------
  |  |  359|  11.1k|	(void)pthread_mutex_init(&(_inp)->inp_mtx, &SCTP_BASE_VAR(mtx_attr))
  |  |  ------------------
  |  |  |  |  591|  11.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|  11.1k|	SCTP_INP_READ_LOCK_INIT(inp);
  ------------------
  |  |  341|  11.1k|	(void)pthread_mutex_init(&(_inp)->inp_rdata_mtx, &SCTP_BASE_VAR(mtx_attr))
  |  |  ------------------
  |  |  |  |  591|  11.1k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  ------------------
 2797|  11.1k|	SCTP_ASOC_CREATE_LOCK_INIT(inp);
  ------------------
  |  |  415|  11.1k|	(void)pthread_mutex_init(&(_inp)->inp_create_mtx, &SCTP_BASE_VAR(mtx_attr))
  |  |  ------------------
  |  |  |  |  591|  11.1k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  ------------------
 2798|       |	/* lock the new ep */
 2799|  11.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2800|       |
 2801|       |	/* add it to the info area */
 2802|  11.1k|	LIST_INSERT_HEAD(&SCTP_BASE_INFO(listhead), inp, sctp_list);
  ------------------
  |  Branch (2802:2): [True: 2.22k, False: 8.92k]
  |  Branch (2802:2): [Folded, False: 11.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|  11.1k|	SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|  11.1k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2812|       |
 2813|  11.1k|	TAILQ_INIT(&inp->read_queue);
  ------------------
  |  Branch (2813:2): [Folded, False: 11.1k]
  ------------------
 2814|  11.1k|	LIST_INIT(&inp->sctp_addr_list);
  ------------------
  |  Branch (2814:2): [Folded, False: 11.1k]
  ------------------
 2815|       |
 2816|  11.1k|	LIST_INIT(&inp->sctp_asoc_list);
  ------------------
  |  Branch (2816:2): [Folded, False: 11.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|  11.1k|	SCTP_OS_TIMER_INIT(&inp->sctp_ep.signature_change.timer);
  ------------------
  |  |   92|  11.1k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 2824|  11.1k|	inp->sctp_ep.signature_change.type = SCTP_TIMER_TYPE_NEWCOOKIE;
  ------------------
  |  |  538|  11.1k|#define SCTP_TIMER_TYPE_NEWCOOKIE	7
  ------------------
 2825|       |
 2826|       |	/* now init the actual endpoint default data */
 2827|  11.1k|	m = &inp->sctp_ep;
 2828|       |
 2829|       |	/* setup the base timeout information */
 2830|  11.1k|	m->sctp_timeoutticks[SCTP_TIMER_SEND] = sctp_secs_to_ticks(SCTP_SEND_SEC);	/* needed ? */
  ------------------
  |  |  519|  11.1k|#define SCTP_TIMER_SEND 	2
  ------------------
              	m->sctp_timeoutticks[SCTP_TIMER_SEND] = sctp_secs_to_ticks(SCTP_SEND_SEC);	/* needed ? */
  ------------------
  |  |  592|  11.1k|#define SCTP_SEND_SEC	1
  ------------------
 2831|  11.1k|	m->sctp_timeoutticks[SCTP_TIMER_INIT] = sctp_secs_to_ticks(SCTP_INIT_SEC);	/* needed ? */
  ------------------
  |  |  517|  11.1k|#define SCTP_TIMER_INIT 	0
  ------------------
              	m->sctp_timeoutticks[SCTP_TIMER_INIT] = sctp_secs_to_ticks(SCTP_INIT_SEC);	/* needed ? */
  ------------------
  |  |  589|  11.1k|#define SCTP_INIT_SEC	1
  ------------------
 2832|  11.1k|	m->sctp_timeoutticks[SCTP_TIMER_RECV] = sctp_msecs_to_ticks(SCTP_BASE_SYSCTL(sctp_delayed_sack_time_default));
  ------------------
  |  |  518|  11.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|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2833|  11.1k|	m->sctp_timeoutticks[SCTP_TIMER_HEARTBEAT] = sctp_msecs_to_ticks(SCTP_BASE_SYSCTL(sctp_heartbeat_interval_default));
  ------------------
  |  |  520|  11.1k|#define SCTP_TIMER_HEARTBEAT	3
  ------------------
              	m->sctp_timeoutticks[SCTP_TIMER_HEARTBEAT] = sctp_msecs_to_ticks(SCTP_BASE_SYSCTL(sctp_heartbeat_interval_default));
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2834|  11.1k|	m->sctp_timeoutticks[SCTP_TIMER_PMTU] = sctp_secs_to_ticks(SCTP_BASE_SYSCTL(sctp_pmtu_raise_time_default));
  ------------------
  |  |  521|  11.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|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2835|  11.1k|	m->sctp_timeoutticks[SCTP_TIMER_MAXSHUTDOWN] = sctp_secs_to_ticks(SCTP_BASE_SYSCTL(sctp_shutdown_guard_time_default));
  ------------------
  |  |  522|  11.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|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2836|  11.1k|	m->sctp_timeoutticks[SCTP_TIMER_SIGNATURE] = sctp_secs_to_ticks(SCTP_BASE_SYSCTL(sctp_secret_lifetime_default));
  ------------------
  |  |  523|  11.1k|#define SCTP_TIMER_SIGNATURE	6
  ------------------
              	m->sctp_timeoutticks[SCTP_TIMER_SIGNATURE] = sctp_secs_to_ticks(SCTP_BASE_SYSCTL(sctp_secret_lifetime_default));
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2837|       |	/* all max/min max are in ms */
 2838|  11.1k|	m->sctp_maxrto = SCTP_BASE_SYSCTL(sctp_rto_max_default);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2839|  11.1k|	m->sctp_minrto = SCTP_BASE_SYSCTL(sctp_rto_min_default);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2840|  11.1k|	m->initial_rto = SCTP_BASE_SYSCTL(sctp_rto_initial_default);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2841|  11.1k|	m->initial_init_rto_max = SCTP_BASE_SYSCTL(sctp_init_rto_max_default);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2842|  11.1k|	m->sctp_sack_freq = SCTP_BASE_SYSCTL(sctp_sack_freq_default);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2843|  11.1k|	m->max_init_times = SCTP_BASE_SYSCTL(sctp_init_rtx_max_default);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2844|  11.1k|	m->max_send_times = SCTP_BASE_SYSCTL(sctp_assoc_rtx_max_default);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2845|  11.1k|	m->def_net_failure = SCTP_BASE_SYSCTL(sctp_path_rtx_max_default);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2846|  11.1k|	m->def_net_pf_threshold = SCTP_BASE_SYSCTL(sctp_path_pf_threshold);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2847|  11.1k|	m->sctp_sws_sender = SCTP_SWS_SENDER_DEF;
  ------------------
  |  |  674|  11.1k|#define SCTP_SWS_SENDER_DEF	1420
  ------------------
 2848|  11.1k|	m->sctp_sws_receiver = SCTP_SWS_RECEIVER_DEF;
  ------------------
  |  |  681|  11.1k|#define SCTP_SWS_RECEIVER_DEF	3000
  ------------------
 2849|  11.1k|	m->max_burst = SCTP_BASE_SYSCTL(sctp_max_burst_default);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2850|  11.1k|	m->fr_max_burst = SCTP_BASE_SYSCTL(sctp_fr_max_burst_default);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2851|       |
 2852|  11.1k|	m->sctp_default_cc_module = SCTP_BASE_SYSCTL(sctp_default_cc_module);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2853|  11.1k|	m->sctp_default_ss_module = SCTP_BASE_SYSCTL(sctp_default_ss_module);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2854|  11.1k|	m->max_open_streams_intome = SCTP_BASE_SYSCTL(sctp_nr_incoming_streams_default);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2855|       |	/* number of streams to pre-open on a association */
 2856|  11.1k|	m->pre_open_stream_count = SCTP_BASE_SYSCTL(sctp_nr_outgoing_streams_default);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2857|       |
 2858|  11.1k|	m->default_mtu = 0;
 2859|       |	/* Add adaptation cookie */
 2860|  11.1k|	m->adaptation_layer_indicator = 0;
 2861|  11.1k|	m->adaptation_layer_indicator_provided = 0;
 2862|       |
 2863|       |	/* seed random number generator */
 2864|  11.1k|	m->random_counter = 1;
 2865|  11.1k|	m->store_at = SCTP_SIGNATURE_SIZE;
  ------------------
  |  |  300|  11.1k|#define SCTP_SIGNATURE_SIZE	SCTP_AUTH_DIGEST_LEN_SHA1
  |  |  ------------------
  |  |  |  |   41|  11.1k|#define SCTP_AUTH_DIGEST_LEN_SHA1	20
  |  |  ------------------
  ------------------
 2866|  11.1k|	SCTP_READ_RANDOM(m->random_numbers, sizeof(m->random_numbers));
  ------------------
  |  |  986|  11.1k|#define SCTP_READ_RANDOM(buf, len)	read_random(buf, len)
  ------------------
 2867|  11.1k|	sctp_fill_random_store(m);
 2868|       |
 2869|       |	/* Minimum cookie size */
 2870|  11.1k|	m->size_of_a_cookie = (sizeof(struct sctp_init_msg) * 2) +
 2871|  11.1k|	    sizeof(struct sctp_state_cookie);
 2872|  11.1k|	m->size_of_a_cookie += SCTP_SIGNATURE_SIZE;
  ------------------
  |  |  300|  11.1k|#define SCTP_SIGNATURE_SIZE	SCTP_AUTH_DIGEST_LEN_SHA1
  |  |  ------------------
  |  |  |  |   41|  11.1k|#define SCTP_AUTH_DIGEST_LEN_SHA1	20
  |  |  ------------------
  ------------------
 2873|       |
 2874|       |	/* Setup the initial secret */
 2875|  11.1k|	(void)SCTP_GETTIME_TIMEVAL(&time);
  ------------------
  |  |  991|  11.1k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 2876|  11.1k|	m->time_of_secret_change = time.tv_sec;
 2877|       |
 2878|   100k|	for (i = 0; i < SCTP_NUMBER_OF_SECRETS; i++) {
  ------------------
  |  |  697|   100k|#define SCTP_NUMBER_OF_SECRETS	8	/* or 8 * 4 = 32 octets */
  ------------------
  |  Branch (2878:14): [True: 89.2k, False: 11.1k]
  ------------------
 2879|  89.2k|		m->secret_key[0][i] = sctp_select_initial_TSN(m);
 2880|  89.2k|	}
 2881|  11.1k|	sctp_timer_start(SCTP_TIMER_TYPE_NEWCOOKIE, inp, NULL, NULL);
  ------------------
  |  |  538|  11.1k|#define SCTP_TIMER_TYPE_NEWCOOKIE	7
  ------------------
 2882|       |
 2883|       |	/* How long is a cookie good for ? */
 2884|  11.1k|	m->def_cookie_life = sctp_msecs_to_ticks(SCTP_BASE_SYSCTL(sctp_valid_cookie_life_default));
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 2885|       |	/*
 2886|       |	 * Initialize authentication parameters
 2887|       |	 */
 2888|  11.1k|	m->local_hmacs = sctp_default_supported_hmaclist();
 2889|  11.1k|	m->local_auth_chunks = sctp_alloc_chunklist();
 2890|  11.1k|	if (inp->asconf_supported) {
  ------------------
  |  Branch (2890:6): [True: 11.1k, False: 0]
  ------------------
 2891|  11.1k|		sctp_auth_add_chunk(SCTP_ASCONF, m->local_auth_chunks);
  ------------------
  |  |  489|  11.1k|#define SCTP_ASCONF		0xc1
  ------------------
 2892|  11.1k|		sctp_auth_add_chunk(SCTP_ASCONF_ACK, m->local_auth_chunks);
  ------------------
  |  |  477|  11.1k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
 2893|  11.1k|	}
 2894|  11.1k|	m->default_dscp = 0;
 2895|  11.1k|#ifdef INET6
 2896|  11.1k|	m->default_flowlabel = 0;
 2897|  11.1k|#endif
 2898|  11.1k|	m->port = 0; /* encapsulation disabled by default */
 2899|  11.1k|	LIST_INIT(&m->shared_keys);
  ------------------
  |  Branch (2899:2): [Folded, False: 11.1k]
  ------------------
 2900|       |	/* add default NULL key as key id 0 */
 2901|  11.1k|	null_key = sctp_alloc_sharedkey();
 2902|  11.1k|	sctp_insert_sharedkey(&m->shared_keys, null_key);
 2903|  11.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2904|       |#ifdef SCTP_LOG_CLOSING
 2905|       |	sctp_log_closing(inp, NULL, 12);
 2906|       |#endif
 2907|  11.1k|	return (error);
 2908|  11.1k|}
sctp_inpcb_bind_locked:
 3144|  11.1k|{
 3145|       |	/* bind a ep to a socket address */
 3146|  11.1k|	struct sctppcbhead *head;
 3147|  11.1k|	struct sctp_inpcb *inp_tmp;
 3148|       |#if (defined(__FreeBSD__) || defined(__APPLE__)) && !defined(__Userspace__)
 3149|       |	struct inpcb *ip_inp;
 3150|       |#endif
 3151|  11.1k|	int port_reuse_active = 0;
 3152|  11.1k|	int bindall;
 3153|       |#ifdef SCTP_MVRF
 3154|       |	int i;
 3155|       |#endif
 3156|  11.1k|	uint16_t lport;
 3157|  11.1k|	int error;
 3158|  11.1k|	uint32_t vrf_id;
 3159|       |
 3160|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 3161|       |	KASSERT(td != NULL, ("%s: null thread", __func__));
 3162|       |
 3163|       |#endif
 3164|  11.1k|	error = 0;
 3165|  11.1k|	lport = 0;
 3166|  11.1k|	bindall = 1;
 3167|       |#if (defined(__FreeBSD__) || defined(__APPLE__)) && !defined(__Userspace__)
 3168|       |	ip_inp = &inp->ip_inp.inp;
 3169|       |#endif
 3170|       |
 3171|  11.1k|	SCTP_INP_INFO_WLOCK_ASSERT();
 3172|  11.1k|	SCTP_INP_WLOCK_ASSERT(inp);
  ------------------
  |  |  410|  11.1k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_mtx) == EBUSY, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.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|  11.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) == 0) {
  ------------------
  |  |  532|  11.1k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
  |  Branch (3182:6): [True: 0, False: 11.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|  11.1k|	if (addr != NULL) {
  ------------------
  |  Branch (3188:6): [True: 11.1k, False: 0]
  ------------------
 3189|  11.1k|		switch (addr->sa_family) {
 3190|      0|#ifdef INET
 3191|      0|		case AF_INET:
  ------------------
  |  Branch (3191:3): [True: 0, False: 11.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: 11.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|  11.1k|		case AF_CONN:
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (3297:3): [True: 11.1k, False: 0]
  ------------------
 3298|  11.1k|		{
 3299|  11.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|  11.1k|			sconn = (struct sockaddr_conn *)addr;
 3309|  11.1k|			lport = sconn->sconn_port;
 3310|  11.1k|			if (sconn->sconn_addr != NULL) {
  ------------------
  |  Branch (3310:8): [True: 11.1k, False: 0]
  ------------------
 3311|  11.1k|				bindall = 0;
 3312|  11.1k|			}
 3313|  11.1k|			break;
 3314|      0|		}
 3315|      0|#endif
 3316|      0|		default:
  ------------------
  |  Branch (3316:3): [True: 0, False: 11.1k]
  ------------------
 3317|      0|			error = EAFNOSUPPORT;
 3318|      0|			SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error);
 3319|      0|			goto out;
 3320|  11.1k|		}
 3321|  11.1k|	}
 3322|       |	/* Setup a vrf_id to be the default for the non-bind-all case. */
 3323|  11.1k|	vrf_id = inp->def_vrf_id;
 3324|       |
 3325|  11.1k|	if (lport) {
  ------------------
  |  Branch (3325:6): [True: 11.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|  11.1k|#if !(defined(_WIN32) && !defined(__Userspace__))
 3332|  11.1k|		if (ntohs(lport) < IPPORT_RESERVED &&
  ------------------
  |  Branch (3332:7): [True: 0, False: 11.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|  11.1k|#endif
 3346|  11.1k|		SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|  11.1k|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|  11.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 3347|  11.1k|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3348|  11.1k|		if (bindall) {
  ------------------
  |  Branch (3348:7): [True: 0, False: 11.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|  11.1k|		} else {
 3383|  11.1k|			inp_tmp = sctp_pcb_findep(addr, 0, 1, vrf_id);
 3384|  11.1k|			if (inp_tmp != NULL) {
  ------------------
  |  Branch (3384:8): [True: 0, False: 11.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|  11.1k|		}
 3407|  11.1k|	continue_anyway:
 3408|  11.1k|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3409|  11.1k|		SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|  11.1k|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|  11.1k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 3410|  11.1k|		if (bindall) {
  ------------------
  |  Branch (3410:7): [True: 0, False: 11.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|  11.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|  11.1k|	if (inp->sctp_flags & (SCTP_PCB_FLAGS_SOCKET_GONE |
  ------------------
  |  |  546|  11.1k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (3493:6): [True: 0, False: 11.1k]
  ------------------
 3494|  11.1k|			       SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  547|  11.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|  11.1k|	if (bindall) {
  ------------------
  |  Branch (3504:6): [True: 0, False: 11.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|  11.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|  11.1k|		struct sctp_ifa *ifa;
 3552|  11.1k|		union sctp_sockstore store;
 3553|       |
 3554|  11.1k|		memset(&store, 0, sizeof(store));
 3555|  11.1k|		switch (addr->sa_family) {
 3556|      0|#ifdef INET
 3557|      0|		case AF_INET:
  ------------------
  |  Branch (3557:3): [True: 0, False: 11.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: 11.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|  11.1k|		case AF_CONN:
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (3569:3): [True: 11.1k, False: 0]
  ------------------
 3570|  11.1k|			memcpy(&store.sconn, addr, sizeof(struct sockaddr_conn));
 3571|  11.1k|			store.sconn.sconn_port = 0;
 3572|  11.1k|			break;
 3573|      0|#endif
 3574|      0|		default:
  ------------------
  |  Branch (3574:3): [True: 0, False: 11.1k]
  ------------------
 3575|      0|			break;
 3576|  11.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|  11.1k|		if (sctp_ifap != NULL) {
  ------------------
  |  Branch (3582:7): [True: 0, False: 11.1k]
  ------------------
 3583|      0|			ifa = sctp_ifap;
 3584|  11.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|  11.1k|			ifa = sctp_find_ifa_by_addr(&store.sa,
 3590|  11.1k|						    vrf_id, SCTP_ADDR_NOT_LOCKED);
  ------------------
  |  |  966|  11.1k|#define SCTP_ADDR_NOT_LOCKED 0
  ------------------
 3591|  11.1k|		}
 3592|  11.1k|		if (ifa == NULL) {
  ------------------
  |  Branch (3592:7): [True: 0, False: 11.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|  11.1k|#ifdef INET6
 3599|  11.1k|		if (addr->sa_family == AF_INET6) {
  ------------------
  |  Branch (3599:7): [True: 0, False: 11.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|  11.1k|#endif
 3609|       |		/* we're not bound all */
 3610|  11.1k|		inp->sctp_flags &= ~SCTP_PCB_FLAGS_BOUNDALL;
  ------------------
  |  |  530|  11.1k|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  ------------------
 3611|       |		/* allow bindx() to send ASCONF's for binding changes */
 3612|  11.1k|		sctp_feature_on(inp, SCTP_PCB_FLAGS_DO_ASCONF);
  ------------------
  |  |   50|  11.1k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 3613|       |		/* clear automatic addr changes from kernel flag */
 3614|  11.1k|		sctp_feature_off(inp, SCTP_PCB_FLAGS_AUTO_ASCONF);
  ------------------
  |  |   51|  11.1k|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 3615|       |
 3616|       |		/* add this address to the endpoint list */
 3617|  11.1k|		error = sctp_insert_laddr(&inp->sctp_addr_list, ifa, 0);
 3618|  11.1k|		if (error != 0)
  ------------------
  |  Branch (3618:7): [True: 0, False: 11.1k]
  ------------------
 3619|      0|			goto out;
 3620|  11.1k|		inp->laddr_count++;
 3621|  11.1k|	}
 3622|       |	/* find the bucket */
 3623|  11.1k|	if (port_reuse_active) {
  ------------------
  |  Branch (3623:6): [True: 0, False: 11.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|  11.1k|	} else {
 3628|  11.1k|		head = &SCTP_BASE_INFO(sctp_ephash)[SCTP_PCBHASH_ALLADDR(lport, SCTP_BASE_INFO(hashmark))];
  ------------------
  |  |  587|  11.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|  11.1k|#define SCTP_PCBHASH_ALLADDR(port, mask) (port & mask)
  ------------------
 3629|  11.1k|	}
 3630|       |	/* put it in the bucket */
 3631|  11.1k|	LIST_INSERT_HEAD(head, inp, sctp_hash);
  ------------------
  |  Branch (3631:2): [True: 0, False: 11.1k]
  |  Branch (3631:2): [Folded, False: 11.1k]
  ------------------
 3632|  11.1k|	SCTPDBG(SCTP_DEBUG_PCB1, "Main hash to bind at head:%p, bound port:%d - in tcp_pool=%d\n",
 3633|  11.1k|		(void *)head, ntohs(lport), port_reuse_active);
 3634|       |	/* set in the port */
 3635|  11.1k|	inp->sctp_lport = lport;
  ------------------
  |  |  426|  11.1k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  11.1k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  11.1k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3636|       |
 3637|       |	/* turn off just the unbound flag */
 3638|  11.1k|	KASSERT((inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) != 0,
  ------------------
  |  |  112|  11.1k|	do {                         \
  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  ------------------
  ------------------
 3639|  11.1k|	    ("%s: inp %p is already bound", __func__, inp));
 3640|  11.1k|	inp->sctp_flags &= ~SCTP_PCB_FLAGS_UNBOUND;
  ------------------
  |  |  532|  11.1k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
 3641|  11.1k|out:
 3642|  11.1k|	return (error);
 3643|  11.1k|}
sctp_inpcb_bind:
 3656|  11.1k|{
 3657|  11.1k|	struct sctp_inpcb *inp;
 3658|  11.1k|	int error;
 3659|       |
 3660|  11.1k|	inp = so->so_pcb;
 3661|  11.1k|	SCTP_INP_INFO_WLOCK();
  ------------------
  |  |  297|  11.1k|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3662|  11.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3663|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 3664|       |	error = sctp_inpcb_bind_locked(inp, addr, sctp_ifap, td);
 3665|       |#else
 3666|  11.1k|	error = sctp_inpcb_bind_locked(inp, addr, sctp_ifap, p);
 3667|  11.1k|#endif
 3668|  11.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3669|  11.1k|	SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|  11.1k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3670|  11.1k|	return (error);
 3671|  11.1k|}
sctp_inpcb_free:
 3745|  11.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|  11.2k|	struct sctp_tcb *stcb, *nstcb;
 3755|  11.2k|	struct sctp_laddr *laddr, *nladdr;
 3756|  11.2k|	struct inpcb *ip_pcb;
 3757|  11.2k|	struct socket *so;
 3758|  11.2k|	int being_refed = 0;
 3759|  11.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|  11.2k|	int cnt;
 3766|  11.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|  11.2k|	SCTP_ITERATOR_LOCK();
  ------------------
  |  |  624|  11.2k|	KASSERT(pthread_mutex_lock(&sctp_it_ctl.it_mtx) == 0, ("%s:%d: it_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.2k|	do {                         \
  |  |  |  |  113|  11.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3775|       |	/* mark any iterators on the list or being processed */
 3776|  11.2k|	sctp_iterator_inp_being_freed(inp);
 3777|  11.2k|	SCTP_ITERATOR_UNLOCK();
  ------------------
  |  |  626|  11.2k|	KASSERT(pthread_mutex_unlock(&sctp_it_ctl.it_mtx) == 0, ("%s:%d: it_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.2k|	do {                         \
  |  |  |  |  113|  11.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3778|       |
 3779|  11.2k|	SCTP_ASOC_CREATE_LOCK(inp);
  ------------------
  |  |  427|  11.2k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.2k|	do {                         \
  |  |  |  |  113|  11.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3780|  11.2k|	SCTP_INP_INFO_WLOCK();
  ------------------
  |  |  297|  11.2k|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.2k|	do {                         \
  |  |  |  |  113|  11.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3781|  11.2k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.2k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.2k|	do {                         \
  |  |  |  |  113|  11.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3782|  11.2k|	so = inp->sctp_socket;
 3783|  11.2k|	KASSERT((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) != 0,
  ------------------
  |  |  112|  11.2k|	do {                         \
  |  |  113|  11.2k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.2k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 11.2k]
  |  |  ------------------
  ------------------
 3784|  11.2k|	    ("%s: inp %p still has socket", __func__, inp));
 3785|  11.2k|	KASSERT((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) == 0,
  ------------------
  |  |  112|  11.2k|	do {                         \
  |  |  113|  11.2k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.2k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 11.2k]
  |  |  ------------------
  ------------------
 3786|  11.2k|	    ("%s: double free of inp %p", __func__, inp));
 3787|  11.2k|	if (from == SCTP_CALLED_AFTER_CMPSET_OFCLOSE) {
  ------------------
  |  |  866|  11.2k|#define SCTP_CALLED_AFTER_CMPSET_OFCLOSE  1
  ------------------
  |  Branch (3787:6): [True: 11.1k, False: 56]
  ------------------
 3788|  11.1k|		inp->sctp_flags &= ~SCTP_PCB_FLAGS_CLOSE_IP;
  ------------------
  |  |  534|  11.1k|#define SCTP_PCB_FLAGS_CLOSE_IP         0x00040000
  ------------------
 3789|       |		/* socket is gone, so no more wakeups allowed */
 3790|  11.1k|		inp->sctp_flags |= SCTP_PCB_FLAGS_DONT_WAKE;
  ------------------
  |  |  541|  11.1k|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  ------------------
 3791|  11.1k|		inp->sctp_flags &= ~SCTP_PCB_FLAGS_WAKEINPUT;
  ------------------
  |  |  543|  11.1k|#define SCTP_PCB_FLAGS_WAKEINPUT	0x02000000
  ------------------
 3792|  11.1k|		inp->sctp_flags &= ~SCTP_PCB_FLAGS_WAKEOUTPUT;
  ------------------
  |  |  542|  11.1k|#define SCTP_PCB_FLAGS_WAKEOUTPUT	0x01000000
  ------------------
 3793|  11.1k|	}
 3794|       |	/* First time through we have the socket lock, after that no more. */
 3795|  11.2k|	sctp_timer_stop(SCTP_TIMER_TYPE_NEWCOOKIE, inp, NULL, NULL,
  ------------------
  |  |  538|  11.2k|#define SCTP_TIMER_TYPE_NEWCOOKIE	7
  ------------------
 3796|  11.2k|	                SCTP_FROM_SCTP_PCB + SCTP_LOC_1);
  ------------------
  |  |  756|  11.2k|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              	                SCTP_FROM_SCTP_PCB + SCTP_LOC_1);
  ------------------
  |  |  769|  11.2k|#define SCTP_LOC_1  0x00000001
  ------------------
 3797|       |
 3798|  11.2k|	if (inp->control) {
  ------------------
  |  Branch (3798:6): [True: 0, False: 11.2k]
  ------------------
 3799|      0|		sctp_m_freem(inp->control);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3800|      0|		inp->control = NULL;
 3801|      0|	}
 3802|  11.2k|	if (inp->pkt) {
  ------------------
  |  Branch (3802:6): [True: 0, False: 11.2k]
  ------------------
 3803|      0|		sctp_m_freem(inp->pkt);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3804|      0|		inp->pkt = NULL;
 3805|      0|	}
 3806|  11.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|  11.2k|	if (immediate == SCTP_FREE_SHOULD_USE_GRACEFUL_CLOSE) {
  ------------------
  |  |  870|  11.2k|#define SCTP_FREE_SHOULD_USE_GRACEFUL_CLOSE 0
  ------------------
  |  Branch (3809:6): [True: 28, False: 11.1k]
  ------------------
 3810|     28|		int cnt_in_sd;
 3811|       |
 3812|     28|		cnt_in_sd = 0;
 3813|     28|		LIST_FOREACH_SAFE(stcb, &inp->sctp_asoc_list, sctp_tcblist, nstcb) {
  ------------------
  |  | 1135|     28|         for ((var) = ((head)->lh_first);                      \
  |  | 1136|     28|              (var) && ((tvar) = LIST_NEXT((var), field), 1);  \
  |  |  ------------------
  |  |  |  Branch (1136:15): [True: 0, False: 28]
  |  |  |  Branch (1136:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1137|     28|              (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|     28|		if (cnt_in_sd) {
  ------------------
  |  Branch (3931:7): [True: 0, False: 28]
  ------------------
 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|     28|	}
 3942|  11.2k|	inp->sctp_socket = NULL;
 3943|  11.2k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) == 0) {
  ------------------
  |  |  532|  11.2k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
  |  Branch (3943:6): [True: 11.1k, False: 56]
  ------------------
 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|  11.1k|		LIST_REMOVE(inp, sctp_hash);
  ------------------
  |  Branch (3949:3): [True: 0, False: 11.1k]
  |  Branch (3949:3): [Folded, False: 11.1k]
  ------------------
 3950|  11.1k|		inp->sctp_flags |= SCTP_PCB_FLAGS_UNBOUND;
  ------------------
  |  |  532|  11.1k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
 3951|  11.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|  11.2k|	cnt = 0;
 3959|  11.2k|	LIST_FOREACH_SAFE(stcb, &inp->sctp_asoc_list, sctp_tcblist, nstcb) {
  ------------------
  |  | 1135|  11.2k|         for ((var) = ((head)->lh_first);                      \
  |  | 1136|  20.6k|              (var) && ((tvar) = LIST_NEXT((var), field), 1);  \
  |  |  ------------------
  |  |  |  Branch (1136:15): [True: 9.42k, False: 11.2k]
  |  |  |  Branch (1136:24): [True: 9.42k, False: 0]
  |  |  ------------------
  |  | 1137|  11.2k|              (var) = (tvar))
  ------------------
 3960|  9.42k|		SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  9.42k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  9.42k|	do {                         \
  |  |  |  |  113|  9.42k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 9.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|  9.42k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 9.42k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3961|  9.42k|		if (immediate != SCTP_FREE_SHOULD_USE_GRACEFUL_CLOSE) {
  ------------------
  |  |  870|  9.42k|#define SCTP_FREE_SHOULD_USE_GRACEFUL_CLOSE 0
  ------------------
  |  Branch (3961:7): [True: 9.42k, False: 0]
  ------------------
 3962|       |			/* Disconnect the socket please */
 3963|  9.42k|			stcb->sctp_socket = NULL;
 3964|  9.42k|			SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_CLOSED_SOCKET);
  ------------------
  |  |  478|  9.42k|	sctp_add_substate(_stcb, _substate)
  ------------------
 3965|  9.42k|		}
 3966|  9.42k|		if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|  9.42k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (3966:7): [True: 18, False: 9.40k]
  ------------------
 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|  9.40k|		if ((SCTP_GET_STATE(stcb) != SCTP_STATE_COOKIE_WAIT) &&
  ------------------
  |  |  472|  9.40k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  9.40k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) != SCTP_STATE_COOKIE_WAIT) &&
  ------------------
  |  |  457|  9.40k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (3976:7): [True: 7.37k, False: 2.02k]
  ------------------
 3977|  7.37k|		    ((stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0)) {
  ------------------
  |  |  465|  7.37k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (3977:7): [True: 7.37k, False: 0]
  ------------------
 3978|  7.37k|			struct mbuf *op_err;
 3979|       |
 3980|  7.37k|			op_err = sctp_generate_cause(SCTP_CAUSE_USER_INITIATED_ABT, "");
  ------------------
  |  |  377|  7.37k|#define SCTP_CAUSE_USER_INITIATED_ABT	0x000c
  ------------------
 3981|  7.37k|			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_PCB + SCTP_LOC_7;
  ------------------
  |  |  756|  7.37k|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              			stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_PCB + SCTP_LOC_7;
  ------------------
  |  |  775|  7.37k|#define SCTP_LOC_7  0x00000007
  ------------------
 3982|  7.37k|			sctp_send_abort_tcb(stcb, op_err, SCTP_SO_LOCKED);
  ------------------
  |  |  959|  7.37k|#define SCTP_SO_LOCKED		1
  ------------------
 3983|  7.37k|			SCTP_STAT_INCR_COUNTER32(sctps_aborted);
  ------------------
  |  | 1127|  7.37k|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  7.37k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  7.37k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  7.37k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3984|  7.37k|		} else if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|  2.02k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (3984:14): [True: 0, False: 2.02k]
  ------------------
 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|  9.40k|		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|  9.40k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  9.40k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|  9.40k|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (3989:7): [True: 4.52k, False: 4.88k]
  ------------------
 3990|  4.88k|		    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|  4.88k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  4.88k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|  4.88k|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (3990:7): [True: 44, False: 4.84k]
  ------------------
 3991|  4.56k|			SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|  4.56k|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|  4.56k|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|  4.56k|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|  4.56k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3992|  4.56k|		}
 3993|  9.40k|		if (sctp_free_assoc(inp, stcb, SCTP_PCBFREE_FORCE,
  ------------------
  |  |  810|  9.40k|#define SCTP_PCBFREE_FORCE    2
  ------------------
  |  Branch (3993:7): [True: 10, False: 9.39k]
  ------------------
 3994|  9.40k|		                    SCTP_FROM_SCTP_PCB + SCTP_LOC_8) == 0) {
  ------------------
  |  |  756|  9.40k|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              		                    SCTP_FROM_SCTP_PCB + SCTP_LOC_8) == 0) {
  ------------------
  |  |  776|  9.40k|#define SCTP_LOC_8  0x00000008
  ------------------
 3995|     10|			cnt++;
 3996|     10|		}
 3997|  9.40k|	}
 3998|  11.2k|	if (cnt) {
  ------------------
  |  Branch (3998:6): [True: 28, False: 11.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|     28|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|     28|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     28|	do {                         \
  |  |  |  |  113|     28|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 28]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     28|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 28]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4004|     28|		SCTP_ASOC_CREATE_UNLOCK(inp);
  ------------------
  |  |  430|     28|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     28|	do {                         \
  |  |  |  |  113|     28|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 28]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     28|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 28]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4005|     28|		SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|     28|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     28|	do {                         \
  |  |  |  |  113|     28|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 28]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     28|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 28]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4006|     28|		return;
 4007|     28|	}
 4008|  11.1k|	if (SCTP_INP_LOCK_CONTENDED(inp))
  ------------------
  |  |  496|  11.1k|#define SCTP_INP_LOCK_CONTENDED(_inp) (0) /* Don't know if this is possible */
  |  |  ------------------
  |  |  |  Branch (496:39): [Folded, False: 11.1k]
  |  |  ------------------
  ------------------
 4009|      0|		being_refed++;
 4010|  11.1k|	if (SCTP_INP_READ_CONTENDED(inp))
  ------------------
  |  |  497|  11.1k|#define SCTP_INP_READ_CONTENDED(_inp) (0) /* Don't know if this is possible */
  |  |  ------------------
  |  |  |  Branch (497:39): [Folded, False: 11.1k]
  |  |  ------------------
  ------------------
 4011|      0|		being_refed++;
 4012|  11.1k|	if (SCTP_ASOC_CREATE_LOCK_CONTENDED(inp))
  ------------------
  |  |  498|  11.1k|#define SCTP_ASOC_CREATE_LOCK_CONTENDED(_inp) (0) /* Don't know if this is possible */
  |  |  ------------------
  |  |  |  Branch (498:47): [Folded, False: 11.1k]
  |  |  ------------------
  ------------------
 4013|      0|		being_refed++;
 4014|       |	/* NOTE: 0 refcount also means no timers are referencing us. */
 4015|  11.1k|	if ((inp->refcount) ||
  ------------------
  |  Branch (4015:6): [True: 28, False: 11.1k]
  ------------------
 4016|  11.1k|	    (being_refed) ||
  ------------------
  |  Branch (4016:6): [True: 0, False: 11.1k]
  ------------------
 4017|  11.1k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_CLOSE_IP)) {
  ------------------
  |  |  534|  11.1k|#define SCTP_PCB_FLAGS_CLOSE_IP         0x00040000
  ------------------
  |  Branch (4017:6): [True: 0, False: 11.1k]
  ------------------
 4018|       |#ifdef SCTP_LOG_CLOSING
 4019|       |		sctp_log_closing(inp, NULL, 4);
 4020|       |#endif
 4021|     28|		sctp_timer_start(SCTP_TIMER_TYPE_INPKILL, inp, NULL, NULL);
  ------------------
  |  |  545|     28|#define SCTP_TIMER_TYPE_INPKILL		14
  ------------------
 4022|     28|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|     28|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     28|	do {                         \
  |  |  |  |  113|     28|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 28]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     28|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 28]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4023|     28|		SCTP_ASOC_CREATE_UNLOCK(inp);
  ------------------
  |  |  430|     28|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     28|	do {                         \
  |  |  |  |  113|     28|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 28]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     28|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 28]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4024|     28|		SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|     28|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     28|	do {                         \
  |  |  |  |  113|     28|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 28]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     28|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 28]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4025|     28|		return;
 4026|     28|	}
 4027|  11.1k|	inp->sctp_ep.signature_change.type = 0;
 4028|  11.1k|	inp->sctp_flags |= SCTP_PCB_FLAGS_SOCKET_ALLGONE;
  ------------------
  |  |  547|  11.1k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
 4029|       |	/* Remove it from the list .. last thing we need a
 4030|       |	 * lock for.
 4031|       |	 */
 4032|  11.1k|	LIST_REMOVE(inp, sctp_list);
  ------------------
  |  Branch (4032:2): [True: 2.19k, False: 8.95k]
  |  Branch (4032:2): [Folded, False: 11.1k]
  ------------------
 4033|  11.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4034|  11.1k|	SCTP_ASOC_CREATE_UNLOCK(inp);
  ------------------
  |  |  430|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4035|  11.1k|	SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|  11.1k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.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|  11.1k|	if ((inp->sctp_asocidhash) != NULL) {
  ------------------
  |  Branch (4045:6): [True: 11.1k, False: 0]
  ------------------
 4046|  11.1k|		SCTP_HASH_FREE(inp->sctp_asocidhash, inp->hashasocidmark);
  ------------------
  |  |  767|  11.1k|#define SCTP_HASH_FREE(table, hashmark) sctp_hashdestroy(table, M_PCB, hashmark)
  ------------------
 4047|  11.1k|		inp->sctp_asocidhash = NULL;
 4048|  11.1k|	}
 4049|       |	/*sa_ignore FREED_MEMORY*/
 4050|  11.1k|	TAILQ_FOREACH_SAFE(sq, &inp->read_queue, next, nsq) {
  ------------------
  |  | 1129|  11.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  11.1k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 11.1k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  11.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|  11.1k|	if (ip_pcb->inp_options) {
  ------------------
  |  |  149|  11.1k|#define	inp_options	inp_depend4.inp4_options
  ------------------
  |  Branch (4075:6): [True: 0, False: 11.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|  11.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|  11.1k|#endif				/* INET6 */
 4098|  11.1k|	ip_pcb->inp_vflag = 0;
 4099|       |	/* free up authentication fields */
 4100|  11.1k|	if (inp->sctp_ep.local_auth_chunks != NULL)
  ------------------
  |  Branch (4100:6): [True: 11.1k, False: 0]
  ------------------
 4101|  11.1k|		sctp_free_chunklist(inp->sctp_ep.local_auth_chunks);
 4102|  11.1k|	if (inp->sctp_ep.local_hmacs != NULL)
  ------------------
  |  Branch (4102:6): [True: 11.1k, False: 0]
  ------------------
 4103|  11.1k|		sctp_free_hmaclist(inp->sctp_ep.local_hmacs);
 4104|       |
 4105|  11.1k|	LIST_FOREACH_SAFE(shared_key, &inp->sctp_ep.shared_keys, next, nshared_key) {
  ------------------
  |  | 1135|  11.1k|         for ((var) = ((head)->lh_first);                      \
  |  | 1136|  22.3k|              (var) && ((tvar) = LIST_NEXT((var), field), 1);  \
  |  |  ------------------
  |  |  |  Branch (1136:15): [True: 11.1k, False: 11.1k]
  |  |  |  Branch (1136:24): [True: 11.1k, False: 0]
  |  |  ------------------
  |  | 1137|  11.1k|              (var) = (tvar))
  ------------------
 4106|  11.1k|		LIST_REMOVE(shared_key, next);
  ------------------
  |  Branch (4106:3): [True: 0, False: 11.1k]
  |  Branch (4106:3): [Folded, False: 11.1k]
  ------------------
 4107|  11.1k|		sctp_free_sharedkey(shared_key);
 4108|       |		/*sa_ignore FREED_MEMORY*/
 4109|  11.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|  11.1k|	LIST_FOREACH_SAFE(laddr, &inp->sctp_addr_list, sctp_nxt_addr, nladdr) {
  ------------------
  |  | 1135|  11.1k|         for ((var) = ((head)->lh_first);                      \
  |  | 1136|  22.3k|              (var) && ((tvar) = LIST_NEXT((var), field), 1);  \
  |  |  ------------------
  |  |  |  Branch (1136:15): [True: 11.1k, False: 11.1k]
  |  |  |  Branch (1136:24): [True: 11.1k, False: 0]
  |  |  ------------------
  |  | 1137|  11.1k|              (var) = (tvar))
  ------------------
 4128|  11.1k|		sctp_remove_laddr(laddr);
 4129|  11.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|  11.1k|	if (inp->sctp_tcbhash != NULL) {
  ------------------
  |  Branch (4144:6): [True: 11.1k, False: 0]
  ------------------
 4145|  11.1k|		SCTP_HASH_FREE(inp->sctp_tcbhash, inp->sctp_hashmark);
  ------------------
  |  |  767|  11.1k|#define SCTP_HASH_FREE(table, hashmark) sctp_hashdestroy(table, M_PCB, hashmark)
  ------------------
 4146|  11.1k|		inp->sctp_tcbhash = NULL;
 4147|  11.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|  11.1k|	SCTP_INP_LOCK_DESTROY(inp);
  ------------------
  |  |  361|  11.1k|	(void)pthread_mutex_destroy(&(_inp)->inp_mtx)
  ------------------
 4154|  11.1k|	SCTP_INP_READ_LOCK_DESTROY(inp);
  ------------------
  |  |  343|  11.1k|	(void)pthread_mutex_destroy(&(_inp)->inp_rdata_mtx)
  ------------------
 4155|  11.1k|	SCTP_ASOC_CREATE_LOCK_DESTROY(inp);
  ------------------
  |  |  417|  11.1k|	(void)pthread_mutex_destroy(&(_inp)->inp_create_mtx)
  ------------------
 4156|  11.1k|#if !(defined(__APPLE__) && !defined(__Userspace__))
 4157|  11.1k|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_ep), inp);
  ------------------
  |  |  707|  11.1k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  11.1k|	free(element);  \
  |  |  709|  11.1k|}
  ------------------
 4158|  11.1k|	SCTP_DECR_EP_COUNT();
  ------------------
  |  |  655|  11.1k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_ep), 1)
  |  |  ------------------
  |  |  |  |   97|  11.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|  11.1k|}
sctp_findnet:
 4166|   101k|{
 4167|   101k|	struct sctp_nets *net;
 4168|       |	/* locate the address */
 4169|   323k|	TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (4169:2): [True: 323k, False: 58.9k]
  ------------------
 4170|   323k|		if (sctp_cmpaddr(addr, (struct sockaddr *)&net->ro._l_addr))
  ------------------
  |  Branch (4170:7): [True: 42.3k, False: 281k]
  ------------------
 4171|  42.3k|			return (net);
 4172|   323k|	}
 4173|  58.9k|	return (NULL);
 4174|   101k|}
sctp_is_address_on_local_host:
 4178|  53.5k|{
 4179|  53.5k|	struct sctp_ifa *sctp_ifa;
 4180|  53.5k|	sctp_ifa = sctp_find_ifa_by_addr(addr, vrf_id, SCTP_ADDR_NOT_LOCKED);
  ------------------
  |  |  966|  53.5k|#define SCTP_ADDR_NOT_LOCKED 0
  ------------------
 4181|  53.5k|	if (sctp_ifa) {
  ------------------
  |  Branch (4181:6): [True: 11.1k, False: 42.4k]
  ------------------
 4182|  11.1k|		return (1);
 4183|  42.4k|	} else {
 4184|  42.4k|		return (0);
 4185|  42.4k|	}
 4186|  53.5k|}
sctp_add_remote_addr:
 4196|  58.8k|{
 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|  58.8k|	struct sctp_nets *net, *netfirst;
 4203|  58.8k|	int addr_inscope;
 4204|       |
 4205|  58.8k|	SCTPDBG(SCTP_DEBUG_PCB1, "Adding an address (from:%d) to the peer: ",
 4206|  58.8k|		from);
 4207|  58.8k|	SCTPDBG_ADDR(SCTP_DEBUG_PCB1, newaddr);
 4208|       |
 4209|  58.8k|	netfirst = sctp_findnet(stcb, newaddr);
 4210|  58.8k|	if (netfirst) {
  ------------------
  |  Branch (4210:6): [True: 5.32k, False: 53.5k]
  ------------------
 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|  5.32k|		if (netfirst->dest_state & SCTP_ADDR_UNCONFIRMED) {
  ------------------
  |  |  487|  5.32k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (4221:7): [True: 4.16k, False: 1.15k]
  ------------------
 4222|  4.16k|			netfirst->dest_state = (SCTP_ADDR_REACHABLE |
  ------------------
  |  |  481|  4.16k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 4223|  4.16k|			    SCTP_ADDR_UNCONFIRMED);
  ------------------
  |  |  487|  4.16k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
 4224|  4.16k|		} else {
 4225|  1.15k|			netfirst->dest_state = SCTP_ADDR_REACHABLE;
  ------------------
  |  |  481|  1.15k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 4226|  1.15k|		}
 4227|       |
 4228|  5.32k|		return (0);
 4229|  5.32k|	}
 4230|  53.5k|	addr_inscope = 1;
 4231|  53.5k|	switch (newaddr->sa_family) {
 4232|      0|#ifdef INET
 4233|  38.0k|	case AF_INET:
  ------------------
  |  Branch (4233:2): [True: 38.0k, False: 15.4k]
  ------------------
 4234|  38.0k|	{
 4235|  38.0k|		struct sockaddr_in *sin;
 4236|       |
 4237|  38.0k|		sin = (struct sockaddr_in *)newaddr;
 4238|  38.0k|		if (sin->sin_addr.s_addr == 0) {
  ------------------
  |  Branch (4238:7): [True: 0, False: 38.0k]
  ------------------
 4239|       |			/* Invalid address */
 4240|      0|			return (-1);
 4241|      0|		}
 4242|       |		/* zero out the zero area */
 4243|  38.0k|		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|  38.0k|		if (set_scope) {
  ------------------
  |  Branch (4249:7): [True: 0, False: 38.0k]
  ------------------
 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|  38.0k|		} else {
 4254|       |			/* Validate the address is in scope */
 4255|  38.0k|			if ((IN4_ISPRIVATE_ADDRESS(&sin->sin_addr)) &&
  ------------------
  |  |  969|  38.0k|   ((((uint8_t *)&(a)->s_addr)[0] == 10) || \
  |  |  ------------------
  |  |  |  Branch (969:5): [True: 3.43k, False: 34.6k]
  |  |  ------------------
  |  |  970|  38.0k|    ((((uint8_t *)&(a)->s_addr)[0] == 172) && \
  |  |  ------------------
  |  |  |  Branch (970:6): [True: 852, False: 33.7k]
  |  |  ------------------
  |  |  971|  34.6k|     (((uint8_t *)&(a)->s_addr)[1] >= 16) && \
  |  |  ------------------
  |  |  |  Branch (971:6): [True: 814, False: 38]
  |  |  ------------------
  |  |  972|  34.6k|     (((uint8_t *)&(a)->s_addr)[1] <= 32)) || \
  |  |  ------------------
  |  |  |  Branch (972:6): [True: 157, False: 657]
  |  |  ------------------
  |  |  973|  38.0k|    ((((uint8_t *)&(a)->s_addr)[0] == 192) && \
  |  |  ------------------
  |  |  |  Branch (973:6): [True: 66, False: 34.4k]
  |  |  ------------------
  |  |  974|  34.4k|     (((uint8_t *)&(a)->s_addr)[1] == 168)))
  |  |  ------------------
  |  |  |  Branch (974:6): [True: 19, False: 47]
  |  |  ------------------
  ------------------
 4256|  3.61k|			    (stcb->asoc.scope.ipv4_local_scope == 0)) {
  ------------------
  |  Branch (4256:8): [True: 0, False: 3.61k]
  ------------------
 4257|      0|				addr_inscope = 0;
 4258|      0|			}
 4259|  38.0k|		}
 4260|  38.0k|		break;
 4261|  38.0k|	}
 4262|      0|#endif
 4263|      0|#ifdef INET6
 4264|  4.33k|	case AF_INET6:
  ------------------
  |  Branch (4264:2): [True: 4.33k, False: 49.2k]
  ------------------
 4265|  4.33k|	{
 4266|  4.33k|		struct sockaddr_in6 *sin6;
 4267|       |
 4268|  4.33k|		sin6 = (struct sockaddr_in6 *)newaddr;
 4269|  4.33k|		if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
  ------------------
  |  Branch (4269:7): [True: 0, False: 4.33k]
  ------------------
 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.33k|		if (set_scope) {
  ------------------
  |  Branch (4277:7): [True: 0, False: 4.33k]
  ------------------
 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.33k|		} else {
 4302|       |			/* Validate the address is in scope */
 4303|  4.33k|			if (IN6_IS_ADDR_LOOPBACK(&sin6->sin6_addr) &&
  ------------------
  |  Branch (4303:8): [True: 11, False: 4.32k]
  ------------------
 4304|     11|			    (stcb->asoc.scope.loopback_scope == 0)) {
  ------------------
  |  Branch (4304:8): [True: 0, False: 11]
  ------------------
 4305|      0|				addr_inscope = 0;
 4306|  4.33k|			} else if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr) &&
  ------------------
  |  Branch (4306:15): [True: 2.19k, False: 2.14k]
  ------------------
 4307|  2.19k|			    (stcb->asoc.scope.local_scope == 0)) {
  ------------------
  |  Branch (4307:8): [True: 2.19k, False: 0]
  ------------------
 4308|  2.19k|				addr_inscope = 0;
 4309|  2.19k|			} else if (IN6_IS_ADDR_SITELOCAL(&sin6->sin6_addr) &&
  ------------------
  |  Branch (4309:15): [True: 71, False: 2.07k]
  ------------------
 4310|     71|			    (stcb->asoc.scope.site_scope == 0)) {
  ------------------
  |  Branch (4310:8): [True: 0, False: 71]
  ------------------
 4311|      0|				addr_inscope = 0;
 4312|      0|			}
 4313|  4.33k|		}
 4314|  4.33k|		break;
 4315|  4.33k|	}
 4316|      0|#endif
 4317|      0|#if defined(__Userspace__)
 4318|  11.1k|	case AF_CONN:
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (4318:2): [True: 11.1k, False: 42.4k]
  ------------------
 4319|  11.1k|	{
 4320|  11.1k|		struct sockaddr_conn *sconn;
 4321|       |
 4322|  11.1k|		sconn = (struct sockaddr_conn *)newaddr;
 4323|  11.1k|		if (sconn->sconn_addr == NULL) {
  ------------------
  |  Branch (4323:7): [True: 0, False: 11.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|  11.1k|		break;
 4331|  11.1k|	}
 4332|  11.1k|#endif
 4333|  11.1k|	default:
  ------------------
  |  Branch (4333:2): [True: 0, False: 53.5k]
  ------------------
 4334|       |		/* not supported family type */
 4335|      0|		return (-1);
 4336|  53.5k|	}
 4337|  53.5k|	net = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_net), struct sctp_nets);
  ------------------
  |  |  703|  53.5k|        (type *)malloc(zone);
  ------------------
 4338|  53.5k|	if (net == NULL) {
  ------------------
  |  Branch (4338:6): [True: 0, False: 53.5k]
  ------------------
 4339|      0|		return (-1);
 4340|      0|	}
 4341|  53.5k|	SCTP_INCR_RADDR_COUNT();
  ------------------
  |  |  670|  53.5k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  ------------------
  |  |  |  |   94|  53.5k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 4342|  53.5k|	memset(net, 0, sizeof(struct sctp_nets));
 4343|  53.5k|	(void)SCTP_GETTIME_TIMEVAL(&net->start_time);
  ------------------
  |  |  991|  53.5k|#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|  53.5k|	switch (newaddr->sa_family) {
 4348|      0|#ifdef INET
 4349|  38.0k|	case AF_INET:
  ------------------
  |  Branch (4349:2): [True: 38.0k, False: 15.4k]
  ------------------
 4350|  38.0k|#ifndef HAVE_SA_LEN
 4351|  38.0k|		memcpy(&net->ro._l_addr, newaddr, sizeof(struct sockaddr_in));
 4352|  38.0k|#endif
 4353|  38.0k|		((struct sockaddr_in *)&net->ro._l_addr)->sin_port = stcb->rport;
 4354|  38.0k|		break;
 4355|      0|#endif
 4356|      0|#ifdef INET6
 4357|  4.33k|	case AF_INET6:
  ------------------
  |  Branch (4357:2): [True: 4.33k, False: 49.2k]
  ------------------
 4358|  4.33k|#ifndef HAVE_SA_LEN
 4359|  4.33k|		memcpy(&net->ro._l_addr, newaddr, sizeof(struct sockaddr_in6));
 4360|  4.33k|#endif
 4361|  4.33k|		((struct sockaddr_in6 *)&net->ro._l_addr)->sin6_port = stcb->rport;
 4362|  4.33k|		break;
 4363|      0|#endif
 4364|      0|#if defined(__Userspace__)
 4365|  11.1k|	case AF_CONN:
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (4365:2): [True: 11.1k, False: 42.4k]
  ------------------
 4366|  11.1k|#ifndef HAVE_SA_LEN
 4367|  11.1k|		memcpy(&net->ro._l_addr, newaddr, sizeof(struct sockaddr_conn));
 4368|  11.1k|#endif
 4369|  11.1k|		((struct sockaddr_conn *)&net->ro._l_addr)->sconn_port = stcb->rport;
 4370|  11.1k|		break;
 4371|      0|#endif
 4372|      0|	default:
  ------------------
  |  Branch (4372:2): [True: 0, False: 53.5k]
  ------------------
 4373|      0|		break;
 4374|  53.5k|	}
 4375|  53.5k|	net->addr_is_local = sctp_is_address_on_local_host(newaddr, stcb->asoc.vrf_id);
 4376|  53.5k|	if (net->addr_is_local && ((set_scope || (from == SCTP_ADDR_IS_CONFIRMED)))) {
  ------------------
  |  |  813|      1|#define SCTP_ADDR_IS_CONFIRMED 8
  ------------------
  |  Branch (4376:6): [True: 11.1k, False: 42.4k]
  |  Branch (4376:30): [True: 11.1k, False: 1]
  |  Branch (4376:43): [True: 0, False: 1]
  ------------------
 4377|  11.1k|		stcb->asoc.scope.loopback_scope = 1;
 4378|  11.1k|		stcb->asoc.scope.ipv4_local_scope = 1;
 4379|  11.1k|		stcb->asoc.scope.local_scope = 0;
 4380|  11.1k|		stcb->asoc.scope.site_scope = 1;
 4381|  11.1k|		addr_inscope = 1;
 4382|  11.1k|	}
 4383|  53.5k|	net->failure_threshold = stcb->asoc.def_net_failure;
 4384|  53.5k|	net->pf_threshold = stcb->asoc.def_net_pf_threshold;
 4385|  53.5k|	if (addr_inscope == 0) {
  ------------------
  |  Branch (4385:6): [True: 2.19k, False: 51.3k]
  ------------------
 4386|  2.19k|		net->dest_state = (SCTP_ADDR_REACHABLE |
  ------------------
  |  |  481|  2.19k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 4387|  2.19k|		    SCTP_ADDR_OUT_OF_SCOPE);
  ------------------
  |  |  486|  2.19k|#define SCTP_ADDR_OUT_OF_SCOPE		0x080
  ------------------
 4388|  51.3k|	} else {
 4389|  51.3k|		if (from == SCTP_ADDR_IS_CONFIRMED)
  ------------------
  |  |  813|  51.3k|#define SCTP_ADDR_IS_CONFIRMED 8
  ------------------
  |  Branch (4389:7): [True: 0, False: 51.3k]
  ------------------
 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|  51.3k|		else
 4393|  51.3k|			net->dest_state = SCTP_ADDR_REACHABLE |
  ------------------
  |  |  481|  51.3k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
 4394|  51.3k|			    SCTP_ADDR_UNCONFIRMED;
  ------------------
  |  |  487|  51.3k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
 4395|  51.3k|	}
 4396|       |	/* We set this to 0, the timer code knows that
 4397|       |	 * this means its an initial value
 4398|       |	 */
 4399|  53.5k|	net->rto_needed = 1;
 4400|  53.5k|	net->RTO = 0;
 4401|  53.5k|	net->RTO_measured = 0;
 4402|  53.5k|	stcb->asoc.numnets++;
 4403|  53.5k|	net->ref_count = 1;
 4404|  53.5k|	net->cwr_window_tsn = net->last_cwr_tsn = stcb->asoc.sending_seq - 1;
 4405|  53.5k|	net->port = port;
 4406|  53.5k|	net->dscp = stcb->asoc.default_dscp;
 4407|  53.5k|#ifdef INET6
 4408|  53.5k|	net->flowlabel = stcb->asoc.default_flowlabel;
 4409|  53.5k|#endif
 4410|  53.5k|	if (sctp_stcb_is_feature_on(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_DONOT_HEARTBEAT)) {
  ------------------
  |  |   70|  53.5k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 53.5k, False: 0]
  |  |  ------------------
  |  |   71|  53.5k|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 0, False: 53.5k]
  |  |  ------------------
  |  |   72|  53.5k|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (72:4): [True: 0, False: 53.5k]
  |  |  |  Branch (72:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   73|  53.5k|	  ((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|  53.5k|	} else {
 4413|  53.5k|		net->dest_state &= ~SCTP_ADDR_NOHB;
  ------------------
  |  |  483|  53.5k|#define SCTP_ADDR_NOHB			0x004
  ------------------
 4414|  53.5k|	}
 4415|  53.5k|	if (sctp_stcb_is_feature_on(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_DO_NOT_PMTUD)) {
  ------------------
  |  |   70|  53.5k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 53.5k, False: 0]
  |  |  ------------------
  |  |   71|  53.5k|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 0, False: 53.5k]
  |  |  ------------------
  |  |   72|  53.5k|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (72:4): [True: 0, False: 53.5k]
  |  |  |  Branch (72:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   73|  53.5k|	  ((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|  53.5k|	} else {
 4418|  53.5k|		net->dest_state &= ~SCTP_ADDR_NO_PMTUD;
  ------------------
  |  |  482|  53.5k|#define SCTP_ADDR_NO_PMTUD              0x002
  ------------------
 4419|  53.5k|	}
 4420|  53.5k|	net->heart_beat_delay = stcb->asoc.heart_beat_delay;
 4421|       |	/* Init the timer structure */
 4422|  53.5k|	SCTP_OS_TIMER_INIT(&net->rxt_timer.timer);
  ------------------
  |  |   92|  53.5k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4423|  53.5k|	SCTP_OS_TIMER_INIT(&net->pmtu_timer.timer);
  ------------------
  |  |   92|  53.5k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4424|  53.5k|	SCTP_OS_TIMER_INIT(&net->hb_timer.timer);
  ------------------
  |  |   92|  53.5k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4425|       |
 4426|       |	/* Now generate a route for this guy */
 4427|  53.5k|#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|  53.5k|#endif
 4451|  53.5k|	SCTP_RTALLOC((sctp_route_t *)&net->ro,
  ------------------
  |  |  871|  53.5k|#define SCTP_RTALLOC(ro, vrf_id, fibnum) sctp_userspace_rtalloc((sctp_route_t *)ro)
  ------------------
 4452|  53.5k|	             stcb->asoc.vrf_id,
 4453|  53.5k|	             stcb->sctp_ep->fibnum);
 4454|       |
 4455|  53.5k|	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|  53.5k|	if (net->mtu == 0) {
  ------------------
  |  Branch (4525:6): [True: 53.5k, False: 0]
  ------------------
 4526|  53.5k|		if (stcb->asoc.default_mtu > 0) {
  ------------------
  |  Branch (4526:7): [True: 0, False: 53.5k]
  ------------------
 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|  53.5k|		} else {
 4553|  53.5k|			switch (newaddr->sa_family) {
 4554|      0|#ifdef INET
 4555|  38.0k|			case AF_INET:
  ------------------
  |  Branch (4555:4): [True: 38.0k, False: 15.4k]
  ------------------
 4556|  38.0k|				net->mtu = SCTP_DEFAULT_MTU;
  ------------------
  |  |  685|  38.0k|#define SCTP_DEFAULT_MTU 1500 /* emergency default MTU */
  ------------------
 4557|  38.0k|				break;
 4558|      0|#endif
 4559|      0|#ifdef INET6
 4560|  4.33k|			case AF_INET6:
  ------------------
  |  Branch (4560:4): [True: 4.33k, False: 49.2k]
  ------------------
 4561|  4.33k|				net->mtu = 1280;
 4562|  4.33k|				break;
 4563|      0|#endif
 4564|      0|#if defined(__Userspace__)
 4565|  11.1k|			case AF_CONN:
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (4565:4): [True: 11.1k, False: 42.4k]
  ------------------
 4566|  11.1k|				net->mtu = 1280;
 4567|  11.1k|				break;
 4568|      0|#endif
 4569|      0|			default:
  ------------------
  |  Branch (4569:4): [True: 0, False: 53.5k]
  ------------------
 4570|      0|				break;
 4571|  53.5k|			}
 4572|  53.5k|		}
 4573|  53.5k|	}
 4574|  53.5k|#if defined(INET) || defined(INET6)
 4575|  53.5k|	if (net->port) {
  ------------------
  |  Branch (4575:6): [True: 0, False: 53.5k]
  ------------------
 4576|      0|		net->mtu -= (uint32_t)sizeof(struct udphdr);
 4577|      0|	}
 4578|  53.5k|#endif
 4579|  53.5k|	if (from == SCTP_ALLOC_ASOC) {
  ------------------
  |  |  816|  53.5k|#define SCTP_ALLOC_ASOC  1
  ------------------
  |  Branch (4579:6): [True: 11.1k, False: 42.4k]
  ------------------
 4580|  11.1k|		stcb->asoc.smallest_mtu = net->mtu;
 4581|  11.1k|	}
 4582|  53.5k|	if (stcb->asoc.smallest_mtu > net->mtu) {
  ------------------
  |  Branch (4582:6): [True: 0, False: 53.5k]
  ------------------
 4583|      0|		sctp_pathmtu_adjustment(stcb, net->mtu, true);
 4584|      0|	}
 4585|  53.5k|#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|  53.5k|#endif
 4599|       |
 4600|       |	/* JRS - Use the congestion control given in the CC module */
 4601|  53.5k|	if (stcb->asoc.cc_functions.sctp_set_initial_cc_param != NULL)
  ------------------
  |  Branch (4601:6): [True: 53.5k, False: 0]
  ------------------
 4602|  53.5k|		(*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|  53.5k|	net->find_pseudo_cumack = 1;
 4609|  53.5k|	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|  53.5k|	if (netp) {
  ------------------
  |  Branch (4617:6): [True: 42.4k, False: 11.1k]
  ------------------
 4618|  42.4k|		*netp = net;
 4619|  42.4k|	}
 4620|  53.5k|	netfirst = TAILQ_FIRST(&stcb->asoc.nets);
 4621|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4622|       |	if (net->ro.ro_nh == NULL) {
 4623|       |#else
 4624|  53.5k|	if (net->ro.ro_rt == NULL) {
  ------------------
  |  Branch (4624:6): [True: 0, False: 53.5k]
  ------------------
 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|  53.5k|	} else if (netfirst == NULL) {
  ------------------
  |  Branch (4628:13): [True: 11.1k, False: 42.4k]
  ------------------
 4629|       |		/* We are the first one in the pool. */
 4630|  11.1k|		TAILQ_INSERT_HEAD(&stcb->asoc.nets, net, sctp_next);
  ------------------
  |  Branch (4630:3): [True: 0, False: 11.1k]
  |  Branch (4630:3): [Folded, False: 11.1k]
  ------------------
 4631|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4632|       |	} else if (netfirst->ro.ro_nh == NULL) {
 4633|       |#else
 4634|  42.4k|	} else if (netfirst->ro.ro_rt == NULL) {
  ------------------
  |  Branch (4634:13): [True: 0, False: 42.4k]
  ------------------
 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|  42.4k|	} else if (net->ro.ro_rt->rt_ifp != netfirst->ro.ro_rt->rt_ifp) {
  ------------------
  |  Branch (4644:13): [True: 0, False: 42.4k]
  ------------------
 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|  42.4k|	} 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|  42.4k|		struct sctp_nets *netlook;
 4659|       |
 4660|   221k|		do {
 4661|   221k|			netlook = TAILQ_NEXT(netfirst, sctp_next);
 4662|   221k|			if (netlook == NULL) {
  ------------------
  |  Branch (4662:8): [True: 42.4k, False: 178k]
  ------------------
 4663|       |				/* End of the list */
 4664|  42.4k|				TAILQ_INSERT_TAIL(&stcb->asoc.nets, net, sctp_next);
  ------------------
  |  Branch (4664:5): [Folded, False: 42.4k]
  ------------------
 4665|  42.4k|				break;
 4666|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4667|       |			} else if (netlook->ro.ro_nh == NULL) {
 4668|       |#else
 4669|   178k|			} else if (netlook->ro.ro_rt == NULL) {
  ------------------
  |  Branch (4669:15): [True: 0, False: 178k]
  ------------------
 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|   178k|			} else if (netlook->ro.ro_rt->rt_ifp != net->ro.ro_rt->rt_ifp) {
  ------------------
  |  Branch (4677:15): [True: 0, False: 178k]
  ------------------
 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|   178k|			netfirst = netlook;
 4685|   178k|		} while (netlook != NULL);
  ------------------
  |  Branch (4685:12): [True: 178k, False: 0]
  ------------------
 4686|  42.4k|	}
 4687|       |
 4688|       |	/* got to have a primary set */
 4689|  53.5k|	if (stcb->asoc.primary_destination == 0) {
  ------------------
  |  Branch (4689:6): [True: 11.1k, False: 42.4k]
  ------------------
 4690|  11.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|  42.4k|	} else if ((stcb->asoc.primary_destination->ro.ro_rt == NULL) &&
  ------------------
  |  Branch (4695:13): [True: 0, False: 42.4k]
  ------------------
 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|  53.5k|	net = TAILQ_FIRST(&stcb->asoc.nets);
 4704|  53.5k|	if ((net != stcb->asoc.primary_destination) &&
  ------------------
  |  Branch (4704:6): [True: 123, False: 53.4k]
  ------------------
 4705|    123|	    (stcb->asoc.primary_destination)) {
  ------------------
  |  Branch (4705:6): [True: 123, 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|    123|		TAILQ_REMOVE(&stcb->asoc.nets,
  ------------------
  |  Branch (4711:3): [True: 123, False: 0]
  |  Branch (4711:3): [Folded, False: 123]
  ------------------
 4712|    123|			     stcb->asoc.primary_destination, sctp_next);
 4713|       |		TAILQ_INSERT_HEAD(&stcb->asoc.nets,
  ------------------
  |  Branch (4713:3): [True: 123, False: 0]
  |  Branch (4713:3): [Folded, False: 123]
  ------------------
 4714|    123|				  stcb->asoc.primary_destination, sctp_next);
 4715|    123|	}
 4716|  53.5k|	return (0);
 4717|  53.5k|}
sctp_aloc_assoc_connected:
 5051|  11.1k|{
 5052|  11.1k|	struct sctp_tcb *stcb;
 5053|       |
 5054|  11.1k|	SCTP_INP_INFO_WLOCK();
  ------------------
  |  |  297|  11.1k|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5055|  11.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5056|  11.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) &&
  ------------------
  |  |  529|  11.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5056:6): [True: 11.1k, False: 0]
  ------------------
 5057|  11.1k|	    SCTP_IS_LISTENING(inp)) {
  ------------------
  |  | 1152|  11.1k|#define SCTP_IS_LISTENING(inp) ((inp->sctp_flags & SCTP_PCB_FLAGS_ACCEPTING) != 0)
  |  |  ------------------
  |  |  |  |  531|  11.1k|#define SCTP_PCB_FLAGS_ACCEPTING	0x00000008
  |  |  ------------------
  |  |  |  Branch (1152:32): [True: 0, False: 11.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|  11.1k|	stcb = sctp_aloc_assoc_locked(inp, firstaddr, error, override_tag,
 5064|  11.1k|	    initial_tsn, vrf_id, o_streams, port, p, initialize_auth_params);
 5065|  11.1k|	SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|  11.1k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5066|  11.1k|	if (stcb != NULL && (inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE)) {
  ------------------
  |  |  529|  11.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5066:6): [True: 11.1k, False: 0]
  |  Branch (5066:22): [True: 11.1k, False: 0]
  ------------------
 5067|  11.1k|		inp->sctp_flags |= SCTP_PCB_FLAGS_CONNECTED;
  ------------------
  |  |  539|  11.1k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
 5068|  11.1k|		soisconnecting(inp->sctp_socket);
 5069|  11.1k|	}
 5070|  11.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5071|  11.1k|	return (stcb);
 5072|  11.1k|}
sctp_remove_net:
 5076|  37.4k|{
 5077|  37.4k|	struct sctp_inpcb *inp;
 5078|  37.4k|	struct sctp_association *asoc;
 5079|       |
 5080|  37.4k|	inp = stcb->sctp_ep;
 5081|  37.4k|	asoc = &stcb->asoc;
 5082|  37.4k|	asoc->numnets--;
 5083|  37.4k|	TAILQ_REMOVE(&asoc->nets, net, sctp_next);
  ------------------
  |  Branch (5083:2): [True: 31.4k, False: 5.97k]
  |  Branch (5083:2): [Folded, False: 37.4k]
  ------------------
 5084|  37.4k|	if (net == asoc->primary_destination) {
  ------------------
  |  Branch (5084:6): [True: 776, False: 36.6k]
  ------------------
 5085|       |		/* Reset primary */
 5086|    776|		struct sctp_nets *lnet;
 5087|       |
 5088|    776|		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|    776|		if (sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|  1.55k|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 776]
  |  |  ------------------
  ------------------
 5095|    776|		                                SCTP_MOBILITY_BASE) ||
 5096|    776|		    sctp_is_mobility_feature_on(stcb->sctp_ep,
  ------------------
  |  |   84|    776|#define sctp_is_mobility_feature_on(inp, feature) (inp->sctp_mobility_features & feature)
  |  |  ------------------
  |  |  |  Branch (84:51): [True: 0, False: 776]
  |  |  ------------------
  ------------------
 5097|    776|		                                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|    776|out:
 5113|       |		/* Try to find a confirmed primary */
 5114|    776|		asoc->primary_destination = sctp_find_alternate_net(stcb, lnet, 0);
 5115|    776|	}
 5116|  37.4k|	if (net == asoc->last_data_chunk_from) {
  ------------------
  |  Branch (5116:6): [True: 0, False: 37.4k]
  ------------------
 5117|       |		/* Reset primary */
 5118|      0|		asoc->last_data_chunk_from = TAILQ_FIRST(&asoc->nets);
 5119|      0|	}
 5120|  37.4k|	if (net == asoc->last_control_chunk_from) {
  ------------------
  |  Branch (5120:6): [True: 0, False: 37.4k]
  ------------------
 5121|       |		/* Clear net */
 5122|      0|		asoc->last_control_chunk_from = NULL;
 5123|      0|	}
 5124|  37.4k|	if (net == asoc->last_net_cmt_send_started) {
  ------------------
  |  Branch (5124:6): [True: 0, False: 37.4k]
  ------------------
 5125|       |		/* Clear net */
 5126|      0|		asoc->last_net_cmt_send_started = NULL;
 5127|      0|	}
 5128|  37.4k|	if (net == stcb->asoc.alternate) {
  ------------------
  |  Branch (5128:6): [True: 1, False: 37.4k]
  ------------------
 5129|      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|}
  ------------------
 5130|      1|		stcb->asoc.alternate = NULL;
 5131|      1|	}
 5132|  37.4k|	sctp_timer_stop(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net,
  ------------------
  |  |  539|  37.4k|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
 5133|  37.4k|	                SCTP_FROM_SCTP_PCB + SCTP_LOC_9);
  ------------------
  |  |  756|  37.4k|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              	                SCTP_FROM_SCTP_PCB + SCTP_LOC_9);
  ------------------
  |  |  777|  37.4k|#define SCTP_LOC_9  0x00000009
  ------------------
 5134|  37.4k|	sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net,
  ------------------
  |  |  536|  37.4k|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
 5135|  37.4k|	                SCTP_FROM_SCTP_PCB + SCTP_LOC_10);
  ------------------
  |  |  756|  37.4k|#define SCTP_FROM_SCTP_PCB          0x20000000
  ------------------
              	                SCTP_FROM_SCTP_PCB + SCTP_LOC_10);
  ------------------
  |  |  778|  37.4k|#define SCTP_LOC_10 0x0000000a
  ------------------
 5136|  37.4k|	net->dest_state |= SCTP_ADDR_BEING_DELETED;
  ------------------
  |  |  484|  37.4k|#define SCTP_ADDR_BEING_DELETED		0x008
  ------------------
 5137|  37.4k|	sctp_free_remote_addr(net);
  ------------------
  |  |  228|  37.4k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  37.4k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 37.4k, False: 0]
  |  |  ------------------
  |  |  230|  37.4k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  37.4k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  37.4k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 35.9k, False: 1.48k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|  35.9k|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 35.9k, False: 0]
  |  |  ------------------
  |  |  232|  35.9k|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|  35.9k|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|  35.9k|		RT_LOCK(_rt);					\
  |  |  |  |  128|  35.9k|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|  35.9k|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|  35.9k|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 35.9k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|  35.9k|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|  35.9k|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|  35.9k|		} 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|  35.9k|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|  35.9k|		_rt = NULL;					\
  |  |  |  |  |  |  125|  35.9k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 35.9k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|  35.9k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 35.9k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|  35.9k|				(__net)->ro.ro_rt = NULL; \
  |  |  234|  35.9k|			} \
  |  |  235|  35.9k|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 35.9k]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|  35.9k|			(__net)->src_addr_selected = 0; \
  |  |  240|  35.9k|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|  35.9k|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|  35.9k|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|  35.9k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|  35.9k|	free(element);  \
  |  |  |  |  709|  35.9k|}
  |  |  ------------------
  |  |  242|  35.9k|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|  35.9k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|  35.9k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|  35.9k|		} \
  |  |  244|  37.4k|	} \
  |  |  245|  37.4k|}
  ------------------
 5138|  37.4k|}
sctp_del_remote_addr:
 5146|  7.92k|{
 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.92k|	struct sctp_association *asoc;
 5155|  7.92k|	struct sctp_nets *net, *nnet;
 5156|       |
 5157|  7.92k|	asoc = &stcb->asoc;
 5158|       |
 5159|       |	/* locate the address */
 5160|  41.9k|	TAILQ_FOREACH_SAFE(net, &asoc->nets, sctp_next, nnet) {
  ------------------
  |  | 1129|  7.92k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  48.8k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 41.9k, False: 6.87k]
  |  |  |  Branch (1130:24): [True: 41.9k, False: 0]
  |  |  ------------------
  |  | 1131|  40.8k|              (var) = (tvar))
  ------------------
 5161|  41.9k|		if (net->ro._l_addr.sa.sa_family != remaddr->sa_family) {
  ------------------
  |  Branch (5161:7): [True: 12.2k, False: 29.7k]
  ------------------
 5162|  12.2k|			continue;
 5163|  12.2k|		}
 5164|  29.7k|		if (sctp_cmpaddr((struct sockaddr *)&net->ro._l_addr,
  ------------------
  |  Branch (5164:7): [True: 1.05k, False: 28.6k]
  ------------------
 5165|  29.7k|		    remaddr)) {
 5166|       |			/* we found the guy */
 5167|  1.05k|			if (asoc->numnets < 2) {
  ------------------
  |  Branch (5167:8): [True: 0, False: 1.05k]
  ------------------
 5168|       |				/* Must have at LEAST two remote addresses */
 5169|      0|				return (-1);
 5170|  1.05k|			} else {
 5171|  1.05k|				sctp_remove_net(stcb, net);
 5172|  1.05k|				return (0);
 5173|  1.05k|			}
 5174|  1.05k|		}
 5175|  29.7k|	}
 5176|       |	/* not found. */
 5177|  6.87k|	return (-2);
 5178|  7.92k|}
sctp_clean_up_stream:
 5270|  4.46M|{
 5271|  4.46M|	struct sctp_tmit_chunk *chk, *nchk;
 5272|  4.46M|	struct sctp_queued_to_read *control, *ncontrol;
 5273|       |
 5274|  4.46M|	TAILQ_FOREACH_SAFE(control, rh, next_instrm, ncontrol) {
  ------------------
  |  | 1129|  4.46M|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  4.47M|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 3.74k, False: 4.46M]
  |  |  |  Branch (1130:24): [True: 3.74k, False: 0]
  |  |  ------------------
  |  | 1131|  4.46M|              (var) = (tvar))
  ------------------
 5275|  3.74k|		TAILQ_REMOVE(rh, control, next_instrm);
  ------------------
  |  Branch (5275:3): [True: 1.31k, False: 2.42k]
  |  Branch (5275:3): [Folded, False: 3.74k]
  ------------------
 5276|  3.74k|		control->on_strm_q = 0;
 5277|  3.74k|		if (control->on_read_q == 0) {
  ------------------
  |  Branch (5277:7): [True: 3.74k, False: 0]
  ------------------
 5278|  3.74k|			sctp_free_remote_addr(control->whoFrom);
  ------------------
  |  |  228|  3.74k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  3.74k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 3.74k, False: 0]
  |  |  ------------------
  |  |  230|  3.74k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  3.74k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  3.74k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 3.74k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  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.74k|	} \
  |  |  245|  3.74k|}
  ------------------
 5279|  3.74k|			if (control->data) {
  ------------------
  |  Branch (5279:8): [True: 2.23k, False: 1.50k]
  ------------------
 5280|  2.23k|				sctp_m_freem(control->data);
  ------------------
  |  |   52|  2.23k|#define sctp_m_freem m_freem
  ------------------
 5281|  2.23k|				control->data = NULL;
 5282|  2.23k|			}
 5283|  3.74k|		}
 5284|       |		/* Reassembly free? */
 5285|  3.74k|		TAILQ_FOREACH_SAFE(chk, &control->reasm, sctp_next, nchk) {
  ------------------
  |  | 1129|  3.74k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  6.63k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 2.89k, False: 3.74k]
  |  |  |  Branch (1130:24): [True: 2.89k, False: 0]
  |  |  ------------------
  |  | 1131|  3.74k|              (var) = (tvar))
  ------------------
 5286|  2.89k|			TAILQ_REMOVE(&control->reasm, chk, sctp_next);
  ------------------
  |  Branch (5286:4): [True: 1.17k, False: 1.71k]
  |  Branch (5286:4): [Folded, False: 2.89k]
  ------------------
 5287|  2.89k|			if (chk->data) {
  ------------------
  |  Branch (5287:8): [True: 2.89k, False: 0]
  ------------------
 5288|  2.89k|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|  2.89k|#define sctp_m_freem m_freem
  ------------------
 5289|  2.89k|				chk->data = NULL;
 5290|  2.89k|			}
 5291|  2.89k|			if (chk->holds_key_ref)
  ------------------
  |  Branch (5291:8): [True: 0, False: 2.89k]
  ------------------
 5292|      0|				sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5293|  2.89k|			sctp_free_remote_addr(chk->whoTo);
  ------------------
  |  |  228|  2.89k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  2.89k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 2.89k, False: 0]
  |  |  ------------------
  |  |  230|  2.89k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  2.89k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  2.89k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 2.89k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  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.89k|	} \
  |  |  245|  2.89k|}
  ------------------
 5294|  2.89k|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
  ------------------
  |  |  707|  2.89k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  2.89k|	free(element);  \
  |  |  709|  2.89k|}
  ------------------
 5295|  2.89k|			SCTP_DECR_CHK_COUNT();
  ------------------
  |  |  679|  2.89k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  ------------------
  |  |  |  |   97|  2.89k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5296|       |			/*sa_ignore FREED_MEMORY*/
 5297|  2.89k|		}
 5298|       |		/*
 5299|       |		 * We don't free the address here
 5300|       |		 * since all the net's were freed
 5301|       |		 * above.
 5302|       |		 */
 5303|  3.74k|		if (control->on_read_q == 0) {
  ------------------
  |  Branch (5303:7): [True: 3.74k, False: 0]
  ------------------
 5304|  3.74k|			sctp_free_a_readq(stcb, control);
  ------------------
  |  |  105|  3.74k|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|  3.74k|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 3.74k]
  |  |  ------------------
  |  |  107|  3.74k|		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.74k|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|  3.74k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|  3.74k|	free(element);  \
  |  |  |  |  709|  3.74k|}
  |  |  ------------------
  |  |  109|  3.74k|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|  3.74k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|  3.74k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|  3.74k|}
  ------------------
 5305|  3.74k|		}
 5306|  3.74k|	}
 5307|  4.46M|}
sctp_free_assoc:
 5319|  13.9k|{
 5320|  13.9k|	int i;
 5321|  13.9k|	struct sctp_association *asoc;
 5322|  13.9k|	struct sctp_nets *net, *nnet;
 5323|  13.9k|	struct sctp_laddr *laddr, *naddr;
 5324|  13.9k|	struct sctp_tmit_chunk *chk, *nchk;
 5325|  13.9k|	struct sctp_asconf_addr *aparam, *naparam;
 5326|  13.9k|	struct sctp_asconf_ack *aack, *naack;
 5327|  13.9k|	struct sctp_stream_reset_list *strrst, *nstrrst;
 5328|  13.9k|	struct sctp_queued_to_read *sq, *nsq;
 5329|  13.9k|	struct sctp_stream_queue_pending *sp, *nsp;
 5330|  13.9k|	sctp_sharedkey_t *shared_key, *nshared_key;
 5331|  13.9k|	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|  13.9k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  13.9k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  13.9k|	do {                         \
  |  |  |  |  113|  13.9k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 13.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|  13.9k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 13.9k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5338|       |
 5339|       |#ifdef SCTP_LOG_CLOSING
 5340|       |	sctp_log_closing(inp, stcb, 6);
 5341|       |#endif
 5342|  13.9k|	if (stcb->asoc.state == 0) {
  ------------------
  |  Branch (5342:6): [True: 0, False: 13.9k]
  ------------------
 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|  13.9k|	if (stcb->asoc.alternate) {
  ------------------
  |  Branch (5349:6): [True: 112, False: 13.8k]
  ------------------
 5350|    112|		sctp_free_remote_addr(stcb->asoc.alternate);
  ------------------
  |  |  228|    112|#define sctp_free_remote_addr(__net) { \
  |  |  229|    112|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 112, False: 0]
  |  |  ------------------
  |  |  230|    112|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|    112|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|    112|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 112]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  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|    112|	} \
  |  |  245|    112|}
  ------------------
 5351|    112|		stcb->asoc.alternate = NULL;
 5352|    112|	}
 5353|  13.9k|#if !(defined(__APPLE__) && !defined(__Userspace__))
 5354|       |	/* TEMP CODE */
 5355|  13.9k|	if (stcb->freed_from_where == 0) {
  ------------------
  |  Branch (5355:6): [True: 11.1k, False: 2.80k]
  ------------------
 5356|       |		/* Only record the first place free happened from */
 5357|  11.1k|		stcb->freed_from_where = from_location;
 5358|  11.1k|	}
 5359|       |	/* TEMP CODE */
 5360|  13.9k|#endif
 5361|       |
 5362|  13.9k|	asoc = &stcb->asoc;
 5363|  13.9k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|  13.9k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (5363:6): [True: 0, False: 13.9k]
  ------------------
 5364|  13.9k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE))
  ------------------
  |  |  546|  13.9k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5364:6): [True: 12.2k, False: 1.74k]
  ------------------
 5365|       |		/* nothing around */
 5366|  12.2k|		so = NULL;
 5367|  1.74k|	else
 5368|  1.74k|		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|  13.9k|	if ((stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) &&
  ------------------
  |  |  465|  13.9k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (5375:6): [True: 2.80k, False: 11.1k]
  ------------------
 5376|  2.80k|	    (from_inpcbfree == SCTP_NORMAL_PROC)) {
  ------------------
  |  |  808|  2.80k|#define SCTP_NORMAL_PROC      0
  ------------------
  |  Branch (5376:6): [True: 2.80k, False: 0]
  ------------------
 5377|       |		/*
 5378|       |		 * is it the timer driving us? if so are the reader/writers
 5379|       |		 * gone?
 5380|       |		 */
 5381|  2.80k|		if (stcb->asoc.refcnt) {
  ------------------
  |  Branch (5381:7): [True: 2.77k, False: 28]
  ------------------
 5382|       |			/* nope, reader or writer in the way */
 5383|  2.77k|			sctp_timer_start(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL);
  ------------------
  |  |  546|  2.77k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
 5384|       |			/* no asoc destroyed */
 5385|  2.77k|			SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  2.77k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  2.77k|	do {                         \
  |  |  |  |  113|  2.77k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.77k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.77k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.77k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5386|       |#ifdef SCTP_LOG_CLOSING
 5387|       |			sctp_log_closing(inp, stcb, 8);
 5388|       |#endif
 5389|  2.77k|			return (0);
 5390|  2.77k|		}
 5391|  2.80k|	}
 5392|       |	/* Now clean up any other timers */
 5393|  11.1k|	sctp_stop_association_timers(stcb, false);
 5394|       |	/* Now the read queue needs to be cleaned up (only once) */
 5395|  11.1k|	if ((stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) == 0) {
  ------------------
  |  |  465|  11.1k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (5395:6): [True: 11.1k, False: 28]
  ------------------
 5396|  11.1k|		SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_ABOUT_TO_BE_FREED);
  ------------------
  |  |  478|  11.1k|	sctp_add_substate(_stcb, _substate)
  ------------------
 5397|  11.1k|		SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5398|   138k|		TAILQ_FOREACH(sq, &inp->read_queue, next) {
  ------------------
  |  Branch (5398:3): [True: 138k, False: 11.1k]
  ------------------
 5399|   138k|			if (sq->stcb == stcb) {
  ------------------
  |  Branch (5399:8): [True: 138k, False: 0]
  ------------------
 5400|   138k|				sq->do_not_ref_stcb = 1;
 5401|   138k|				sq->sinfo_cumtsn = stcb->asoc.cumulative_tsn;
 5402|       |				/* If there is no end, there never
 5403|       |				 * will be now.
 5404|       |				 */
 5405|   138k|				if (sq->end_added == 0) {
  ------------------
  |  Branch (5405:9): [True: 0, False: 138k]
  ------------------
 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|   138k|			}
 5420|   138k|		}
 5421|  11.1k|		SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5422|  11.1k|		if (stcb->block_entry) {
  ------------------
  |  Branch (5422:7): [True: 0, False: 11.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|  11.1k|	}
 5428|  11.1k|	if ((stcb->asoc.refcnt) || (stcb->asoc.state & SCTP_STATE_IN_ACCEPT_QUEUE)) {
  ------------------
  |  |  468|  11.1k|#define SCTP_STATE_IN_ACCEPT_QUEUE      0x1000
  ------------------
  |  Branch (5428:6): [True: 28, False: 11.1k]
  |  Branch (5428:29): [True: 0, False: 11.1k]
  ------------------
 5429|       |		/* Someone holds a reference OR the socket is unaccepted yet.
 5430|       |		*/
 5431|     28|		if ((stcb->asoc.refcnt) ||
  ------------------
  |  Branch (5431:7): [True: 28, 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|     28|		    (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|     28|			SCTP_CLEAR_SUBSTATE(stcb, SCTP_STATE_IN_ACCEPT_QUEUE);
  ------------------
  |  |  476|     28|	(_stcb)->asoc.state &= ~(_substate)
  ------------------
 5435|     28|			sctp_timer_start(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL);
  ------------------
  |  |  546|     28|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
 5436|     28|		}
 5437|     28|		if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|     28|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (5437:7): [True: 0, False: 28]
  ------------------
 5438|     28|		    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE))
  ------------------
  |  |  546|     28|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5438:7): [True: 10, False: 18]
  ------------------
 5439|       |			/* nothing around */
 5440|     10|			so = NULL;
 5441|     28|		if (so) {
  ------------------
  |  Branch (5441:7): [True: 18, False: 10]
  ------------------
 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|     28|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|     28|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     28|	do {                         \
  |  |  |  |  113|     28|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 28]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     28|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 28]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5447|       |
 5448|       |#ifdef SCTP_LOG_CLOSING
 5449|       |		sctp_log_closing(inp, stcb, 9);
 5450|       |#endif
 5451|       |		/* no asoc destroyed */
 5452|     28|		return (0);
 5453|     28|	}
 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|  11.1k|	if (from_inpcbfree == SCTP_NORMAL_PROC) {
  ------------------
  |  |  808|  11.1k|#define SCTP_NORMAL_PROC      0
  ------------------
  |  Branch (5472:6): [True: 1.75k, False: 9.39k]
  ------------------
 5473|  1.75k|		atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|  1.75k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 5474|       |
 5475|  1.75k|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  1.75k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5476|  1.75k|		SCTP_INP_INFO_WLOCK();
  ------------------
  |  |  297|  1.75k|	KASSERT(pthread_rwlock_wrlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx already 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5477|  1.75k|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  1.75k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5478|  1.75k|		SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  1.75k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5479|  1.75k|	}
 5480|       |	/* Double check the GONE flag */
 5481|  11.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|  11.1k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (5481:6): [True: 0, False: 11.1k]
  ------------------
 5482|  11.1k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE))
  ------------------
  |  |  546|  11.1k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5482:6): [True: 9.42k, False: 1.72k]
  ------------------
 5483|       |		/* nothing around */
 5484|  9.42k|		so = NULL;
 5485|       |
 5486|  11.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|  11.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5486:6): [True: 11.1k, False: 0]
  ------------------
 5487|  11.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|  11.1k|		if (inp->sctp_flags & SCTP_PCB_FLAGS_CONNECTED) {
  ------------------
  |  |  539|  11.1k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (5492:7): [True: 11.1k, False: 0]
  ------------------
 5493|  11.1k|			inp->sctp_flags &= ~SCTP_PCB_FLAGS_CONNECTED;
  ------------------
  |  |  539|  11.1k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
 5494|  11.1k|			inp->sctp_flags |= SCTP_PCB_FLAGS_WAS_CONNECTED;
  ------------------
  |  |  535|  11.1k|#define SCTP_PCB_FLAGS_WAS_CONNECTED    0x00080000
  ------------------
 5495|  11.1k|			if (so) {
  ------------------
  |  Branch (5495:8): [True: 1.72k, False: 9.42k]
  ------------------
 5496|  1.72k|				SOCKBUF_LOCK(&so->so_rcv);
  ------------------
  |  |  517|  1.72k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.72k|	do {                         \
  |  |  |  |  113|  1.72k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.72k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.72k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.72k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5497|  1.72k|				so->so_state &= ~(SS_ISCONNECTING |
  ------------------
  |  |  341|  1.72k|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
 5498|  1.72k|				    SS_ISDISCONNECTING |
  ------------------
  |  |  342|  1.72k|#define	SS_ISDISCONNECTING	0x0008	/* in process of disconnecting */
  ------------------
 5499|  1.72k|#if !(defined(__FreeBSD__) && !defined(__Userspace__))
 5500|  1.72k|				    SS_ISCONFIRMING |
  ------------------
  |  |  345|  1.72k|#define	SS_ISCONFIRMING		0x0400	/* deciding to accept connection req */
  ------------------
 5501|  1.72k|#endif
 5502|  1.72k|				    SS_ISCONNECTED);
  ------------------
  |  |  340|  1.72k|#define	SS_ISCONNECTED		0x0002	/* socket connected to a peer */
  ------------------
 5503|  1.72k|				so->so_state |= SS_ISDISCONNECTED;
  ------------------
  |  |  346|  1.72k|#define	SS_ISDISCONNECTED	0x2000	/* socket disconnected from peer */
  ------------------
 5504|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5505|       |				socantrcvmore(so);
 5506|       |#else
 5507|  1.72k|				socantrcvmore_locked(so);
 5508|  1.72k|#endif
 5509|  1.72k|				socantsendmore(so);
 5510|  1.72k|				sctp_sowwakeup(inp, so);
  ------------------
  |  | 1001|  1.72k|#define sctp_sowwakeup(inp, so) \
  |  | 1002|  1.72k|do { \
  |  | 1003|  1.72k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|  3.45k|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1003:6): [True: 0, False: 1.72k]
  |  |  ------------------
  |  | 1004|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEOUTPUT); \
  |  |  ------------------
  |  |  |  |  542|      0|#define SCTP_PCB_FLAGS_WAKEOUTPUT	0x01000000
  |  |  ------------------
  |  | 1005|  1.72k|	} else { \
  |  | 1006|  1.72k|		sowwakeup(so); \
  |  |  ------------------
  |  |  |  |  532|  1.72k|#define	sowwakeup(so) do {						\
  |  |  |  |  533|  1.72k|	SOCKBUF_LOCK(&(so)->so_snd);					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  517|  1.72k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  1.72k|	do {                         \
  |  |  |  |  |  |  |  |  113|  1.72k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.72k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.72k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.72k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  534|  1.72k|	sowwakeup_locked(so);						\
  |  |  |  |  ------------------
  |  |  |  |  |  |  524|  1.72k|#define	sowwakeup_locked(so) do {					\
  |  |  |  |  |  |  525|  1.72k|	SOCKBUF_LOCK_ASSERT(&(so)->so_snd);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  514|  1.72k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|  1.72k|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|  1.72k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.72k]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.72k|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.72k]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  526|  1.72k|	if (sb_notify(&(so)->so_snd))					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  499|  1.72k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|  1.72k|#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.72k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  205|  1.72k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (499:23): [True: 1.72k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  500|  1.72k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|  1.72k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  208|  1.72k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|  1.72k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  527|  1.72k|		sowakeup((so), &(so)->so_snd); 				\
  |  |  |  |  |  |  528|  1.72k|	else								\
  |  |  |  |  |  |  529|  1.72k|		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.72k|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (530:10): [Folded, False: 1.72k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  535|  1.72k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (535:10): [Folded, False: 1.72k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1007|  1.72k|	} \
  |  | 1008|  1.72k|} while (0)
  |  |  ------------------
  |  |  |  Branch (1008:10): [Folded, False: 1.72k]
  |  |  ------------------
  ------------------
 5511|  1.72k|				sctp_sorwakeup(inp, so);
  ------------------
  |  | 1032|  1.72k|#define sctp_sorwakeup(inp, so) \
  |  | 1033|  1.72k|do { \
  |  | 1034|  1.72k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|  3.45k|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1034:6): [True: 0, False: 1.72k]
  |  |  ------------------
  |  | 1035|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEINPUT); \
  |  |  ------------------
  |  |  |  |  543|      0|#define SCTP_PCB_FLAGS_WAKEINPUT	0x02000000
  |  |  ------------------
  |  | 1036|  1.72k|	} else { \
  |  | 1037|  1.72k|		sorwakeup(so); \
  |  |  ------------------
  |  |  |  |  519|  1.72k|#define	sorwakeup(so) do {						\
  |  |  |  |  520|  1.72k|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  517|  1.72k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  1.72k|	do {                         \
  |  |  |  |  |  |  |  |  113|  1.72k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.72k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.72k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.72k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  521|  1.72k|	sorwakeup_locked(so);						\
  |  |  |  |  ------------------
  |  |  |  |  |  |  511|  1.72k|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  |  |  512|  1.72k|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  514|  1.72k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|  1.72k|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|  1.72k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.72k]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.72k|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.72k]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  513|  1.72k|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  499|  1.72k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|  1.72k|#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.72k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  205|  1.72k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (499:23): [True: 1.72k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  500|  1.72k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|  1.72k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  208|  1.72k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|  1.72k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  1.72k|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  |  |  515|  1.72k|	else								\
  |  |  |  |  |  |  516|  1.72k|		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.72k|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (517:10): [Folded, False: 1.72k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  522|  1.72k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (522:10): [Folded, False: 1.72k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1038|  1.72k|	} \
  |  | 1039|  1.72k|} while (0)
  |  |  ------------------
  |  |  |  Branch (1039:10): [Folded, False: 1.72k]
  |  |  ------------------
  ------------------
 5512|  1.72k|				SCTP_SOWAKEUP(so);
  ------------------
  |  |  966|  1.72k|#define SCTP_SOWAKEUP(so)	wakeup(&(so)->so_timeo, so)
  ------------------
 5513|  1.72k|			}
 5514|  11.1k|		}
 5515|  11.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|  11.1k|	if (from_inpcbfree == SCTP_NORMAL_PROC) {
  ------------------
  |  |  808|  11.1k|#define SCTP_NORMAL_PROC      0
  ------------------
  |  Branch (5521:6): [True: 1.75k, False: 9.39k]
  ------------------
 5522|  1.75k|		atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|  1.75k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 5523|  1.75k|	}
 5524|  11.1k|	if (stcb->asoc.refcnt) {
  ------------------
  |  Branch (5524:6): [True: 0, False: 11.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|  11.1k|	asoc->state = 0;
 5535|  11.1k|	if (inp->sctp_tcbhash) {
  ------------------
  |  Branch (5535:6): [True: 11.1k, False: 0]
  ------------------
 5536|  11.1k|		LIST_REMOVE(stcb, sctp_tcbhash);
  ------------------
  |  Branch (5536:3): [True: 0, False: 11.1k]
  |  Branch (5536:3): [Folded, False: 11.1k]
  ------------------
 5537|  11.1k|	}
 5538|  11.1k|	if (stcb->asoc.in_asocid_hash) {
  ------------------
  |  Branch (5538:6): [True: 11.1k, False: 0]
  ------------------
 5539|  11.1k|		LIST_REMOVE(stcb, sctp_tcbasocidhash);
  ------------------
  |  Branch (5539:3): [True: 0, False: 11.1k]
  |  Branch (5539:3): [Folded, False: 11.1k]
  ------------------
 5540|  11.1k|	}
 5541|  11.1k|	if (inp->sctp_socket == NULL) {
  ------------------
  |  Branch (5541:6): [True: 9.42k, False: 1.72k]
  ------------------
 5542|  9.42k|		stcb->sctp_socket = NULL;
 5543|  9.42k|	}
 5544|       |	/* Now lets remove it from the list of ALL associations in the EP */
 5545|  11.1k|	LIST_REMOVE(stcb, sctp_tcblist);
  ------------------
  |  Branch (5545:2): [True: 0, False: 11.1k]
  |  Branch (5545:2): [Folded, False: 11.1k]
  ------------------
 5546|  11.1k|	if (from_inpcbfree == SCTP_NORMAL_PROC) {
  ------------------
  |  |  808|  11.1k|#define SCTP_NORMAL_PROC      0
  ------------------
  |  Branch (5546:6): [True: 1.75k, False: 9.39k]
  ------------------
 5547|  1.75k|		SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|  1.75k|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|  1.75k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 5548|  1.75k|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  1.75k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5549|  1.75k|	}
 5550|       |	/* pull from vtag hash */
 5551|  11.1k|	LIST_REMOVE(stcb, sctp_asocs);
  ------------------
  |  Branch (5551:2): [True: 2, False: 11.1k]
  |  Branch (5551:2): [Folded, False: 11.1k]
  ------------------
 5552|  11.1k|	sctp_add_vtag_to_timewait(asoc->my_vtag, inp->sctp_lport, stcb->rport);
  ------------------
  |  |  426|  11.1k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  11.1k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  11.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|  11.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.80M|	for (i = 0; i < asoc->streamoutcnt; i++) {
  ------------------
  |  Branch (5564:14): [True: 2.79M, False: 11.1k]
  ------------------
 5565|  2.79M|		struct sctp_stream_out *outs;
 5566|       |
 5567|  2.79M|		outs = &asoc->strmout[i];
 5568|       |		/* now clean up any chunks here */
 5569|  2.79M|		TAILQ_FOREACH_SAFE(sp, &outs->outqueue, next, nsp) {
  ------------------
  |  | 1129|  2.79M|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  2.79M|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 105, False: 2.79M]
  |  |  |  Branch (1130:24): [True: 105, False: 0]
  |  |  ------------------
  |  | 1131|  2.79M|              (var) = (tvar))
  ------------------
 5570|    105|			atomic_subtract_int(&asoc->stream_queue_cnt, 1);
  ------------------
  |  |   97|    105|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 5571|    105|			TAILQ_REMOVE(&outs->outqueue, sp, next);
  ------------------
  |  Branch (5571:4): [True: 0, False: 105]
  |  Branch (5571:4): [Folded, False: 105]
  ------------------
 5572|    105|			stcb->asoc.ss_functions.sctp_ss_remove_from_stream(stcb, asoc, outs, sp);
 5573|    105|			sctp_free_spbufspace(stcb, asoc, sp);
  ------------------
  |  |  270|    105|#define sctp_free_spbufspace(stcb, asoc, sp)  \
  |  |  271|    105|do { \
  |  |  272|    105|	if (sp->data != NULL) { \
  |  |  ------------------
  |  |  |  Branch (272:6): [True: 105, False: 0]
  |  |  ------------------
  |  |  273|    105|		if ((asoc)->total_output_queue_size >= sp->length) { \
  |  |  ------------------
  |  |  |  Branch (273:7): [True: 105, False: 0]
  |  |  ------------------
  |  |  274|    105|			atomic_subtract_int(&(asoc)->total_output_queue_size, sp->length); \
  |  |  ------------------
  |  |  |  |   97|    105|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  275|    105|		} else { \
  |  |  276|      0|			(asoc)->total_output_queue_size = 0; \
  |  |  277|      0|		} \
  |  |  278|    105|		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: 105]
  |  |  |  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|    105|	} \
  |  |  283|    105|} while (0)
  |  |  ------------------
  |  |  |  Branch (283:10): [Folded, False: 105]
  |  |  ------------------
  ------------------
 5574|    105|			if (sp->data) {
  ------------------
  |  Branch (5574:8): [True: 105, False: 0]
  ------------------
 5575|    105|				if (so) {
  ------------------
  |  Branch (5575:9): [True: 0, False: 105]
  ------------------
 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|    105|				if (sp->data) {
  ------------------
  |  Branch (5580:9): [True: 105, False: 0]
  ------------------
 5581|    105|					sctp_m_freem(sp->data);
  ------------------
  |  |   52|    105|#define sctp_m_freem m_freem
  ------------------
 5582|    105|					sp->data = NULL;
 5583|    105|					sp->tail_mbuf = NULL;
 5584|    105|					sp->length = 0;
 5585|    105|				}
 5586|    105|			}
 5587|    105|			if (sp->net) {
  ------------------
  |  Branch (5587:8): [True: 0, False: 105]
  ------------------
 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|    105|			sctp_free_a_strmoq(stcb, sp, SCTP_SO_LOCKED);
  ------------------
  |  |  125|    105|#define sctp_free_a_strmoq(_stcb, _strmoq, _so_locked) { \
  |  |  126|    105|	if ((_strmoq)->holds_key_ref) { \
  |  |  ------------------
  |  |  |  Branch (126:6): [True: 0, False: 105]
  |  |  ------------------
  |  |  127|      0|		sctp_auth_key_release(stcb, sp->auth_keyid, _so_locked); \
  |  |  128|      0|		(_strmoq)->holds_key_ref = 0; \
  |  |  129|      0|	} \
  |  |  130|    105|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_strmoq), (_strmoq)); \
  |  |  ------------------
  |  |  |  |  707|    105|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|    105|	free(element);  \
  |  |  |  |  709|    105|}
  |  |  ------------------
  |  |  131|    105|	SCTP_DECR_STRMOQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  691|    105|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_strmoq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|    105|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  132|    105|}
  ------------------
 5592|    105|		}
 5593|  2.79M|	}
 5594|       |	/*sa_ignore FREED_MEMORY*/
 5595|  11.1k|	TAILQ_FOREACH_SAFE(strrst, &asoc->resetHead, next_resp, nstrrst) {
  ------------------
  |  | 1129|  11.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  11.5k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 399, False: 11.1k]
  |  |  |  Branch (1130:24): [True: 399, False: 0]
  |  |  ------------------
  |  | 1131|  11.1k|              (var) = (tvar))
  ------------------
 5596|    399|		TAILQ_REMOVE(&asoc->resetHead, strrst, next_resp);
  ------------------
  |  Branch (5596:3): [True: 16, False: 383]
  |  Branch (5596:3): [Folded, False: 399]
  ------------------
 5597|    399|		SCTP_FREE(strrst, SCTP_M_STRESET);
  ------------------
  |  |  679|    399|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|    399|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 5598|    399|	}
 5599|  11.1k|	TAILQ_FOREACH_SAFE(sq, &asoc->pending_reply_queue, next, nsq) {
  ------------------
  |  | 1129|  11.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  11.3k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 238, False: 11.1k]
  |  |  |  Branch (1130:24): [True: 238, False: 0]
  |  |  ------------------
  |  | 1131|  11.1k|              (var) = (tvar))
  ------------------
 5600|    238|		TAILQ_REMOVE(&asoc->pending_reply_queue, sq, next);
  ------------------
  |  Branch (5600:3): [True: 159, False: 79]
  |  Branch (5600:3): [Folded, False: 238]
  ------------------
 5601|    238|		if (sq->data) {
  ------------------
  |  Branch (5601:7): [True: 238, False: 0]
  ------------------
 5602|    238|			sctp_m_freem(sq->data);
  ------------------
  |  |   52|    238|#define sctp_m_freem m_freem
  ------------------
 5603|    238|			sq->data = NULL;
 5604|    238|		}
 5605|    238|		sctp_free_remote_addr(sq->whoFrom);
  ------------------
  |  |  228|    238|#define sctp_free_remote_addr(__net) { \
  |  |  229|    238|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 238, False: 0]
  |  |  ------------------
  |  |  230|    238|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|    238|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|    238|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 238]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  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|    238|	} \
  |  |  245|    238|}
  ------------------
 5606|    238|		sq->whoFrom = NULL;
 5607|    238|		sq->stcb = NULL;
 5608|       |		/* Free the ctl entry */
 5609|    238|		sctp_free_a_readq(stcb, sq);
  ------------------
  |  |  105|    238|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|    238|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 238]
  |  |  ------------------
  |  |  107|    238|		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|    238|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|    238|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|    238|	free(element);  \
  |  |  |  |  709|    238|}
  |  |  ------------------
  |  |  109|    238|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|    238|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|    238|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|    238|}
  ------------------
 5610|       |		/*sa_ignore FREED_MEMORY*/
 5611|    238|	}
 5612|  19.0k|	TAILQ_FOREACH_SAFE(chk, &asoc->free_chunks, sctp_next, nchk) {
  ------------------
  |  | 1129|  11.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  30.1k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 19.0k, False: 11.1k]
  |  |  |  Branch (1130:24): [True: 19.0k, False: 0]
  |  |  ------------------
  |  | 1131|  19.0k|              (var) = (tvar))
  ------------------
 5613|  19.0k|		TAILQ_REMOVE(&asoc->free_chunks, chk, sctp_next);
  ------------------
  |  Branch (5613:3): [True: 11.0k, False: 7.92k]
  |  Branch (5613:3): [Folded, False: 19.0k]
  ------------------
 5614|  19.0k|		if (chk->data) {
  ------------------
  |  Branch (5614:7): [True: 0, False: 19.0k]
  ------------------
 5615|      0|			sctp_m_freem(chk->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 5616|      0|			chk->data = NULL;
 5617|      0|		}
 5618|  19.0k|		if (chk->holds_key_ref)
  ------------------
  |  Branch (5618:7): [True: 0, False: 19.0k]
  ------------------
 5619|      0|			sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5620|  19.0k|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
  ------------------
  |  |  707|  19.0k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  19.0k|	free(element);  \
  |  |  709|  19.0k|}
  ------------------
 5621|  19.0k|		SCTP_DECR_CHK_COUNT();
  ------------------
  |  |  679|  19.0k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  ------------------
  |  |  |  |   97|  19.0k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5622|  19.0k|		atomic_subtract_int(&SCTP_BASE_INFO(ipi_free_chunks), 1);
  ------------------
  |  |   97|  19.0k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 5623|  19.0k|		asoc->free_chunk_cnt--;
 5624|       |		/*sa_ignore FREED_MEMORY*/
 5625|  19.0k|	}
 5626|       |	/* pending send queue SHOULD be empty */
 5627|  11.1k|	TAILQ_FOREACH_SAFE(chk, &asoc->send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  11.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  12.5k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 1.42k, False: 11.1k]
  |  |  |  Branch (1130:24): [True: 1.42k, False: 0]
  |  |  ------------------
  |  | 1131|  11.1k|              (var) = (tvar))
  ------------------
 5628|  1.42k|		if (asoc->strmout[chk->rec.data.sid].chunks_on_queues > 0) {
  ------------------
  |  Branch (5628:7): [True: 1.42k, False: 0]
  ------------------
 5629|  1.42k|			asoc->strmout[chk->rec.data.sid].chunks_on_queues--;
 5630|  1.42k|#ifdef INVARIANTS
 5631|  1.42k|		} 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.42k|		TAILQ_REMOVE(&asoc->send_queue, chk, sctp_next);
  ------------------
  |  Branch (5635:3): [True: 0, False: 1.42k]
  |  Branch (5635:3): [Folded, False: 1.42k]
  ------------------
 5636|  1.42k|		if (chk->data) {
  ------------------
  |  Branch (5636:7): [True: 1.42k, False: 0]
  ------------------
 5637|  1.42k|			if (so) {
  ------------------
  |  Branch (5637:8): [True: 0, False: 1.42k]
  ------------------
 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.42k|			if (chk->data) {
  ------------------
  |  Branch (5642:8): [True: 1.42k, False: 0]
  ------------------
 5643|  1.42k|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|  1.42k|#define sctp_m_freem m_freem
  ------------------
 5644|  1.42k|				chk->data = NULL;
 5645|  1.42k|			}
 5646|  1.42k|		}
 5647|  1.42k|		if (chk->holds_key_ref)
  ------------------
  |  Branch (5647:7): [True: 0, False: 1.42k]
  ------------------
 5648|      0|			sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5649|  1.42k|		if (chk->whoTo) {
  ------------------
  |  Branch (5649:7): [True: 0, False: 1.42k]
  ------------------
 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.42k|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
  ------------------
  |  |  707|  1.42k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  1.42k|	free(element);  \
  |  |  709|  1.42k|}
  ------------------
 5654|  1.42k|		SCTP_DECR_CHK_COUNT();
  ------------------
  |  |  679|  1.42k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  ------------------
  |  |  |  |   97|  1.42k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5655|       |		/*sa_ignore FREED_MEMORY*/
 5656|  1.42k|	}
 5657|       |	/* sent queue SHOULD be empty */
 5658|  11.1k|	TAILQ_FOREACH_SAFE(chk, &asoc->sent_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  11.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  14.4k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 3.24k, False: 11.1k]
  |  |  |  Branch (1130:24): [True: 3.24k, False: 0]
  |  |  ------------------
  |  | 1131|  11.1k|              (var) = (tvar))
  ------------------
 5659|  3.24k|		if (chk->sent != SCTP_DATAGRAM_NR_ACKED) {
  ------------------
  |  |  358|  3.24k|#define SCTP_DATAGRAM_NR_ACKED		40010
  ------------------
  |  Branch (5659:7): [True: 3.24k, False: 0]
  ------------------
 5660|  3.24k|			if (asoc->strmout[chk->rec.data.sid].chunks_on_queues > 0) {
  ------------------
  |  Branch (5660:8): [True: 3.24k, False: 0]
  ------------------
 5661|  3.24k|				asoc->strmout[chk->rec.data.sid].chunks_on_queues--;
 5662|  3.24k|#ifdef INVARIANTS
 5663|  3.24k|			} 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|  3.24k|		}
 5668|  3.24k|		TAILQ_REMOVE(&asoc->sent_queue, chk, sctp_next);
  ------------------
  |  Branch (5668:3): [True: 320, False: 2.92k]
  |  Branch (5668:3): [Folded, False: 3.24k]
  ------------------
 5669|  3.24k|		if (chk->data) {
  ------------------
  |  Branch (5669:7): [True: 3.24k, False: 0]
  ------------------
 5670|  3.24k|			if (so) {
  ------------------
  |  Branch (5670:8): [True: 0, False: 3.24k]
  ------------------
 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|  3.24k|			if (chk->data) {
  ------------------
  |  Branch (5675:8): [True: 3.24k, False: 0]
  ------------------
 5676|  3.24k|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|  3.24k|#define sctp_m_freem m_freem
  ------------------
 5677|  3.24k|				chk->data = NULL;
 5678|  3.24k|			}
 5679|  3.24k|		}
 5680|  3.24k|		if (chk->holds_key_ref)
  ------------------
  |  Branch (5680:7): [True: 0, False: 3.24k]
  ------------------
 5681|      0|			sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5682|  3.24k|		sctp_free_remote_addr(chk->whoTo);
  ------------------
  |  |  228|  3.24k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  3.24k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 3.24k, False: 0]
  |  |  ------------------
  |  |  230|  3.24k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  3.24k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  3.24k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 3.24k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  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.24k|	} \
  |  |  245|  3.24k|}
  ------------------
 5683|  3.24k|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
  ------------------
  |  |  707|  3.24k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  3.24k|	free(element);  \
  |  |  709|  3.24k|}
  ------------------
 5684|  3.24k|		SCTP_DECR_CHK_COUNT();
  ------------------
  |  |  679|  3.24k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  ------------------
  |  |  |  |   97|  3.24k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5685|       |		/*sa_ignore FREED_MEMORY*/
 5686|  3.24k|	}
 5687|  11.1k|#ifdef INVARIANTS
 5688|  2.80M|	for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (5688:14): [True: 2.79M, False: 11.1k]
  ------------------
 5689|  2.79M|		if (stcb->asoc.strmout[i].chunks_on_queues > 0) {
  ------------------
  |  Branch (5689:7): [True: 0, False: 2.79M]
  ------------------
 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.79M|	}
 5693|  11.1k|#endif
 5694|       |	/* control queue MAY not be empty */
 5695|  17.7k|	TAILQ_FOREACH_SAFE(chk, &asoc->control_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  11.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  28.8k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 17.7k, False: 11.1k]
  |  |  |  Branch (1130:24): [True: 17.7k, False: 0]
  |  |  ------------------
  |  | 1131|  17.7k|              (var) = (tvar))
  ------------------
 5696|  17.7k|		TAILQ_REMOVE(&asoc->control_send_queue, chk, sctp_next);
  ------------------
  |  Branch (5696:3): [True: 11.9k, False: 5.75k]
  |  Branch (5696:3): [Folded, False: 17.7k]
  ------------------
 5697|  17.7k|		if (chk->data) {
  ------------------
  |  Branch (5697:7): [True: 17.7k, False: 0]
  ------------------
 5698|  17.7k|			sctp_m_freem(chk->data);
  ------------------
  |  |   52|  17.7k|#define sctp_m_freem m_freem
  ------------------
 5699|  17.7k|			chk->data = NULL;
 5700|  17.7k|		}
 5701|  17.7k|		if (chk->holds_key_ref)
  ------------------
  |  Branch (5701:7): [True: 0, False: 17.7k]
  ------------------
 5702|      0|			sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
  ------------------
  |  |  959|      0|#define SCTP_SO_LOCKED		1
  ------------------
 5703|  17.7k|		sctp_free_remote_addr(chk->whoTo);
  ------------------
  |  |  228|  17.7k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  17.7k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 14.3k, False: 3.36k]
  |  |  ------------------
  |  |  230|  14.3k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  14.3k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  14.3k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 136, False: 14.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|    136|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 136, False: 0]
  |  |  ------------------
  |  |  232|    136|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|    136|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|    136|		RT_LOCK(_rt);					\
  |  |  |  |  128|    136|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|    136|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|    136|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 136, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|    136|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|    136|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|    136|		} 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|    136|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|    136|		_rt = NULL;					\
  |  |  |  |  |  |  125|    136|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 136]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|    136|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 136]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|    136|				(__net)->ro.ro_rt = NULL; \
  |  |  234|    136|			} \
  |  |  235|    136|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 136]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|    136|			(__net)->src_addr_selected = 0; \
  |  |  240|    136|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|    136|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|    136|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|    136|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|    136|	free(element);  \
  |  |  |  |  709|    136|}
  |  |  ------------------
  |  |  242|    136|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|    136|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|    136|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|    136|		} \
  |  |  244|  14.3k|	} \
  |  |  245|  17.7k|}
  ------------------
 5704|  17.7k|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
  ------------------
  |  |  707|  17.7k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  17.7k|	free(element);  \
  |  |  709|  17.7k|}
  ------------------
 5705|  17.7k|		SCTP_DECR_CHK_COUNT();
  ------------------
  |  |  679|  17.7k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  ------------------
  |  |  |  |   97|  17.7k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5706|       |		/*sa_ignore FREED_MEMORY*/
 5707|  17.7k|	}
 5708|       |	/* ASCONF queue MAY not be empty */
 5709|  11.1k|	TAILQ_FOREACH_SAFE(chk, &asoc->asconf_send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  11.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  11.1k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 11.1k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  11.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|  11.1k|	if (asoc->mapping_array) {
  ------------------
  |  Branch (5722:6): [True: 11.1k, False: 0]
  ------------------
 5723|  11.1k|		SCTP_FREE(asoc->mapping_array, SCTP_M_MAP);
  ------------------
  |  |  679|  11.1k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  11.1k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 5724|  11.1k|		asoc->mapping_array = NULL;
 5725|  11.1k|	}
 5726|  11.1k|	if (asoc->nr_mapping_array) {
  ------------------
  |  Branch (5726:6): [True: 11.1k, False: 0]
  ------------------
 5727|  11.1k|		SCTP_FREE(asoc->nr_mapping_array, SCTP_M_MAP);
  ------------------
  |  |  679|  11.1k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  11.1k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 5728|  11.1k|		asoc->nr_mapping_array = NULL;
 5729|  11.1k|	}
 5730|       |	/* the stream outs */
 5731|  11.1k|	if (asoc->strmout) {
  ------------------
  |  Branch (5731:6): [True: 11.1k, False: 0]
  ------------------
 5732|  11.1k|		SCTP_FREE(asoc->strmout, SCTP_M_STRMO);
  ------------------
  |  |  679|  11.1k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  11.1k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 5733|  11.1k|		asoc->strmout = NULL;
 5734|  11.1k|	}
 5735|  11.1k|	asoc->strm_realoutsize = asoc->streamoutcnt = 0;
 5736|  11.1k|	if (asoc->strmin) {
  ------------------
  |  Branch (5736:6): [True: 8.92k, False: 2.22k]
  ------------------
 5737|  2.24M|		for (i = 0; i < asoc->streamincnt; i++) {
  ------------------
  |  Branch (5737:15): [True: 2.23M, False: 8.92k]
  ------------------
 5738|  2.23M|			sctp_clean_up_stream(stcb, &asoc->strmin[i].inqueue);
 5739|  2.23M|			sctp_clean_up_stream(stcb, &asoc->strmin[i].uno_inqueue);
 5740|  2.23M|		}
 5741|  8.92k|		SCTP_FREE(asoc->strmin, SCTP_M_STRMI);
  ------------------
  |  |  679|  8.92k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  8.92k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 5742|  8.92k|		asoc->strmin = NULL;
 5743|  8.92k|	}
 5744|  11.1k|	asoc->streamincnt = 0;
 5745|  16.1k|	TAILQ_FOREACH_SAFE(net, &asoc->nets, sctp_next, nnet) {
  ------------------
  |  | 1129|  11.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  27.2k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 16.1k, False: 11.1k]
  |  |  |  Branch (1130:24): [True: 16.1k, False: 0]
  |  |  ------------------
  |  | 1131|  16.1k|              (var) = (tvar))
  ------------------
 5746|  16.1k|#ifdef INVARIANTS
 5747|  16.1k|		if (SCTP_BASE_INFO(ipi_count_raddr) == 0) {
  ------------------
  |  |  587|  16.1k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
  |  Branch (5747:7): [True: 0, False: 16.1k]
  ------------------
 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|  16.1k|#endif
 5751|  16.1k|		TAILQ_REMOVE(&asoc->nets, net, sctp_next);
  ------------------
  |  Branch (5751:3): [True: 4.98k, False: 11.1k]
  |  Branch (5751:3): [Folded, False: 16.1k]
  ------------------
 5752|  16.1k|		sctp_free_remote_addr(net);
  ------------------
  |  |  228|  16.1k|#define sctp_free_remote_addr(__net) { \
  |  |  229|  16.1k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 16.1k, False: 0]
  |  |  ------------------
  |  |  230|  16.1k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|  16.1k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|  16.1k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 14.3k, False: 1.77k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|  14.3k|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 14.3k, False: 0]
  |  |  ------------------
  |  |  232|  14.3k|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|  14.3k|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|  14.3k|		RT_LOCK(_rt);					\
  |  |  |  |  128|  14.3k|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|  14.3k|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|  14.3k|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 14.3k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|  14.3k|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|  14.3k|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|  14.3k|		} 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|  14.3k|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|  14.3k|		_rt = NULL;					\
  |  |  |  |  |  |  125|  14.3k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 14.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|  14.3k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 14.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|  14.3k|				(__net)->ro.ro_rt = NULL; \
  |  |  234|  14.3k|			} \
  |  |  235|  14.3k|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 14.3k]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|  14.3k|			(__net)->src_addr_selected = 0; \
  |  |  240|  14.3k|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|  14.3k|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|  14.3k|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|  14.3k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|  14.3k|	free(element);  \
  |  |  |  |  709|  14.3k|}
  |  |  ------------------
  |  |  242|  14.3k|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|  14.3k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|  14.3k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|  14.3k|		} \
  |  |  244|  16.1k|	} \
  |  |  245|  16.1k|}
  ------------------
 5753|  16.1k|	}
 5754|  11.1k|	LIST_FOREACH_SAFE(laddr, &asoc->sctp_restricted_addrs, sctp_nxt_addr, naddr) {
  ------------------
  |  | 1135|  11.1k|         for ((var) = ((head)->lh_first);                      \
  |  | 1136|  11.1k|              (var) && ((tvar) = LIST_NEXT((var), field), 1);  \
  |  |  ------------------
  |  |  |  Branch (1136:15): [True: 0, False: 11.1k]
  |  |  |  Branch (1136:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1137|  11.1k|              (var) = (tvar))
  ------------------
 5755|       |		/*sa_ignore FREED_MEMORY*/
 5756|      0|		sctp_remove_laddr(laddr);
 5757|      0|	}
 5758|       |
 5759|       |	/* pending asconf (address) parameters */
 5760|  11.1k|	TAILQ_FOREACH_SAFE(aparam, &asoc->asconf_queue, next, naparam) {
  ------------------
  |  | 1129|  11.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  11.1k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 11.1k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  11.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|  11.1k|	TAILQ_FOREACH_SAFE(aack, &asoc->asconf_ack_sent, next, naack) {
  ------------------
  |  | 1129|  11.1k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  12.4k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 1.34k, False: 11.1k]
  |  |  |  Branch (1130:24): [True: 1.34k, False: 0]
  |  |  ------------------
  |  | 1131|  11.1k|              (var) = (tvar))
  ------------------
 5766|       |		/*sa_ignore FREED_MEMORY*/
 5767|  1.34k|		TAILQ_REMOVE(&asoc->asconf_ack_sent, aack, next);
  ------------------
  |  Branch (5767:3): [True: 35, False: 1.30k]
  |  Branch (5767:3): [Folded, False: 1.34k]
  ------------------
 5768|  1.34k|		if (aack->data != NULL) {
  ------------------
  |  Branch (5768:7): [True: 1.34k, False: 0]
  ------------------
 5769|  1.34k|			sctp_m_freem(aack->data);
  ------------------
  |  |   52|  1.34k|#define sctp_m_freem m_freem
  ------------------
 5770|  1.34k|		}
 5771|  1.34k|		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_asconf_ack), aack);
  ------------------
  |  |  707|  1.34k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  1.34k|	free(element);  \
  |  |  709|  1.34k|}
  ------------------
 5772|  1.34k|	}
 5773|       |	/* clean up auth stuff */
 5774|  11.1k|	if (asoc->local_hmacs)
  ------------------
  |  Branch (5774:6): [True: 11.1k, False: 0]
  ------------------
 5775|  11.1k|		sctp_free_hmaclist(asoc->local_hmacs);
 5776|  11.1k|	if (asoc->peer_hmacs)
  ------------------
  |  Branch (5776:6): [True: 8.15k, False: 3.00k]
  ------------------
 5777|  8.15k|		sctp_free_hmaclist(asoc->peer_hmacs);
 5778|       |
 5779|  11.1k|	if (asoc->local_auth_chunks)
  ------------------
  |  Branch (5779:6): [True: 11.1k, False: 0]
  ------------------
 5780|  11.1k|		sctp_free_chunklist(asoc->local_auth_chunks);
 5781|  11.1k|	if (asoc->peer_auth_chunks)
  ------------------
  |  Branch (5781:6): [True: 8.26k, False: 2.89k]
  ------------------
 5782|  8.26k|		sctp_free_chunklist(asoc->peer_auth_chunks);
 5783|       |
 5784|  11.1k|	sctp_free_authinfo(&asoc->authinfo);
 5785|       |
 5786|  11.1k|	LIST_FOREACH_SAFE(shared_key, &asoc->shared_keys, next, nshared_key) {
  ------------------
  |  | 1135|  11.1k|         for ((var) = ((head)->lh_first);                      \
  |  | 1136|  22.3k|              (var) && ((tvar) = LIST_NEXT((var), field), 1);  \
  |  |  ------------------
  |  |  |  Branch (1136:15): [True: 11.1k, False: 11.1k]
  |  |  |  Branch (1136:24): [True: 11.1k, False: 0]
  |  |  ------------------
  |  | 1137|  11.1k|              (var) = (tvar))
  ------------------
 5787|  11.1k|		LIST_REMOVE(shared_key, next);
  ------------------
  |  Branch (5787:3): [True: 0, False: 11.1k]
  |  Branch (5787:3): [Folded, False: 11.1k]
  ------------------
 5788|  11.1k|		sctp_free_sharedkey(shared_key);
 5789|       |		/*sa_ignore FREED_MEMORY*/
 5790|  11.1k|	}
 5791|       |
 5792|       |	/* Insert new items here :> */
 5793|       |
 5794|       |	/* Get rid of LOCK */
 5795|  11.1k|	SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  11.1k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5796|  11.1k|	SCTP_TCB_LOCK_DESTROY(stcb);
  ------------------
  |  |  456|  11.1k|	(void)pthread_mutex_destroy(&(_tcb)->tcb_mtx)
  ------------------
 5797|  11.1k|	if (from_inpcbfree == SCTP_NORMAL_PROC) {
  ------------------
  |  |  808|  11.1k|#define SCTP_NORMAL_PROC      0
  ------------------
  |  Branch (5797:6): [True: 1.75k, False: 9.39k]
  ------------------
 5798|  1.75k|		SCTP_INP_INFO_WUNLOCK();
  ------------------
  |  |  301|  1.75k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5799|  1.75k|		SCTP_INP_RLOCK(inp);
  ------------------
  |  |  376|  1.75k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5800|  1.75k|	}
 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|  11.1k|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_asoc), stcb);
  ------------------
  |  |  707|  11.1k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  11.1k|	free(element);  \
  |  |  709|  11.1k|}
  ------------------
 5815|  11.1k|	SCTP_DECR_ASOC_COUNT();
  ------------------
  |  |  661|  11.1k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_asoc), 1)
  |  |  ------------------
  |  |  |  |   97|  11.1k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5816|  11.1k|#endif
 5817|  11.1k|	if (from_inpcbfree == SCTP_NORMAL_PROC) {
  ------------------
  |  |  808|  11.1k|#define SCTP_NORMAL_PROC      0
  ------------------
  |  Branch (5817:6): [True: 1.75k, False: 9.39k]
  ------------------
 5818|  1.75k|		if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  ------------------
  |  |  546|  1.75k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (5818:7): [True: 28, False: 1.72k]
  ------------------
 5819|       |			/* If its NOT the inp_free calling us AND
 5820|       |			 * sctp_close as been called, we
 5821|       |			 * call back...
 5822|       |			 */
 5823|     28|			SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|     28|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     28|	do {                         \
  |  |  |  |  113|     28|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 28]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     28|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 28]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 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|     28|			sctp_inpcb_free(inp,
 5832|     28|					SCTP_FREE_SHOULD_USE_GRACEFUL_CLOSE,
  ------------------
  |  |  870|     28|#define SCTP_FREE_SHOULD_USE_GRACEFUL_CLOSE 0
  ------------------
 5833|     28|					SCTP_CALLED_DIRECTLY_NOCMPSET);
  ------------------
  |  |  865|     28|#define SCTP_CALLED_DIRECTLY_NOCMPSET     0
  ------------------
 5834|     28|			SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|     28|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|     28|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5835|  1.72k|		} else {
 5836|       |			/* The socket is still open. */
 5837|  1.72k|			SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|  1.72k|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|  1.72k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 5838|  1.72k|			SCTP_INP_RUNLOCK(inp);
  ------------------
  |  |  381|  1.72k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.72k|	do {                         \
  |  |  |  |  113|  1.72k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.72k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.72k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.72k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5839|  1.72k|		}
 5840|  1.75k|	}
 5841|       |	/* destroyed the asoc */
 5842|       |#ifdef SCTP_LOG_CLOSING
 5843|       |	sctp_log_closing(inp, NULL, 11);
 5844|       |#endif
 5845|  11.1k|	return (1);
 5846|  11.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.92k|{
 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.92k|	struct sctp_inpcb *inp;
 6882|  8.92k|	struct sctp_nets *net, *nnet, *net_tmp;
 6883|  8.92k|	struct sctp_paramhdr *phdr, param_buf;
 6884|  8.92k|	struct sctp_tcb *stcb_tmp;
 6885|  8.92k|	uint16_t ptype, plen;
 6886|  8.92k|	struct sockaddr *sa;
 6887|  8.92k|	uint8_t random_store[SCTP_PARAM_BUFFER_SIZE];
 6888|  8.92k|	struct sctp_auth_random *p_random = NULL;
 6889|  8.92k|	uint16_t random_len = 0;
 6890|  8.92k|	uint8_t hmacs_store[SCTP_PARAM_BUFFER_SIZE];
 6891|  8.92k|	struct sctp_auth_hmac_algo *hmacs = NULL;
 6892|  8.92k|	uint16_t hmacs_len = 0;
 6893|  8.92k|	uint8_t saw_asconf = 0;
 6894|  8.92k|	uint8_t saw_asconf_ack = 0;
 6895|  8.92k|	uint8_t chunks_store[SCTP_PARAM_BUFFER_SIZE];
 6896|  8.92k|	struct sctp_auth_chunk_list *chunks = NULL;
 6897|  8.92k|	uint16_t num_chunks = 0;
 6898|  8.92k|	sctp_key_t *new_key;
 6899|  8.92k|	uint32_t keylen;
 6900|  8.92k|	int got_random = 0, got_hmacs = 0, got_chklist = 0;
 6901|  8.92k|	uint8_t peer_supports_ecn;
 6902|  8.92k|	uint8_t peer_supports_prsctp;
 6903|  8.92k|	uint8_t peer_supports_auth;
 6904|  8.92k|	uint8_t peer_supports_asconf;
 6905|  8.92k|	uint8_t peer_supports_asconf_ack;
 6906|  8.92k|	uint8_t peer_supports_reconfig;
 6907|  8.92k|	uint8_t peer_supports_nrsack;
 6908|  8.92k|	uint8_t peer_supports_pktdrop;
 6909|  8.92k|	uint8_t peer_supports_idata;
 6910|  8.92k|#ifdef INET
 6911|  8.92k|	struct sockaddr_in sin;
 6912|  8.92k|#endif
 6913|  8.92k|#ifdef INET6
 6914|  8.92k|	struct sockaddr_in6 sin6;
 6915|  8.92k|#endif
 6916|       |
 6917|       |	/* First get the destination address setup too. */
 6918|  8.92k|#ifdef INET
 6919|  8.92k|	memset(&sin, 0, sizeof(sin));
 6920|  8.92k|	sin.sin_family = AF_INET;
 6921|       |#ifdef HAVE_SIN_LEN
 6922|       |	sin.sin_len = sizeof(sin);
 6923|       |#endif
 6924|  8.92k|	sin.sin_port = stcb->rport;
 6925|  8.92k|#endif
 6926|  8.92k|#ifdef INET6
 6927|  8.92k|	memset(&sin6, 0, sizeof(sin6));
 6928|  8.92k|	sin6.sin6_family = AF_INET6;
 6929|       |#ifdef HAVE_SIN6_LEN
 6930|       |	sin6.sin6_len = sizeof(struct sockaddr_in6);
 6931|       |#endif
 6932|  8.92k|	sin6.sin6_port = stcb->rport;
 6933|  8.92k|#endif
 6934|  8.92k|	if (altsa) {
  ------------------
  |  Branch (6934:6): [True: 0, False: 8.92k]
  ------------------
 6935|      0|		sa = altsa;
 6936|  8.92k|	} else {
 6937|  8.92k|		sa = src;
 6938|  8.92k|	}
 6939|  8.92k|	peer_supports_idata = 0;
 6940|  8.92k|	peer_supports_ecn = 0;
 6941|  8.92k|	peer_supports_prsctp = 0;
 6942|  8.92k|	peer_supports_auth = 0;
 6943|  8.92k|	peer_supports_asconf = 0;
 6944|  8.92k|	peer_supports_asconf_ack = 0;
 6945|  8.92k|	peer_supports_reconfig = 0;
 6946|  8.92k|	peer_supports_nrsack = 0;
 6947|  8.92k|	peer_supports_pktdrop = 0;
 6948|  8.92k|	TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (6948:2): [True: 8.92k, False: 8.92k]
  ------------------
 6949|       |		/* mark all addresses that we have currently on the list */
 6950|  8.92k|		net->dest_state |= SCTP_ADDR_NOT_IN_ASSOC;
  ------------------
  |  |  485|  8.92k|#define SCTP_ADDR_NOT_IN_ASSOC		0x010
  ------------------
 6951|  8.92k|	}
 6952|       |	/* does the source address already exist? if so skip it */
 6953|  8.92k|	inp = stcb->sctp_ep;
 6954|  8.92k|	atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|  8.92k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 6955|  8.92k|	stcb_tmp = sctp_findassociation_ep_addr(&inp, sa, &net_tmp, dst, stcb);
 6956|  8.92k|	atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|  8.92k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 6957|       |
 6958|  8.92k|	if ((stcb_tmp == NULL && inp == stcb->sctp_ep) || inp == NULL) {
  ------------------
  |  Branch (6958:7): [True: 0, False: 8.92k]
  |  Branch (6958:27): [True: 0, False: 0]
  |  Branch (6958:52): [True: 0, False: 8.92k]
  ------------------
 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.92k|	} else {
 6993|  8.92k|		if (net_tmp != NULL && stcb_tmp == stcb) {
  ------------------
  |  Branch (6993:7): [True: 8.92k, False: 0]
  |  Branch (6993:26): [True: 8.92k, False: 0]
  ------------------
 6994|  8.92k|			net_tmp->dest_state &= ~SCTP_ADDR_NOT_IN_ASSOC;
  ------------------
  |  |  485|  8.92k|#define SCTP_ADDR_NOT_IN_ASSOC		0x010
  ------------------
 6995|  8.92k|		} 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.92k|	}
 7002|  8.92k|	if (stcb->asoc.state == 0) {
  ------------------
  |  Branch (7002:6): [True: 0, False: 8.92k]
  ------------------
 7003|       |		/* the assoc was freed? */
 7004|      0|		return (-4);
 7005|      0|	}
 7006|       |	/* now we must go through each of the params. */
 7007|  8.92k|	phdr = sctp_get_next_param(m, offset, &param_buf, sizeof(param_buf));
 7008|   130k|	while (phdr) {
  ------------------
  |  Branch (7008:9): [True: 130k, False: 170]
  ------------------
 7009|   130k|		ptype = ntohs(phdr->param_type);
 7010|   130k|		plen = ntohs(phdr->param_length);
 7011|       |		/*
 7012|       |		 * SCTP_PRINTF("ptype => %0x, plen => %d\n", (uint32_t)ptype,
 7013|       |		 * (int)plen);
 7014|       |		 */
 7015|   130k|		if (offset + plen > limit) {
  ------------------
  |  Branch (7015:7): [True: 16, False: 130k]
  ------------------
 7016|     16|			break;
 7017|     16|		}
 7018|   130k|		if (plen < sizeof(struct sctp_paramhdr)) {
  ------------------
  |  Branch (7018:7): [True: 4, False: 130k]
  ------------------
 7019|      4|			break;
 7020|      4|		}
 7021|   130k|#ifdef INET
 7022|   130k|		if (ptype == SCTP_IPV4_ADDRESS) {
  ------------------
  |  |  394|   130k|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
  |  Branch (7022:7): [True: 173, False: 130k]
  ------------------
 7023|    173|			if (stcb->asoc.scope.ipv4_addr_legal) {
  ------------------
  |  Branch (7023:8): [True: 0, False: 173]
  ------------------
 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|    173|		} else
 7111|   130k|#endif
 7112|   130k|#ifdef INET6
 7113|   130k|		if (ptype == SCTP_IPV6_ADDRESS) {
  ------------------
  |  |  395|   130k|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
  |  Branch (7113:7): [True: 97, False: 130k]
  ------------------
 7114|     97|			if (stcb->asoc.scope.ipv6_addr_legal) {
  ------------------
  |  Branch (7114:8): [True: 0, False: 97]
  ------------------
 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|     97|		} else
 7204|   130k|#endif
 7205|   130k|		if (ptype == SCTP_ECN_CAPABLE) {
  ------------------
  |  |  416|   130k|#define SCTP_ECN_CAPABLE		0x8000
  ------------------
  |  Branch (7205:7): [True: 14.2k, False: 116k]
  ------------------
 7206|  14.2k|			peer_supports_ecn = 1;
 7207|   116k|		} else if (ptype == SCTP_ULP_ADAPTATION) {
  ------------------
  |  |  435|   116k|#define SCTP_ULP_ADAPTATION		0xc006
  ------------------
  |  Branch (7207:14): [True: 8.47k, False: 107k]
  ------------------
 7208|  8.47k|			if (stcb->asoc.state != SCTP_STATE_OPEN) {
  ------------------
  |  |  459|  8.47k|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (7208:8): [True: 8.47k, False: 0]
  ------------------
 7209|  8.47k|				struct sctp_adaptation_layer_indication ai, *aip;
 7210|       |
 7211|  8.47k|				phdr = sctp_get_next_param(m, offset,
 7212|  8.47k|							   (struct sctp_paramhdr *)&ai, sizeof(ai));
 7213|  8.47k|				aip = (struct sctp_adaptation_layer_indication *)phdr;
 7214|  8.47k|				if (aip) {
  ------------------
  |  Branch (7214:9): [True: 8.46k, False: 2]
  ------------------
 7215|  8.46k|					stcb->asoc.peers_adaptation = ntohl(aip->indication);
 7216|  8.46k|					stcb->asoc.adaptation_needed = 1;
 7217|  8.46k|				}
 7218|  8.47k|			}
 7219|   107k|		} else if (ptype == SCTP_SET_PRIM_ADDR) {
  ------------------
  |  |  433|   107k|#define SCTP_SET_PRIM_ADDR		0xc004
  ------------------
  |  Branch (7219:14): [True: 1.36k, False: 106k]
  ------------------
 7220|  1.36k|			struct sctp_asconf_addr_param lstore, *fee;
 7221|  1.36k|			int lptype;
 7222|  1.36k|			struct sockaddr *lsa = NULL;
 7223|  1.36k|#ifdef INET
 7224|  1.36k|			struct sctp_asconf_addrv4_param *fii;
 7225|  1.36k|#endif
 7226|       |
 7227|  1.36k|			if (stcb->asoc.asconf_supported == 0) {
  ------------------
  |  Branch (7227:8): [True: 0, False: 1.36k]
  ------------------
 7228|      0|				return (-100);
 7229|      0|			}
 7230|  1.36k|			if (plen > sizeof(lstore)) {
  ------------------
  |  Branch (7230:8): [True: 0, False: 1.36k]
  ------------------
 7231|      0|				return (-23);
 7232|      0|			}
 7233|  1.36k|			if (plen < sizeof(struct sctp_asconf_addrv4_param)) {
  ------------------
  |  Branch (7233:8): [True: 1, False: 1.36k]
  ------------------
 7234|      1|				return (-101);
 7235|      1|			}
 7236|  1.36k|			phdr = sctp_get_next_param(m, offset,
 7237|  1.36k|						   (struct sctp_paramhdr *)&lstore,
 7238|  1.36k|						   plen);
 7239|  1.36k|			if (phdr == NULL) {
  ------------------
  |  Branch (7239:8): [True: 0, False: 1.36k]
  ------------------
 7240|      0|				return (-24);
 7241|      0|			}
 7242|  1.36k|			fee = (struct sctp_asconf_addr_param *)phdr;
 7243|  1.36k|			lptype = ntohs(fee->addrp.ph.param_type);
 7244|  1.36k|			switch (lptype) {
 7245|      0|#ifdef INET
 7246|    734|			case SCTP_IPV4_ADDRESS:
  ------------------
  |  |  394|    734|#define SCTP_IPV4_ADDRESS		0x0005
  ------------------
  |  Branch (7246:4): [True: 734, False: 626]
  ------------------
 7247|    734|				if (plen !=
  ------------------
  |  Branch (7247:9): [True: 55, False: 679]
  ------------------
 7248|    734|				    sizeof(struct sctp_asconf_addrv4_param)) {
 7249|     55|					SCTP_PRINTF("Sizeof setprim in init/init ack not %d but %d - ignored\n",
  ------------------
  |  |  548|     55|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|     55|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 55]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 7250|     55|						    (int)sizeof(struct sctp_asconf_addrv4_param),
 7251|     55|						    plen);
 7252|    679|				} else {
 7253|    679|					fii = (struct sctp_asconf_addrv4_param *)fee;
 7254|    679|					sin.sin_addr.s_addr = fii->addrp.addr;
 7255|    679|					lsa = (struct sockaddr *)&sin;
 7256|    679|				}
 7257|    734|				break;
 7258|      0|#endif
 7259|      0|#ifdef INET6
 7260|    163|			case SCTP_IPV6_ADDRESS:
  ------------------
  |  |  395|    163|#define SCTP_IPV6_ADDRESS		0x0006
  ------------------
  |  Branch (7260:4): [True: 163, False: 1.19k]
  ------------------
 7261|    163|				if (plen !=
  ------------------
  |  Branch (7261:9): [True: 44, False: 119]
  ------------------
 7262|    163|				    sizeof(struct sctp_asconf_addr_param)) {
 7263|     44|					SCTP_PRINTF("Sizeof setprim (v6) in init/init ack not %d but %d - ignored\n",
  ------------------
  |  |  548|     44|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  ------------------
  |  |  |  |  591|     44|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (591:28): [True: 0, False: 44]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  ------------------
  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  |  |  550|      0|	}
  ------------------
 7264|     44|						    (int)sizeof(struct sctp_asconf_addr_param),
 7265|     44|						    plen);
 7266|    119|				} else {
 7267|    119|					memcpy(sin6.sin6_addr.s6_addr,
 7268|    119|					       fee->addrp.addr,
 7269|    119|					       sizeof(fee->addrp.addr));
 7270|    119|					lsa = (struct sockaddr *)&sin6;
 7271|    119|				}
 7272|    163|				break;
 7273|      0|#endif
 7274|    463|			default:
  ------------------
  |  Branch (7274:4): [True: 463, False: 897]
  ------------------
 7275|    463|				break;
 7276|  1.36k|			}
 7277|  1.36k|			if (lsa) {
  ------------------
  |  Branch (7277:8): [True: 798, False: 562]
  ------------------
 7278|    798|				(void)sctp_set_primary_addr(stcb, sa, NULL);
 7279|    798|			}
 7280|   106k|		} else if (ptype == SCTP_HAS_NAT_SUPPORT) {
  ------------------
  |  |  437|   106k|#define SCTP_HAS_NAT_SUPPORT		0xc007
  ------------------
  |  Branch (7280:14): [True: 3.05k, False: 103k]
  ------------------
 7281|  3.05k|			stcb->asoc.peer_supports_nat = 1;
 7282|   103k|		} else if (ptype == SCTP_PRSCTP_SUPPORTED) {
  ------------------
  |  |  428|   103k|#define SCTP_PRSCTP_SUPPORTED		0xc000
  ------------------
  |  Branch (7282:14): [True: 11.1k, False: 92.0k]
  ------------------
 7283|       |			/* Peer supports pr-sctp */
 7284|  11.1k|			peer_supports_prsctp = 1;
 7285|  92.0k|		} else if (ptype == SCTP_ZERO_CHECKSUM_ACCEPTABLE) {
  ------------------
  |  |  417|  92.0k|#define SCTP_ZERO_CHECKSUM_ACCEPTABLE	0x8001
  ------------------
  |  Branch (7285:14): [True: 1.17k, False: 90.9k]
  ------------------
 7286|  1.17k|			struct sctp_zero_checksum_acceptable zero_chksum, *zero_chksum_p;
 7287|       |
 7288|  1.17k|			phdr = sctp_get_next_param(m, offset,
 7289|  1.17k|			                           (struct sctp_paramhdr *)&zero_chksum,
 7290|  1.17k|			                           sizeof(struct sctp_zero_checksum_acceptable));
 7291|  1.17k|			if (phdr != NULL) {
  ------------------
  |  Branch (7291:8): [True: 1.17k, False: 2]
  ------------------
 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|  1.17k|				zero_chksum_p = (struct sctp_zero_checksum_acceptable *)phdr;
 7298|  1.17k|				if ((ntohl(zero_chksum_p->edmid) != SCTP_EDMID_NONE) &&
  ------------------
  |  |  809|  1.17k|#define SCTP_EDMID_NONE             0
  ------------------
  |  Branch (7298:9): [True: 999, False: 171]
  ------------------
 7299|    999|				    (ntohl(zero_chksum_p->edmid) == stcb->asoc.rcv_edmid)) {
  ------------------
  |  Branch (7299:9): [True: 0, False: 999]
  ------------------
 7300|      0|					stcb->asoc.snd_edmid = stcb->asoc.rcv_edmid;
 7301|      0|				}
 7302|  1.17k|			}
 7303|  90.9k|		} else if (ptype == SCTP_SUPPORTED_CHUNK_EXT) {
  ------------------
  |  |  425|  90.9k|#define SCTP_SUPPORTED_CHUNK_EXT	0x8008
  ------------------
  |  Branch (7303:14): [True: 24.0k, False: 66.8k]
  ------------------
 7304|       |			/* A supported extension chunk */
 7305|  24.0k|			struct sctp_supported_chunk_types_param *pr_supported;
 7306|  24.0k|			uint8_t local_store[SCTP_PARAM_BUFFER_SIZE];
 7307|  24.0k|			int num_ent, i;
 7308|       |
 7309|  24.0k|			if (plen > sizeof(local_store)) {
  ------------------
  |  Branch (7309:8): [True: 0, False: 24.0k]
  ------------------
 7310|      0|				return (-35);
 7311|      0|			}
 7312|  24.0k|			phdr = sctp_get_next_param(m, offset,
 7313|  24.0k|						   (struct sctp_paramhdr *)&local_store, plen);
 7314|  24.0k|			if (phdr == NULL) {
  ------------------
  |  Branch (7314:8): [True: 0, False: 24.0k]
  ------------------
 7315|      0|				return (-25);
 7316|      0|			}
 7317|  24.0k|			pr_supported = (struct sctp_supported_chunk_types_param *)phdr;
 7318|  24.0k|			num_ent = plen - sizeof(struct sctp_paramhdr);
 7319|   309k|			for (i = 0; i < num_ent; i++) {
  ------------------
  |  Branch (7319:16): [True: 285k, False: 24.0k]
  ------------------
 7320|   285k|				switch (pr_supported->chunk_types[i]) {
 7321|  11.7k|				case SCTP_ASCONF:
  ------------------
  |  |  489|  11.7k|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (7321:5): [True: 11.7k, False: 273k]
  ------------------
 7322|  11.7k|					peer_supports_asconf = 1;
 7323|  11.7k|					break;
 7324|  28.0k|				case SCTP_ASCONF_ACK:
  ------------------
  |  |  477|  28.0k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (7324:5): [True: 28.0k, False: 257k]
  ------------------
 7325|  28.0k|					peer_supports_asconf_ack = 1;
 7326|  28.0k|					break;
 7327|  17.0k|				case SCTP_FORWARD_CUM_TSN:
  ------------------
  |  |  487|  17.0k|#define SCTP_FORWARD_CUM_TSN	0xc0
  ------------------
  |  Branch (7327:5): [True: 17.0k, False: 268k]
  ------------------
 7328|  17.0k|					peer_supports_prsctp = 1;
 7329|  17.0k|					break;
 7330|  2.10k|				case SCTP_PACKET_DROPPED:
  ------------------
  |  |  479|  2.10k|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (7330:5): [True: 2.10k, False: 283k]
  ------------------
 7331|  2.10k|					peer_supports_pktdrop = 1;
 7332|  2.10k|					break;
 7333|  2.60k|				case SCTP_NR_SELECTIVE_ACK:
  ------------------
  |  |  472|  2.60k|#define SCTP_NR_SELECTIVE_ACK	0x10
  ------------------
  |  Branch (7333:5): [True: 2.60k, False: 282k]
  ------------------
 7334|  2.60k|					peer_supports_nrsack = 1;
 7335|  2.60k|					break;
 7336|  12.2k|				case SCTP_STREAM_RESET:
  ------------------
  |  |  481|  12.2k|#define SCTP_STREAM_RESET       0x82
  ------------------
  |  Branch (7336:5): [True: 12.2k, False: 273k]
  ------------------
 7337|  12.2k|					peer_supports_reconfig = 1;
 7338|  12.2k|					break;
 7339|  11.7k|				case SCTP_AUTHENTICATION:
  ------------------
  |  |  470|  11.7k|#define SCTP_AUTHENTICATION     0x0f
  ------------------
  |  Branch (7339:5): [True: 11.7k, False: 273k]
  ------------------
 7340|  11.7k|					peer_supports_auth = 1;
 7341|  11.7k|					break;
 7342|  9.31k|				case SCTP_IDATA:
  ------------------
  |  |  474|  9.31k|#define SCTP_IDATA		0x40
  ------------------
  |  Branch (7342:5): [True: 9.31k, False: 276k]
  ------------------
 7343|  9.31k|					peer_supports_idata = 1;
 7344|  9.31k|					break;
 7345|   190k|				default:
  ------------------
  |  Branch (7345:5): [True: 190k, False: 94.8k]
  ------------------
 7346|       |					/* one I have not learned yet */
 7347|   190k|					break;
 7348|   285k|				}
 7349|   285k|			}
 7350|  66.8k|		} else if (ptype == SCTP_RANDOM) {
  ------------------
  |  |  419|  66.8k|#define SCTP_RANDOM			0x8002
  ------------------
  |  Branch (7350:14): [True: 8.16k, False: 58.7k]
  ------------------
 7351|  8.16k|			if (plen > sizeof(random_store))
  ------------------
  |  Branch (7351:8): [True: 0, False: 8.16k]
  ------------------
 7352|      0|				break;
 7353|  8.16k|			if (got_random) {
  ------------------
  |  Branch (7353:8): [True: 50, False: 8.11k]
  ------------------
 7354|       |				/* already processed a RANDOM */
 7355|     50|				goto next_param;
 7356|     50|			}
 7357|  8.11k|			phdr = sctp_get_next_param(m, offset,
 7358|  8.11k|						   (struct sctp_paramhdr *)random_store,
 7359|  8.11k|						   plen);
 7360|  8.11k|			if (phdr == NULL)
  ------------------
  |  Branch (7360:8): [True: 0, False: 8.11k]
  ------------------
 7361|      0|				return (-26);
 7362|  8.11k|			p_random = (struct sctp_auth_random *)phdr;
 7363|  8.11k|			random_len = plen - sizeof(*p_random);
 7364|       |			/* enforce the random length */
 7365|  8.11k|			if (random_len != SCTP_AUTH_RANDOM_SIZE_REQUIRED) {
  ------------------
  |  |   47|  8.11k|#define SCTP_AUTH_RANDOM_SIZE_REQUIRED	32
  ------------------
  |  Branch (7365:8): [True: 10, False: 8.10k]
  ------------------
 7366|     10|				SCTPDBG(SCTP_DEBUG_AUTH1, "SCTP: invalid RANDOM len\n");
 7367|     10|				return (-27);
 7368|     10|			}
 7369|  8.10k|			got_random = 1;
 7370|  58.7k|		} else if (ptype == SCTP_HMAC_LIST) {
  ------------------
  |  |  421|  58.7k|#define SCTP_HMAC_LIST			0x8004
  ------------------
  |  Branch (7370:14): [True: 8.40k, False: 50.3k]
  ------------------
 7371|  8.40k|			uint16_t num_hmacs;
 7372|  8.40k|			uint16_t i;
 7373|       |
 7374|  8.40k|			if (plen > sizeof(hmacs_store))
  ------------------
  |  Branch (7374:8): [True: 1, False: 8.39k]
  ------------------
 7375|      1|				break;
 7376|  8.39k|			if (got_hmacs) {
  ------------------
  |  Branch (7376:8): [True: 223, False: 8.17k]
  ------------------
 7377|       |				/* already processed a HMAC list */
 7378|    223|				goto next_param;
 7379|    223|			}
 7380|  8.17k|			phdr = sctp_get_next_param(m, offset,
 7381|  8.17k|						   (struct sctp_paramhdr *)hmacs_store,
 7382|  8.17k|						   plen);
 7383|  8.17k|			if (phdr == NULL)
  ------------------
  |  Branch (7383:8): [True: 0, False: 8.17k]
  ------------------
 7384|      0|				return (-28);
 7385|  8.17k|			hmacs = (struct sctp_auth_hmac_algo *)phdr;
 7386|  8.17k|			hmacs_len = plen - sizeof(*hmacs);
 7387|  8.17k|			num_hmacs = hmacs_len / sizeof(hmacs->hmac_ids[0]);
 7388|       |			/* validate the hmac list */
 7389|  8.17k|			if (sctp_verify_hmac_param(hmacs, num_hmacs)) {
  ------------------
  |  Branch (7389:8): [True: 24, False: 8.15k]
  ------------------
 7390|     24|				return (-29);
 7391|     24|			}
 7392|  8.15k|			if (stcb->asoc.peer_hmacs != NULL)
  ------------------
  |  Branch (7392:8): [True: 0, False: 8.15k]
  ------------------
 7393|      0|				sctp_free_hmaclist(stcb->asoc.peer_hmacs);
 7394|  8.15k|			stcb->asoc.peer_hmacs = sctp_alloc_hmaclist(num_hmacs);
 7395|  8.15k|			if (stcb->asoc.peer_hmacs != NULL) {
  ------------------
  |  Branch (7395:8): [True: 8.15k, False: 0]
  ------------------
 7396|  26.6k|				for (i = 0; i < num_hmacs; i++) {
  ------------------
  |  Branch (7396:17): [True: 18.5k, False: 8.15k]
  ------------------
 7397|  18.5k|					(void)sctp_auth_add_hmacid(stcb->asoc.peer_hmacs,
 7398|  18.5k|								   ntohs(hmacs->hmac_ids[i]));
 7399|  18.5k|				}
 7400|  8.15k|			}
 7401|  8.15k|			got_hmacs = 1;
 7402|  50.3k|		} else if (ptype == SCTP_CHUNK_LIST) {
  ------------------
  |  |  420|  50.3k|#define SCTP_CHUNK_LIST			0x8003
  ------------------
  |  Branch (7402:14): [True: 11.2k, False: 39.1k]
  ------------------
 7403|  11.2k|			int i;
 7404|       |
 7405|  11.2k|			if (plen > sizeof(chunks_store))
  ------------------
  |  Branch (7405:8): [True: 0, False: 11.2k]
  ------------------
 7406|      0|				break;
 7407|  11.2k|			if (got_chklist) {
  ------------------
  |  Branch (7407:8): [True: 2.94k, False: 8.26k]
  ------------------
 7408|       |				/* already processed a Chunks list */
 7409|  2.94k|				goto next_param;
 7410|  2.94k|			}
 7411|  8.26k|			phdr = sctp_get_next_param(m, offset,
 7412|  8.26k|						   (struct sctp_paramhdr *)chunks_store,
 7413|  8.26k|						   plen);
 7414|  8.26k|			if (phdr == NULL)
  ------------------
  |  Branch (7414:8): [True: 0, False: 8.26k]
  ------------------
 7415|      0|				return (-30);
 7416|  8.26k|			chunks = (struct sctp_auth_chunk_list *)phdr;
 7417|  8.26k|			num_chunks = plen - sizeof(*chunks);
 7418|  8.26k|			if (stcb->asoc.peer_auth_chunks != NULL)
  ------------------
  |  Branch (7418:8): [True: 0, False: 8.26k]
  ------------------
 7419|      0|				sctp_clear_chunklist(stcb->asoc.peer_auth_chunks);
 7420|  8.26k|			else
 7421|  8.26k|				stcb->asoc.peer_auth_chunks = sctp_alloc_chunklist();
 7422|  34.1k|			for (i = 0; i < num_chunks; i++) {
  ------------------
  |  Branch (7422:16): [True: 25.9k, False: 8.26k]
  ------------------
 7423|  25.9k|				(void)sctp_auth_add_chunk(chunks->chunk_types[i],
 7424|  25.9k|							  stcb->asoc.peer_auth_chunks);
 7425|       |				/* record asconf/asconf-ack if listed */
 7426|  25.9k|				if (chunks->chunk_types[i] == SCTP_ASCONF)
  ------------------
  |  |  489|  25.9k|#define SCTP_ASCONF		0xc1
  ------------------
  |  Branch (7426:9): [True: 8.32k, False: 17.5k]
  ------------------
 7427|  8.32k|					saw_asconf = 1;
 7428|  25.9k|				if (chunks->chunk_types[i] == SCTP_ASCONF_ACK)
  ------------------
  |  |  477|  25.9k|#define	SCTP_ASCONF_ACK		0x80
  ------------------
  |  Branch (7428:9): [True: 8.61k, False: 17.3k]
  ------------------
 7429|  8.61k|					saw_asconf_ack = 1;
 7430|  25.9k|			}
 7431|  8.26k|			got_chklist = 1;
 7432|  39.1k|		} else if ((ptype == SCTP_HEARTBEAT_INFO) ||
  ------------------
  |  |  390|  39.1k|#define SCTP_HEARTBEAT_INFO		0x0001
  ------------------
  |  Branch (7432:14): [True: 461, False: 38.6k]
  ------------------
 7433|  38.6k|			   (ptype == SCTP_STATE_COOKIE) ||
  ------------------
  |  |  396|  38.6k|#define SCTP_STATE_COOKIE		0x0007
  ------------------
  |  Branch (7433:7): [True: 10.9k, False: 27.7k]
  ------------------
 7434|  27.7k|			   (ptype == SCTP_UNRECOG_PARAM) ||
  ------------------
  |  |  397|  27.7k|#define SCTP_UNRECOG_PARAM		0x0008
  ------------------
  |  Branch (7434:7): [True: 1.71k, False: 25.9k]
  ------------------
 7435|  25.9k|			   (ptype == SCTP_COOKIE_PRESERVE) ||
  ------------------
  |  |  398|  25.9k|#define SCTP_COOKIE_PRESERVE		0x0009
  ------------------
  |  Branch (7435:7): [True: 618, False: 25.3k]
  ------------------
 7436|  25.3k|			   (ptype == SCTP_SUPPORTED_ADDRTYPE) ||
  ------------------
  |  |  400|  25.3k|#define SCTP_SUPPORTED_ADDRTYPE		0x000c
  ------------------
  |  Branch (7436:7): [True: 1.72k, False: 23.6k]
  ------------------
 7437|  23.6k|			   (ptype == SCTP_ADD_IP_ADDRESS) ||
  ------------------
  |  |  430|  23.6k|#define SCTP_ADD_IP_ADDRESS		0xc001
  ------------------
  |  Branch (7437:7): [True: 1.29k, False: 22.3k]
  ------------------
 7438|  22.3k|			   (ptype == SCTP_DEL_IP_ADDRESS) ||
  ------------------
  |  |  431|  22.3k|#define SCTP_DEL_IP_ADDRESS		0xc002
  ------------------
  |  Branch (7438:7): [True: 522, False: 21.8k]
  ------------------
 7439|  21.8k|			   (ptype == SCTP_ERROR_CAUSE_IND) ||
  ------------------
  |  |  432|  21.8k|#define SCTP_ERROR_CAUSE_IND		0xc003
  ------------------
  |  Branch (7439:7): [True: 1.57k, False: 20.2k]
  ------------------
 7440|  20.2k|			   (ptype == SCTP_SUCCESS_REPORT)) {
  ------------------
  |  |  434|  20.2k|#define SCTP_SUCCESS_REPORT		0xc005
  ------------------
  |  Branch (7440:7): [True: 421, False: 19.8k]
  ------------------
 7441|       |			/* don't care */
 7442|  19.8k|		} else {
 7443|  19.8k|			if ((ptype & 0x8000) == 0x0000) {
  ------------------
  |  Branch (7443:8): [True: 180, False: 19.6k]
  ------------------
 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|    180|				break;
 7452|    180|			}
 7453|  19.8k|		}
 7454|       |
 7455|   130k|	next_param:
 7456|   130k|		offset += SCTP_SIZE32(plen);
  ------------------
  |  |  383|   130k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 7457|   130k|		if (offset >= limit) {
  ------------------
  |  Branch (7457:7): [True: 8.52k, False: 121k]
  ------------------
 7458|  8.52k|			break;
 7459|  8.52k|		}
 7460|   121k|		phdr = sctp_get_next_param(m, offset, &param_buf,
 7461|   121k|		                           sizeof(param_buf));
 7462|   121k|	}
 7463|       |	/* Now check to see if we need to purge any addresses */
 7464|  8.89k|	TAILQ_FOREACH_SAFE(net, &stcb->asoc.nets, sctp_next, nnet) {
  ------------------
  |  | 1129|  8.89k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  17.7k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 8.89k, False: 8.89k]
  |  |  |  Branch (1130:24): [True: 8.89k, False: 0]
  |  |  ------------------
  |  | 1131|  8.89k|              (var) = (tvar))
  ------------------
 7465|  8.89k|		if ((net->dest_state & SCTP_ADDR_NOT_IN_ASSOC) ==
  ------------------
  |  |  485|  8.89k|#define SCTP_ADDR_NOT_IN_ASSOC		0x010
  ------------------
  |  Branch (7465:7): [True: 0, False: 8.89k]
  ------------------
 7466|  8.89k|		    SCTP_ADDR_NOT_IN_ASSOC) {
  ------------------
  |  |  485|  8.89k|#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.89k|	}
 7482|  8.89k|	if ((stcb->asoc.ecn_supported == 1) &&
  ------------------
  |  Branch (7482:6): [True: 8.89k, False: 0]
  ------------------
 7483|  8.89k|	    (peer_supports_ecn == 0)) {
  ------------------
  |  Branch (7483:6): [True: 746, False: 8.14k]
  ------------------
 7484|    746|		stcb->asoc.ecn_supported = 0;
 7485|    746|	}
 7486|  8.89k|	if ((stcb->asoc.prsctp_supported == 1) &&
  ------------------
  |  Branch (7486:6): [True: 8.89k, False: 0]
  ------------------
 7487|  8.89k|	    (peer_supports_prsctp == 0)) {
  ------------------
  |  Branch (7487:6): [True: 698, False: 8.19k]
  ------------------
 7488|    698|		stcb->asoc.prsctp_supported = 0;
 7489|    698|	}
 7490|  8.89k|	if ((stcb->asoc.auth_supported == 1) &&
  ------------------
  |  Branch (7490:6): [True: 8.89k, False: 0]
  ------------------
 7491|  8.89k|	    ((peer_supports_auth == 0) ||
  ------------------
  |  Branch (7491:7): [True: 705, False: 8.18k]
  ------------------
 7492|  8.18k|	     (got_random == 0) || (got_hmacs == 0))) {
  ------------------
  |  Branch (7492:7): [True: 91, False: 8.09k]
  |  Branch (7492:28): [True: 4, False: 8.09k]
  ------------------
 7493|    800|		stcb->asoc.auth_supported = 0;
 7494|    800|	}
 7495|  8.89k|	if ((stcb->asoc.asconf_supported == 1) &&
  ------------------
  |  Branch (7495:6): [True: 8.89k, False: 0]
  ------------------
 7496|  8.89k|	    ((peer_supports_asconf == 0) || (peer_supports_asconf_ack == 0) ||
  ------------------
  |  Branch (7496:7): [True: 725, False: 8.16k]
  |  Branch (7496:38): [True: 25, False: 8.14k]
  ------------------
 7497|  8.14k|	     (stcb->asoc.auth_supported == 0) ||
  ------------------
  |  Branch (7497:7): [True: 71, False: 8.07k]
  ------------------
 7498|  8.07k|	     (saw_asconf == 0) || (saw_asconf_ack == 0))) {
  ------------------
  |  Branch (7498:7): [True: 1, False: 8.06k]
  |  Branch (7498:28): [True: 1, False: 8.06k]
  ------------------
 7499|    823|		stcb->asoc.asconf_supported = 0;
 7500|    823|	}
 7501|  8.89k|	if ((stcb->asoc.reconfig_supported == 1) &&
  ------------------
  |  Branch (7501:6): [True: 8.89k, False: 0]
  ------------------
 7502|  8.89k|	    (peer_supports_reconfig == 0)) {
  ------------------
  |  Branch (7502:6): [True: 741, False: 8.15k]
  ------------------
 7503|    741|		stcb->asoc.reconfig_supported = 0;
 7504|    741|	}
 7505|  8.89k|	if ((stcb->asoc.idata_supported == 1) &&
  ------------------
  |  Branch (7505:6): [True: 4.72k, False: 4.16k]
  ------------------
 7506|  4.72k|	    (peer_supports_idata == 0)) {
  ------------------
  |  Branch (7506:6): [True: 551, False: 4.17k]
  ------------------
 7507|    551|		stcb->asoc.idata_supported = 0;
 7508|    551|	}
 7509|  8.89k|	if ((stcb->asoc.nrsack_supported == 1) &&
  ------------------
  |  Branch (7509:6): [True: 8.89k, False: 0]
  ------------------
 7510|  8.89k|	    (peer_supports_nrsack == 0)) {
  ------------------
  |  Branch (7510:6): [True: 8.79k, False: 95]
  ------------------
 7511|  8.79k|		stcb->asoc.nrsack_supported = 0;
 7512|  8.79k|	}
 7513|  8.89k|	if ((stcb->asoc.pktdrop_supported == 1) &&
  ------------------
  |  Branch (7513:6): [True: 8.89k, False: 0]
  ------------------
 7514|  8.89k|	    (peer_supports_pktdrop == 0)) {
  ------------------
  |  Branch (7514:6): [True: 8.78k, False: 102]
  ------------------
 7515|  8.78k|		stcb->asoc.pktdrop_supported = 0;
 7516|  8.78k|	}
 7517|       |	/* validate authentication required parameters */
 7518|  8.89k|	if ((peer_supports_auth == 0) && (got_chklist == 1)) {
  ------------------
  |  Branch (7518:6): [True: 705, False: 8.18k]
  |  Branch (7518:35): [True: 112, False: 593]
  ------------------
 7519|       |		/* peer does not support auth but sent a chunks list? */
 7520|    112|		return (-31);
 7521|    112|	}
 7522|  8.77k|	if ((peer_supports_asconf == 1) && (peer_supports_auth == 0)) {
  ------------------
  |  Branch (7522:6): [True: 8.15k, False: 623]
  |  Branch (7522:37): [True: 34, False: 8.12k]
  ------------------
 7523|       |		/* peer supports asconf but not auth? */
 7524|     34|		return (-32);
 7525|  8.74k|	} else if ((peer_supports_asconf == 1) &&
  ------------------
  |  Branch (7525:13): [True: 8.12k, False: 623]
  ------------------
 7526|  8.12k|	           (peer_supports_auth == 1) &&
  ------------------
  |  Branch (7526:13): [True: 8.12k, False: 0]
  ------------------
 7527|  8.12k|		   ((saw_asconf == 0) || (saw_asconf_ack == 0))) {
  ------------------
  |  Branch (7527:7): [True: 39, False: 8.08k]
  |  Branch (7527:28): [True: 2, False: 8.08k]
  ------------------
 7528|     41|		return (-33);
 7529|     41|	}
 7530|       |	/* concatenate the full random key */
 7531|  8.70k|	keylen = sizeof(*p_random) + random_len + sizeof(*hmacs) + hmacs_len;
 7532|  8.70k|	if (chunks != NULL) {
  ------------------
  |  Branch (7532:6): [True: 8.12k, False: 581]
  ------------------
 7533|  8.12k|		keylen += sizeof(*chunks) + num_chunks;
 7534|  8.12k|	}
 7535|  8.70k|	new_key = sctp_alloc_key(keylen);
 7536|  8.70k|	if (new_key != NULL) {
  ------------------
  |  Branch (7536:6): [True: 8.70k, False: 0]
  ------------------
 7537|       |		/* copy in the RANDOM */
 7538|  8.70k|		if (p_random != NULL) {
  ------------------
  |  Branch (7538:7): [True: 8.09k, False: 606]
  ------------------
 7539|  8.09k|			keylen = sizeof(*p_random) + random_len;
 7540|  8.09k|			memcpy(new_key->key, p_random, keylen);
 7541|  8.09k|		} else {
 7542|    606|			keylen = 0;
 7543|    606|		}
 7544|       |		/* append in the AUTH chunks */
 7545|  8.70k|		if (chunks != NULL) {
  ------------------
  |  Branch (7545:7): [True: 8.12k, False: 581]
  ------------------
 7546|  8.12k|			memcpy(new_key->key + keylen, chunks,
 7547|  8.12k|			       sizeof(*chunks) + num_chunks);
 7548|  8.12k|			keylen += sizeof(*chunks) + num_chunks;
 7549|  8.12k|		}
 7550|       |		/* append in the HMACs */
 7551|  8.70k|		if (hmacs != NULL) {
  ------------------
  |  Branch (7551:7): [True: 8.14k, False: 563]
  ------------------
 7552|  8.14k|			memcpy(new_key->key + keylen, hmacs,
 7553|  8.14k|			       sizeof(*hmacs) + hmacs_len);
 7554|  8.14k|		}
 7555|  8.70k|	} else {
 7556|       |		/* failed to get memory for the key */
 7557|      0|		return (-34);
 7558|      0|	}
 7559|  8.70k|	if (stcb->asoc.authinfo.peer_random != NULL)
  ------------------
  |  Branch (7559:6): [True: 0, False: 8.70k]
  ------------------
 7560|      0|		sctp_free_key(stcb->asoc.authinfo.peer_random);
 7561|  8.70k|	stcb->asoc.authinfo.peer_random = new_key;
 7562|  8.70k|	sctp_clear_cachedkeys(stcb, stcb->asoc.authinfo.assoc_keyid);
 7563|  8.70k|	sctp_clear_cachedkeys(stcb, stcb->asoc.authinfo.recv_keyid);
 7564|       |
 7565|  8.70k|	return (0);
 7566|  8.70k|}
sctp_set_primary_addr:
 7571|  6.93k|{
 7572|       |	/* make sure the requested primary address exists in the assoc */
 7573|  6.93k|	if (net == NULL && sa)
  ------------------
  |  Branch (7573:6): [True: 6.93k, False: 0]
  |  Branch (7573:21): [True: 6.93k, False: 0]
  ------------------
 7574|  6.93k|		net = sctp_findnet(stcb, sa);
 7575|       |
 7576|  6.93k|	if (net == NULL) {
  ------------------
  |  Branch (7576:6): [True: 4.45k, False: 2.47k]
  ------------------
 7577|       |		/* didn't find the requested primary address! */
 7578|  4.45k|		return (-1);
 7579|  4.45k|	} else {
 7580|       |		/* set the primary address */
 7581|  2.47k|		if (net->dest_state & SCTP_ADDR_UNCONFIRMED) {
  ------------------
  |  |  487|  2.47k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (7581:7): [True: 459, False: 2.01k]
  ------------------
 7582|       |			/* Must be confirmed, so queue to set */
 7583|    459|			net->dest_state |= SCTP_ADDR_REQ_PRIMARY;
  ------------------
  |  |  488|    459|#define SCTP_ADDR_REQ_PRIMARY           0x400
  ------------------
 7584|    459|			return (0);
 7585|    459|		}
 7586|  2.01k|		stcb->asoc.primary_destination = net;
 7587|  2.01k|		if (((net->dest_state & SCTP_ADDR_PF) == 0) &&
  ------------------
  |  |  490|  2.01k|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (7587:7): [True: 2.01k, False: 0]
  ------------------
 7588|  2.01k|		    (stcb->asoc.alternate != NULL)) {
  ------------------
  |  Branch (7588:7): [True: 2, False: 2.01k]
  ------------------
 7589|      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|}
  ------------------
 7590|      2|			stcb->asoc.alternate = NULL;
 7591|      2|		}
 7592|  2.01k|		net = TAILQ_FIRST(&stcb->asoc.nets);
 7593|  2.01k|		if (net != stcb->asoc.primary_destination) {
  ------------------
  |  Branch (7593:7): [True: 680, False: 1.33k]
  ------------------
 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|    680|			TAILQ_REMOVE(&stcb->asoc.nets, stcb->asoc.primary_destination, sctp_next);
  ------------------
  |  Branch (7599:4): [True: 157, False: 523]
  |  Branch (7599:4): [Folded, False: 680]
  ------------------
 7600|       |			TAILQ_INSERT_HEAD(&stcb->asoc.nets, stcb->asoc.primary_destination, sctp_next);
  ------------------
  |  Branch (7600:4): [True: 680, False: 0]
  |  Branch (7600:4): [Folded, False: 680]
  ------------------
 7601|    680|		}
 7602|  2.01k|		return (0);
 7603|  2.01k|	}
 7604|  6.93k|}
sctp_is_vtag_good:
 7608|  26.2k|{
 7609|  26.2k|	struct sctpasochead *head;
 7610|  26.2k|	struct sctp_tcb *stcb;
 7611|       |
 7612|  26.2k|	SCTP_INP_INFO_LOCK_ASSERT();
 7613|       |
 7614|  26.2k|	head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(tag, SCTP_BASE_INFO(hashasocmark))];
  ------------------
  |  |  587|  26.2k|#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|  26.2k|#define SCTP_PCBHASH_ASOC(tag, mask) (tag & mask)
  ------------------
 7615|  26.2k|	LIST_FOREACH(stcb, head, sctp_asocs) {
  ------------------
  |  Branch (7615:2): [True: 19, False: 26.2k]
  ------------------
 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|     19|		if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) {
  ------------------
  |  |  547|     19|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (7622:7): [True: 0, False: 19]
  ------------------
 7623|      0|			continue;
 7624|      0|		}
 7625|     19|		if (stcb->asoc.my_vtag == tag) {
  ------------------
  |  Branch (7625:7): [True: 0, False: 19]
  ------------------
 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|     19|	}
 7637|  26.2k|	return (!sctp_is_in_timewait(tag, lport, rport, now->tv_sec));
 7638|  26.2k|}
sctp_pcb_add_flags:
 8005|  7.38k|{
 8006|  7.38k|	uint32_t old_flags, new_flags;
 8007|       |
 8008|  7.38k|	do {
 8009|  7.38k|		old_flags = inp->sctp_flags;
 8010|  7.38k|		new_flags = old_flags | flags;
 8011|  7.38k|	} while (atomic_cmpset_int(&inp->sctp_flags, old_flags, new_flags) == 0);
  ------------------
  |  |  113|  7.38k|#define atomic_cmpset_int(dst, exp, src) __sync_bool_compare_and_swap(dst, exp, src)
  ------------------
  |  Branch (8011:11): [True: 0, False: 7.38k]
  ------------------
 8012|  7.38k|}
sctp_pcb.c:sctp_does_stcb_own_this_addr:
  784|  35.3k|{
  785|  35.3k|	int loopback_scope;
  786|  35.3k|#if defined(INET)
  787|  35.3k|	int ipv4_local_scope, ipv4_addr_legal;
  788|  35.3k|#endif
  789|  35.3k|#if defined(INET6)
  790|  35.3k|	int local_scope, site_scope, ipv6_addr_legal;
  791|  35.3k|#endif
  792|  35.3k|#if defined(__Userspace__)
  793|  35.3k|	int conn_addr_legal;
  794|  35.3k|#endif
  795|  35.3k|	struct sctp_vrf *vrf;
  796|  35.3k|	struct sctp_ifn *sctp_ifn;
  797|  35.3k|	struct sctp_ifa *sctp_ifa;
  798|       |
  799|  35.3k|	loopback_scope = stcb->asoc.scope.loopback_scope;
  800|  35.3k|#if defined(INET)
  801|  35.3k|	ipv4_local_scope = stcb->asoc.scope.ipv4_local_scope;
  802|  35.3k|	ipv4_addr_legal = stcb->asoc.scope.ipv4_addr_legal;
  803|  35.3k|#endif
  804|  35.3k|#if defined(INET6)
  805|  35.3k|	local_scope = stcb->asoc.scope.local_scope;
  806|  35.3k|	site_scope = stcb->asoc.scope.site_scope;
  807|  35.3k|	ipv6_addr_legal = stcb->asoc.scope.ipv6_addr_legal;
  808|  35.3k|#endif
  809|  35.3k|#if defined(__Userspace__)
  810|  35.3k|	conn_addr_legal = stcb->asoc.scope.conn_addr_legal;
  811|  35.3k|#endif
  812|       |
  813|  35.3k|	SCTP_IPI_ADDR_RLOCK();
  ------------------
  |  |  597|  35.3k|	KASSERT(pthread_rwlock_rdlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  35.3k|	do {                         \
  |  |  |  |  113|  35.3k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 35.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|  35.3k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 35.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  814|  35.3k|	vrf = sctp_find_vrf(stcb->asoc.vrf_id);
  815|  35.3k|	if (vrf == NULL) {
  ------------------
  |  Branch (815:6): [True: 0, False: 35.3k]
  ------------------
  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|  35.3k|	if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_BOUNDALL) {
  ------------------
  |  |  530|  35.3k|#define SCTP_PCB_FLAGS_BOUNDALL		0x00000004
  ------------------
  |  Branch (821:6): [True: 0, False: 35.3k]
  ------------------
  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|  35.3k|	} else {
  930|  35.3k|		struct sctp_laddr *laddr;
  931|       |
  932|  35.3k|		LIST_FOREACH(laddr, &stcb->sctp_ep->sctp_addr_list, sctp_nxt_addr) {
  ------------------
  |  Branch (932:3): [True: 35.3k, False: 0]
  ------------------
  933|  35.3k|			if (laddr->ifa->localifa_flags & SCTP_BEING_DELETED) {
  ------------------
  |  |   90|  35.3k|#define SCTP_BEING_DELETED      0x00000002	/* being deleted,
  ------------------
  |  Branch (933:8): [True: 0, False: 35.3k]
  ------------------
  934|      0|				SCTPDBG(SCTP_DEBUG_PCB1, "ifa being deleted\n");
  935|      0|				continue;
  936|      0|			}
  937|  35.3k|			if (sctp_is_addr_restricted(stcb, laddr->ifa) &&
  ------------------
  |  Branch (937:8): [True: 0, False: 35.3k]
  ------------------
  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|  35.3k|			if (laddr->ifa->address.sa.sa_family != to->sa_family) {
  ------------------
  |  Branch (945:8): [True: 0, False: 35.3k]
  ------------------
  946|      0|				continue;
  947|      0|			}
  948|  35.3k|			switch (to->sa_family) {
  949|      0|#ifdef INET
  950|      0|			case AF_INET:
  ------------------
  |  Branch (950:4): [True: 0, False: 35.3k]
  ------------------
  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: 35.3k]
  ------------------
  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|  35.3k|			case AF_CONN:
  ------------------
  |  | 1014|  35.3k|#define AF_CONN 123
  ------------------
  |  Branch (979:4): [True: 35.3k, False: 0]
  ------------------
  980|  35.3k|			{
  981|  35.3k|				struct sockaddr_conn *sconn, *rsconn;
  982|       |
  983|  35.3k|				sconn = &laddr->ifa->address.sconn;
  984|  35.3k|				rsconn = (struct sockaddr_conn *)to;
  985|  35.3k|				if (sconn->sconn_addr == rsconn->sconn_addr) {
  ------------------
  |  Branch (985:9): [True: 35.3k, False: 0]
  ------------------
  986|  35.3k|					SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|  35.3k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  35.3k|	do {                         \
  |  |  |  |  113|  35.3k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 35.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|  35.3k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 35.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  987|  35.3k|					return (1);
  988|  35.3k|				}
  989|      0|				break;
  990|  35.3k|			}
  991|      0|#endif
  992|      0|			default:
  ------------------
  |  Branch (992:4): [True: 0, False: 35.3k]
  ------------------
  993|       |				/* TSNH */
  994|      0|				break;
  995|  35.3k|			}
  996|  35.3k|		}
  997|  35.3k|	}
  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|  11.1k|{
 1739|  11.1k|	struct sctp_inpcb *inp;
 1740|  11.1k|	struct sctp_laddr *laddr;
 1741|  11.1k|#ifdef INET
 1742|  11.1k|	struct sockaddr_in *sin;
 1743|  11.1k|#endif
 1744|  11.1k|#ifdef INET6
 1745|  11.1k|	struct sockaddr_in6 *sin6;
 1746|  11.1k|	struct sockaddr_in6 *intf_addr6;
 1747|  11.1k|#endif
 1748|  11.1k|#if defined(__Userspace__)
 1749|  11.1k|	struct sockaddr_conn *sconn;
 1750|  11.1k|#endif
 1751|       |#ifdef SCTP_MVRF
 1752|       |	int i;
 1753|       |#endif
 1754|  11.1k|	int  fnd;
 1755|       |
 1756|  11.1k|#ifdef INET
 1757|  11.1k|	sin = NULL;
 1758|  11.1k|#endif
 1759|  11.1k|#ifdef INET6
 1760|  11.1k|	sin6 = NULL;
 1761|  11.1k|#endif
 1762|  11.1k|#if defined(__Userspace__)
 1763|  11.1k|	sconn = NULL;
 1764|  11.1k|#endif
 1765|  11.1k|	switch (nam->sa_family) {
 1766|      0|#ifdef INET
 1767|      0|	case AF_INET:
  ------------------
  |  Branch (1767:2): [True: 0, False: 11.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: 11.1k]
  ------------------
 1773|      0|		sin6 = (struct sockaddr_in6 *)nam;
 1774|      0|		break;
 1775|      0|#endif
 1776|      0|#if defined(__Userspace__)
 1777|  11.1k|	case AF_CONN:
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (1777:2): [True: 11.1k, False: 0]
  ------------------
 1778|  11.1k|		sconn = (struct sockaddr_conn *)nam;
 1779|  11.1k|		break;
 1780|      0|#endif
 1781|      0|	default:
  ------------------
  |  Branch (1781:2): [True: 0, False: 11.1k]
  ------------------
 1782|       |		/* unsupported family */
 1783|      0|		return (NULL);
 1784|  11.1k|	}
 1785|       |
 1786|  11.1k|	if (head == NULL)
  ------------------
  |  Branch (1786:6): [True: 0, False: 11.1k]
  ------------------
 1787|      0|		return (NULL);
 1788|       |
 1789|  11.1k|	LIST_FOREACH(inp, head, sctp_hash) {
  ------------------
  |  Branch (1789:2): [True: 0, False: 11.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|  11.1k|	switch (nam->sa_family) {
 1857|      0|#ifdef INET
 1858|      0|	case AF_INET:
  ------------------
  |  Branch (1858:2): [True: 0, False: 11.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: 11.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|  11.1k|	case AF_CONN:
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (1874:2): [True: 11.1k, False: 0]
  ------------------
 1875|  11.1k|		if (sconn->sconn_addr == NULL) {
  ------------------
  |  Branch (1875:7): [True: 0, False: 11.1k]
  ------------------
 1876|      0|			return (NULL);
 1877|      0|		}
 1878|  11.1k|		break;
 1879|  11.1k|#endif
 1880|  11.1k|	default:
  ------------------
  |  Branch (1880:2): [True: 0, False: 11.1k]
  ------------------
 1881|      0|		break;
 1882|  11.1k|	}
 1883|       |	/*
 1884|       |	 * ok, not bound to all so see if we can find a EP bound to this
 1885|       |	 * address.
 1886|       |	 */
 1887|  11.1k|	LIST_FOREACH(inp, head, sctp_hash) {
  ------------------
  |  Branch (1887:2): [True: 0, False: 11.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|  11.1k|	return (NULL);
 1977|  11.1k|}
sctp_pcb.c:sctp_findassoc_by_vtag:
 2330|  26.3k|{
 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|  26.3k|	struct sctpasochead *head;
 2337|  26.3k|	struct sctp_nets *net;
 2338|  26.3k|	struct sctp_tcb *stcb;
 2339|       |#ifdef SCTP_MVRF
 2340|       |	unsigned int i;
 2341|       |#endif
 2342|       |
 2343|  26.3k|	SCTP_INP_INFO_RLOCK();
  ------------------
  |  |  295|  26.3k|	KASSERT(pthread_rwlock_rdlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s%d: ipi_ep_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2344|  26.3k|	head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(vtag,
  ------------------
  |  |  587|  26.3k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(vtag,
  ------------------
  |  |   57|  26.3k|#define SCTP_PCBHASH_ASOC(tag, mask) (tag & mask)
  ------------------
 2345|  26.3k|	                                                        SCTP_BASE_INFO(hashasocmark))];
 2346|  26.3k|	LIST_FOREACH(stcb, head, sctp_asocs) {
  ------------------
  |  Branch (2346:2): [True: 26.3k, False: 0]
  ------------------
 2347|  26.3k|		SCTP_INP_RLOCK(stcb->sctp_ep);
  ------------------
  |  |  376|  26.3k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2348|  26.3k|		if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) {
  ------------------
  |  |  547|  26.3k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (2348:7): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|		if (stcb->sctp_ep->def_vrf_id != vrf_id) {
  ------------------
  |  Branch (2363:7): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|#endif
 2368|  26.3k|		SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  26.3k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2369|  26.3k|		SCTP_INP_RUNLOCK(stcb->sctp_ep);
  ------------------
  |  |  381|  26.3k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2370|  26.3k|		if (stcb->asoc.my_vtag == vtag) {
  ------------------
  |  Branch (2370:7): [True: 26.3k, False: 0]
  ------------------
 2371|       |			/* candidate */
 2372|  26.3k|			if (stcb->rport != rport) {
  ------------------
  |  Branch (2372:8): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|			if (stcb->sctp_ep->sctp_lport != lport) {
  ------------------
  |  |  426|  26.3k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  26.3k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  26.3k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (2376:8): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|			if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|  26.3k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (2380:8): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|			if (sctp_does_stcb_own_this_addr(stcb, to) == 0) {
  ------------------
  |  Branch (2385:8): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|			if (remote_tag) {
  ------------------
  |  Branch (2390:8): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|			if (skip_src_check) {
  ------------------
  |  Branch (2399:8): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|			net = sctp_findnet(stcb, from);
 2412|  26.3k|			if (net) {
  ------------------
  |  Branch (2412:8): [True: 26.3k, False: 0]
  ------------------
 2413|       |				/* yep its him. */
 2414|  26.3k|				*netp = net;
 2415|  26.3k|				SCTP_STAT_INCR(sctps_vtagexpress);
  ------------------
  |  | 1112|  26.3k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  26.3k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  26.3k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2416|  26.3k|				*inp_p = stcb->sctp_ep;
 2417|  26.3k|				SCTP_INP_INFO_RUNLOCK();
  ------------------
  |  |  299|  26.3k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_ep_mtx)) == 0, ("%s:%d: ipi_ep_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  26.3k|	do {                         \
  |  |  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2418|  26.3k|				return (stcb);
 2419|  26.3k|			} 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|  26.3k|		}
 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|  11.1k|{
 3085|  11.1k|	struct sctp_laddr *laddr;
 3086|       |
 3087|  11.1k|	laddr = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_laddr), struct sctp_laddr);
  ------------------
  |  |  703|  11.1k|        (type *)malloc(zone);
  ------------------
 3088|  11.1k|	if (laddr == NULL) {
  ------------------
  |  Branch (3088:6): [True: 0, False: 11.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|  11.1k|	SCTP_INCR_LADDR_COUNT();
  ------------------
  |  |  664|  11.1k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_laddr), 1)
  |  |  ------------------
  |  |  |  |   94|  11.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 3094|  11.1k|	memset(laddr, 0, sizeof(*laddr));
 3095|  11.1k|	(void)SCTP_GETTIME_TIMEVAL(&laddr->start_time);
  ------------------
  |  |  991|  11.1k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 3096|  11.1k|	laddr->ifa = ifa;
 3097|  11.1k|	laddr->action = act;
 3098|  11.1k|	atomic_add_int(&ifa->refcount, 1);
  ------------------
  |  |   94|  11.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 3099|       |	/* insert it */
 3100|  11.1k|	LIST_INSERT_HEAD(list, laddr, sctp_nxt_addr);
  ------------------
  |  Branch (3100:2): [True: 0, False: 11.1k]
  |  Branch (3100:2): [Folded, False: 11.1k]
  ------------------
 3101|       |
 3102|  11.1k|	return (0);
 3103|  11.1k|}
sctp_pcb.c:sctp_iterator_inp_being_freed:
 3675|  11.2k|{
 3676|  11.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|  11.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|  11.2k|	if (it && (it->inp == inp)) {
  ------------------
  |  Branch (3689:6): [True: 0, False: 11.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|  11.2k|	SCTP_IPI_ITERATOR_WQ_LOCK();
  ------------------
  |  |  640|  11.2k|	KASSERT(pthread_mutex_lock(&sctp_it_ctl.ipi_iterator_wq_mtx) == 0, ("%s:%d: ipi_iterator_wq_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.2k|	do {                         \
  |  |  |  |  113|  11.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3713|  11.2k|	TAILQ_FOREACH_SAFE(it, &sctp_it_ctl.iteratorhead, sctp_nxt_itr, nit) {
  ------------------
  |  | 1129|  11.2k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  11.2k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 0, False: 11.2k]
  |  |  |  Branch (1130:24): [True: 0, False: 0]
  |  |  ------------------
  |  | 1131|  11.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|  11.2k|	SCTP_IPI_ITERATOR_WQ_UNLOCK();
  ------------------
  |  |  642|  11.2k|	KASSERT(pthread_mutex_unlock(&sctp_it_ctl.ipi_iterator_wq_mtx) == 0, ("%s:%d: ipi_iterator_wq_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.2k|	do {                         \
  |  |  |  |  113|  11.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3740|  11.2k|}
sctp_pcb.c:sctp_remove_laddr:
 3110|  11.1k|{
 3111|       |
 3112|       |	/* remove from the list */
 3113|  11.1k|	LIST_REMOVE(laddr, sctp_nxt_addr);
  ------------------
  |  Branch (3113:2): [True: 0, False: 11.1k]
  |  Branch (3113:2): [Folded, False: 11.1k]
  ------------------
 3114|  11.1k|	sctp_free_ifa(laddr->ifa);
 3115|  11.1k|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_laddr), laddr);
  ------------------
  |  |  707|  11.1k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  11.1k|	free(element);  \
  |  |  709|  11.1k|}
  ------------------
 3116|  11.1k|	SCTP_DECR_LADDR_COUNT();
  ------------------
  |  |  667|  11.1k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_laddr), 1)
  |  |  ------------------
  |  |  |  |   97|  11.1k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 3117|  11.1k|}
sctp_pcb.c:sctp_aloc_assoc_locked:
 4770|  11.1k|{
 4771|       |	/* note the p argument is only valid in unbound sockets */
 4772|       |
 4773|  11.1k|	struct sctp_tcb *stcb;
 4774|  11.1k|	struct sctp_association *asoc;
 4775|  11.1k|	struct sctpasochead *head;
 4776|  11.1k|	uint16_t rport;
 4777|  11.1k|	int err;
 4778|       |
 4779|  11.1k|	SCTP_INP_INFO_WLOCK_ASSERT();
 4780|  11.1k|	SCTP_INP_WLOCK_ASSERT(inp);
  ------------------
  |  |  410|  11.1k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_mtx) == EBUSY, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.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|  11.1k|	if (SCTP_BASE_INFO(ipi_count_asoc) >= SCTP_MAX_NUM_OF_ASOC) {
  ------------------
  |  |  587|  11.1k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	if (SCTP_BASE_INFO(ipi_count_asoc) >= SCTP_MAX_NUM_OF_ASOC) {
  ------------------
  |  |  265|  11.1k|#define SCTP_MAX_NUM_OF_ASOC	40000
  ------------------
  |  Branch (4787:6): [True: 0, False: 11.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|  11.1k|	if (firstaddr == NULL) {
  ------------------
  |  Branch (4793:6): [True: 0, False: 11.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|  11.1k|	if (inp->sctp_flags & (SCTP_PCB_FLAGS_SOCKET_GONE | SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  546|  11.1k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
              	if (inp->sctp_flags & (SCTP_PCB_FLAGS_SOCKET_GONE | SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  547|  11.1k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (4798:6): [True: 0, False: 11.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|  11.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) &&
  ------------------
  |  |  540|  11.1k|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (4803:6): [True: 0, False: 11.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|  11.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|  11.1k|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (4816:6): [True: 0, False: 11.1k]
  ------------------
 4817|  11.1k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE)) {
  ------------------
  |  |  529|  11.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (4817:6): [True: 11.1k, False: 0]
  ------------------
 4818|  11.1k|		if ((inp->sctp_flags & SCTP_PCB_FLAGS_WAS_CONNECTED) ||
  ------------------
  |  |  535|  11.1k|#define SCTP_PCB_FLAGS_WAS_CONNECTED    0x00080000
  ------------------
  |  Branch (4818:7): [True: 0, False: 11.1k]
  ------------------
 4819|  11.1k|		    (inp->sctp_flags & SCTP_PCB_FLAGS_WAS_ABORTED)) {
  ------------------
  |  |  536|  11.1k|#define SCTP_PCB_FLAGS_WAS_ABORTED      0x00100000
  ------------------
  |  Branch (4819:7): [True: 0, False: 11.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|  11.1k|	}
 4825|  11.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|  11.1k|	switch (firstaddr->sa_family) {
 4856|      0|#ifdef INET
 4857|      0|	case AF_INET:
  ------------------
  |  Branch (4857:2): [True: 0, False: 11.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: 11.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|  11.1k|	case AF_CONN:
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (4902:2): [True: 11.1k, False: 0]
  ------------------
 4903|  11.1k|	{
 4904|  11.1k|		struct sockaddr_conn *sconn;
 4905|       |
 4906|  11.1k|		sconn = (struct sockaddr_conn *)firstaddr;
 4907|  11.1k|		if ((ntohs(sconn->sconn_port) == 0) ||
  ------------------
  |  Branch (4907:7): [True: 0, False: 11.1k]
  ------------------
 4908|  11.1k|		    (sconn->sconn_addr == NULL) ||
  ------------------
  |  Branch (4908:7): [True: 0, False: 11.1k]
  ------------------
 4909|  11.1k|		    ((inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_CONN) == 0)) {
  ------------------
  |  |  550|  11.1k|#define SCTP_PCB_FLAGS_BOUND_CONN       0x80000000
  ------------------
  |  Branch (4909:7): [True: 0, False: 11.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|  11.1k|		rport = sconn->sconn_port;
 4916|  11.1k|		break;
 4917|  11.1k|	}
 4918|      0|#endif
 4919|      0|	default:
  ------------------
  |  Branch (4919:2): [True: 0, False: 11.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|  11.1k|	}
 4925|  11.1k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) {
  ------------------
  |  |  532|  11.1k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
  |  Branch (4925:6): [True: 0, False: 11.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|  11.1k|	stcb = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_asoc), struct sctp_tcb);
  ------------------
  |  |  703|  11.1k|        (type *)malloc(zone);
  ------------------
 4937|  11.1k|	if (stcb == NULL) {
  ------------------
  |  Branch (4937:6): [True: 0, False: 11.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|  11.1k|	SCTP_INCR_ASOC_COUNT();
  ------------------
  |  |  658|  11.1k|	atomic_add_int(&SCTP_BASE_INFO(ipi_count_asoc), 1)
  |  |  ------------------
  |  |  |  |   94|  11.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 4944|       |
 4945|  11.1k|	memset(stcb, 0, sizeof(*stcb));
 4946|  11.1k|	asoc = &stcb->asoc;
 4947|       |
 4948|  11.1k|	SCTP_TCB_LOCK_INIT(stcb);
  ------------------
  |  |  454|  11.1k|	(void)pthread_mutex_init(&(_tcb)->tcb_mtx, &SCTP_BASE_VAR(mtx_attr))
  |  |  ------------------
  |  |  |  |  591|  11.1k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  ------------------
  ------------------
 4949|  11.1k|	stcb->rport = rport;
 4950|       |	/* setup back pointer's */
 4951|  11.1k|	stcb->sctp_ep = inp;
 4952|  11.1k|	stcb->sctp_socket = inp->sctp_socket;
 4953|  11.1k|	if ((err = sctp_init_asoc(inp, stcb, override_tag, initial_tsn, vrf_id, o_streams))) {
  ------------------
  |  Branch (4953:6): [True: 0, False: 11.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|  11.1k|	SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  11.1k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4962|       |
 4963|  11.1k|	asoc->assoc_id = sctp_aloc_a_assoc_id(inp, stcb);
 4964|       |	/* now that my_vtag is set, add it to the hash */
 4965|  11.1k|	head = &SCTP_BASE_INFO(sctp_asochash)[SCTP_PCBHASH_ASOC(stcb->asoc.my_vtag, SCTP_BASE_INFO(hashasocmark))];
  ------------------
  |  |  587|  11.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|  11.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|  11.1k|	LIST_INSERT_HEAD(head, stcb, sctp_asocs);
  ------------------
  |  Branch (4967:2): [True: 2, False: 11.1k]
  |  Branch (4967:2): [Folded, False: 11.1k]
  ------------------
 4968|       |
 4969|  11.1k|	if (sctp_add_remote_addr(stcb, firstaddr, NULL, port, SCTP_DO_SETSCOPE, SCTP_ALLOC_ASOC)) {
  ------------------
  |  |  823|  11.1k|#define SCTP_DO_SETSCOPE 1
  ------------------
              	if (sctp_add_remote_addr(stcb, firstaddr, NULL, port, SCTP_DO_SETSCOPE, SCTP_ALLOC_ASOC)) {
  ------------------
  |  |  816|  11.1k|#define SCTP_ALLOC_ASOC  1
  ------------------
  |  Branch (4969:6): [True: 0, False: 11.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|  11.1k|	SCTP_OS_TIMER_INIT(&asoc->dack_timer.timer);
  ------------------
  |  |   92|  11.1k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4995|  11.1k|	SCTP_OS_TIMER_INIT(&asoc->strreset_timer.timer);
  ------------------
  |  |   92|  11.1k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4996|  11.1k|	SCTP_OS_TIMER_INIT(&asoc->asconf_timer.timer);
  ------------------
  |  |   92|  11.1k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4997|  11.1k|	SCTP_OS_TIMER_INIT(&asoc->shut_guard_timer.timer);
  ------------------
  |  |   92|  11.1k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4998|  11.1k|	SCTP_OS_TIMER_INIT(&asoc->autoclose_timer.timer);
  ------------------
  |  |   92|  11.1k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 4999|  11.1k|	SCTP_OS_TIMER_INIT(&asoc->delete_prim_timer.timer);
  ------------------
  |  |   92|  11.1k|#define SCTP_OS_TIMER_INIT	sctp_os_timer_init
  ------------------
 5000|       |
 5001|  11.1k|	LIST_INSERT_HEAD(&inp->sctp_asoc_list, stcb, sctp_tcblist);
  ------------------
  |  Branch (5001:2): [True: 0, False: 11.1k]
  |  Branch (5001:2): [Folded, False: 11.1k]
  ------------------
 5002|       |	/* now file the port under the hash as well */
 5003|  11.1k|	if (inp->sctp_tcbhash != NULL) {
  ------------------
  |  Branch (5003:6): [True: 11.1k, False: 0]
  ------------------
 5004|  11.1k|		head = &inp->sctp_tcbhash[SCTP_PCBHASH_ALLADDR(stcb->rport,
  ------------------
  |  |   56|  11.1k|#define SCTP_PCBHASH_ALLADDR(port, mask) (port & mask)
  ------------------
 5005|  11.1k|		    inp->sctp_hashmark)];
 5006|  11.1k|		LIST_INSERT_HEAD(head, stcb, sctp_tcbhash);
  ------------------
  |  Branch (5006:3): [True: 0, False: 11.1k]
  |  Branch (5006:3): [Folded, False: 11.1k]
  ------------------
 5007|  11.1k|	}
 5008|  11.1k|	if (initialize_auth_params == SCTP_INITIALIZE_AUTH_PARAMS) {
  ------------------
  |  |  767|  11.1k|#define SCTP_INITIALIZE_AUTH_PARAMS		1
  ------------------
  |  Branch (5008:6): [True: 11.1k, False: 0]
  ------------------
 5009|  11.1k|		sctp_initialize_auth_params(inp, stcb);
 5010|  11.1k|	}
 5011|  11.1k|	SCTPDBG(SCTP_DEBUG_PCB1, "Association %p now allocated\n", (void *)stcb);
 5012|  11.1k|	return (stcb);
 5013|  11.1k|}
sctp_pcb.c:sctp_aloc_a_assoc_id:
 4721|  11.1k|{
 4722|  11.1k|	uint32_t id;
 4723|  11.1k|	struct sctpasochead *head;
 4724|  11.1k|	struct sctp_tcb *lstcb;
 4725|       |
 4726|  11.1k| try_again:
 4727|  11.1k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) {
  ------------------
  |  |  547|  11.1k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (4727:6): [True: 0, False: 11.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|  11.1k|	if (inp->sctp_associd_counter <= SCTP_ALL_ASSOC) {
  ------------------
  |  |   65|  11.1k|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (4735:6): [True: 11.1k, False: 0]
  ------------------
 4736|  11.1k|		inp->sctp_associd_counter = SCTP_ALL_ASSOC + 1;
  ------------------
  |  |   65|  11.1k|#define SCTP_ALL_ASSOC     2
  ------------------
 4737|  11.1k|	}
 4738|  11.1k|	id = inp->sctp_associd_counter;
 4739|  11.1k|	inp->sctp_associd_counter++;
 4740|  11.1k|	lstcb = sctp_findasoc_ep_asocid_locked(inp, (sctp_assoc_t)id, 0);
 4741|  11.1k|	if (lstcb) {
  ------------------
  |  Branch (4741:6): [True: 0, False: 11.1k]
  ------------------
 4742|      0|		goto try_again;
 4743|      0|	}
 4744|  11.1k|	head = &inp->sctp_asocidhash[SCTP_PCBHASH_ASOC(id, inp->hashasocidmark)];
  ------------------
  |  |   57|  11.1k|#define SCTP_PCBHASH_ASOC(tag, mask) (tag & mask)
  ------------------
 4745|       |	LIST_INSERT_HEAD(head, stcb, sctp_tcbasocidhash);
  ------------------
  |  Branch (4745:2): [True: 0, False: 11.1k]
  |  Branch (4745:2): [Folded, False: 11.1k]
  ------------------
 4746|  11.1k|	stcb->asoc.in_asocid_hash = 1;
 4747|  11.1k|	return (id);
 4748|  11.1k|}
sctp_pcb.c:sctp_add_vtag_to_timewait:
 5214|  11.1k|{
 5215|  11.1k|	struct sctpvtaghead *chain;
 5216|  11.1k|	struct sctp_tagblock *twait_block;
 5217|  11.1k|	struct timeval now;
 5218|  11.1k|	time_t time;
 5219|  11.1k|	int i;
 5220|  11.1k|	bool set;
 5221|       |
 5222|  11.1k|	SCTP_INP_INFO_WLOCK_ASSERT();
 5223|  11.1k|	(void)SCTP_GETTIME_TIMEVAL(&now);
  ------------------
  |  |  991|  11.1k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 5224|  11.1k|	time = now.tv_sec + SCTP_BASE_SYSCTL(sctp_vtag_time_wait);
  ------------------
  |  |  590|  11.1k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
 5225|  11.1k|	chain = &SCTP_BASE_INFO(vtag_timewait)[(tag % SCTP_STACK_VTAG_HASH_SIZE)];
  ------------------
  |  |  587|  11.1k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	chain = &SCTP_BASE_INFO(vtag_timewait)[(tag % SCTP_STACK_VTAG_HASH_SIZE)];
  ------------------
  |  |  924|  11.1k|#define SCTP_STACK_VTAG_HASH_SIZE   32
  ------------------
 5226|  11.1k|	set = false;
 5227|  19.0k|	LIST_FOREACH(twait_block, chain, sctp_nxt_tagblock) {
  ------------------
  |  Branch (5227:2): [True: 19.0k, False: 759]
  ------------------
 5228|       |		/* Block(s) present, lets find space, and expire on the fly */
 5229|   304k|		for (i = 0; i < SCTP_NUMBER_IN_VTAG_BLOCK; i++) {
  ------------------
  |  |  917|   304k|#define SCTP_NUMBER_IN_VTAG_BLOCK 15
  ------------------
  |  Branch (5229:15): [True: 285k, False: 19.0k]
  ------------------
 5230|   285k|			if ((twait_block->vtag_block[i].v_tag == 0) && !set) {
  ------------------
  |  Branch (5230:8): [True: 78.4k, False: 207k]
  |  Branch (5230:51): [True: 10.3k, False: 68.0k]
  ------------------
 5231|  10.3k|				sctp_set_vtag_block(twait_block->vtag_block + i, time, tag, lport, rport);
 5232|  10.3k|				set = true;
 5233|  10.3k|				continue;
 5234|  10.3k|			}
 5235|   275k|			if ((twait_block->vtag_block[i].v_tag != 0) &&
  ------------------
  |  Branch (5235:8): [True: 207k, False: 68.0k]
  ------------------
 5236|   207k|			    (twait_block->vtag_block[i].tv_sec_at_expire < now.tv_sec)) {
  ------------------
  |  Branch (5236:8): [True: 0, False: 207k]
  ------------------
 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|   275k|		}
 5247|  19.0k|		if (set) {
  ------------------
  |  Branch (5247:7): [True: 10.3k, False: 8.65k]
  ------------------
 5248|       |			/*
 5249|       |			 * We only do up to the block where we can
 5250|       |			 * place our tag for audits
 5251|       |			 */
 5252|  10.3k|			break;
 5253|  10.3k|		}
 5254|  19.0k|	}
 5255|       |	/* Need to add a new block to chain */
 5256|  11.1k|	if (!set) {
  ------------------
  |  Branch (5256:6): [True: 759, False: 10.3k]
  ------------------
 5257|    759|		SCTP_MALLOC(twait_block, struct sctp_tagblock *,
  ------------------
  |  |  675|    759|	do {								\
  |  |  676|    759|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|    759|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|    759|    do {								\
  |  |  |  |  198|    759|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.51k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 759]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|    759|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 759]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|    759|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 759]
  |  |  ------------------
  ------------------
 5258|    759|		    sizeof(struct sctp_tagblock), SCTP_M_TIMW);
 5259|    759|		if (twait_block == NULL) {
  ------------------
  |  Branch (5259:7): [True: 0, False: 759]
  ------------------
 5260|      0|			return;
 5261|      0|		}
 5262|    759|		memset(twait_block, 0, sizeof(struct sctp_tagblock));
 5263|       |		LIST_INSERT_HEAD(chain, twait_block, sctp_nxt_tagblock);
  ------------------
  |  Branch (5263:3): [True: 727, False: 32]
  |  Branch (5263:3): [Folded, False: 759]
  ------------------
 5264|    759|		sctp_set_vtag_block(twait_block->vtag_block, time, tag, lport, rport);
 5265|    759|	}
 5266|  11.1k|}
sctp_pcb.c:sctp_set_vtag_block:
 5205|  11.1k|{
 5206|  11.1k|	vtag_block->tv_sec_at_expire = time;
 5207|  11.1k|	vtag_block->v_tag = tag;
 5208|  11.1k|	vtag_block->lport = lport;
 5209|  11.1k|	vtag_block->rport = rport;
 5210|  11.1k|}
sctp_pcb.c:sctp_is_in_timewait:
 5182|  26.2k|{
 5183|  26.2k|	struct sctpvtaghead *chain;
 5184|  26.2k|	struct sctp_tagblock *twait_block;
 5185|  26.2k|	int i;
 5186|       |
 5187|  26.2k|	SCTP_INP_INFO_LOCK_ASSERT();
 5188|  26.2k|	chain = &SCTP_BASE_INFO(vtag_timewait)[(tag % SCTP_STACK_VTAG_HASH_SIZE)];
  ------------------
  |  |  587|  26.2k|#define SCTP_BASE_INFO(__m) system_base_info.sctppcbinfo.__m
  ------------------
              	chain = &SCTP_BASE_INFO(vtag_timewait)[(tag % SCTP_STACK_VTAG_HASH_SIZE)];
  ------------------
  |  |  924|  26.2k|#define SCTP_STACK_VTAG_HASH_SIZE   32
  ------------------
 5189|   466k|	LIST_FOREACH(twait_block, chain, sctp_nxt_tagblock) {
  ------------------
  |  Branch (5189:2): [True: 466k, False: 26.2k]
  ------------------
 5190|  7.46M|		for (i = 0; i < SCTP_NUMBER_IN_VTAG_BLOCK; i++) {
  ------------------
  |  |  917|  7.46M|#define SCTP_NUMBER_IN_VTAG_BLOCK 15
  ------------------
  |  Branch (5190:15): [True: 6.99M, False: 466k]
  ------------------
 5191|  6.99M|			if ((twait_block->vtag_block[i].tv_sec_at_expire >= now) &&
  ------------------
  |  Branch (5191:8): [True: 6.82M, False: 177k]
  ------------------
 5192|  6.82M|			    (twait_block->vtag_block[i].v_tag == tag) &&
  ------------------
  |  Branch (5192:8): [True: 0, False: 6.82M]
  ------------------
 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.99M|		}
 5198|   466k|	}
 5199|  26.2k|	return (false);
 5200|  26.2k|}

sctp_sha1_init:
  114|  2.75k|{
  115|       |	/* Init the SHA-1 context structure */
  116|  2.75k|	ctx->A = 0;
  117|  2.75k|	ctx->B = 0;
  118|  2.75k|	ctx->C = 0;
  119|  2.75k|	ctx->D = 0;
  120|  2.75k|	ctx->E = 0;
  121|  2.75k|	ctx->H0 = H0INIT;
  ------------------
  |  |  106|  2.75k|#define H0INIT 0x67452301
  ------------------
  122|  2.75k|	ctx->H1 = H1INIT;
  ------------------
  |  |  107|  2.75k|#define H1INIT 0xefcdab89
  ------------------
  123|  2.75k|	ctx->H2 = H2INIT;
  ------------------
  |  |  108|  2.75k|#define H2INIT 0x98badcfe
  ------------------
  124|  2.75k|	ctx->H3 = H3INIT;
  ------------------
  |  |  109|  2.75k|#define H3INIT 0x10325476
  ------------------
  125|  2.75k|	ctx->H4 = H4INIT;
  ------------------
  |  |  110|  2.75k|#define H4INIT 0xc3d2e1f0
  ------------------
  126|  2.75k|	ctx->TEMP = 0;
  127|  2.75k|	memset(ctx->words, 0, sizeof(ctx->words));
  128|  2.75k|	ctx->how_many_in_block = 0;
  129|  2.75k|	ctx->running_total = 0;
  130|  2.75k|}
sctp_sha1_update:
  199|  18.3k|{
  200|  18.3k|	unsigned int number_left, left_to_fill;
  201|       |
  202|  18.3k|	number_left = siz;
  203|  24.9k|	while (number_left > 0) {
  ------------------
  |  Branch (203:9): [True: 22.2k, False: 2.71k]
  ------------------
  204|  22.2k|		left_to_fill = sizeof(ctx->sha_block) - ctx->how_many_in_block;
  205|  22.2k|		if (left_to_fill > number_left) {
  ------------------
  |  Branch (205:7): [True: 15.6k, False: 6.61k]
  ------------------
  206|       |			/* can only partially fill up this one */
  207|  15.6k|			memcpy(&ctx->sha_block[ctx->how_many_in_block],
  208|  15.6k|			    ptr, number_left);
  209|  15.6k|			ctx->how_many_in_block += number_left;
  210|  15.6k|			ctx->running_total += number_left;
  211|  15.6k|			break;
  212|  15.6k|		} else {
  213|       |			/* block is now full, process it */
  214|  6.61k|			memcpy(&ctx->sha_block[ctx->how_many_in_block],
  215|  6.61k|			    ptr, left_to_fill);
  216|  6.61k|			sctp_sha1_process_a_block(ctx,
  217|  6.61k|			    (unsigned int *)ctx->sha_block);
  218|  6.61k|			number_left -= left_to_fill;
  219|  6.61k|			ctx->running_total += left_to_fill;
  220|  6.61k|			ctx->how_many_in_block = 0;
  221|  6.61k|			ptr = (const unsigned char *)(ptr + left_to_fill);
  222|  6.61k|		}
  223|  22.2k|	}
  224|  18.3k|}
sctp_sha1_final:
  228|  2.75k|{
  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.75k|	int left_to_fill;
  242|  2.75k|	unsigned int i, *ptr;
  243|       |
  244|  2.75k|	if (ctx->how_many_in_block > 55) {
  ------------------
  |  Branch (244:6): [True: 41, False: 2.71k]
  ------------------
  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|     41|		left_to_fill = sizeof(ctx->sha_block) - ctx->how_many_in_block;
  251|     41|		if (left_to_fill == 0) {
  ------------------
  |  Branch (251:7): [True: 0, False: 41]
  ------------------
  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|     41|		} else if (left_to_fill == 1) {
  ------------------
  |  Branch (260:14): [True: 9, False: 32]
  ------------------
  261|      9|			ctx->sha_block[ctx->how_many_in_block] = '\x80';
  262|      9|			sctp_sha1_process_a_block(ctx,
  263|      9|			    (unsigned int *)ctx->sha_block);
  264|       |			/* init last block */
  265|      9|			memset(ctx->sha_block, 0, sizeof(ctx->sha_block));
  266|     32|		} else {
  267|     32|			ctx->sha_block[ctx->how_many_in_block] = '\x80';
  268|     32|			for (i = (ctx->how_many_in_block + 1);
  269|    186|			    i < sizeof(ctx->sha_block);
  ------------------
  |  Branch (269:8): [True: 154, False: 32]
  ------------------
  270|    154|			    i++) {
  271|    154|				ctx->sha_block[i] = 0x0;
  272|    154|			}
  273|     32|			sctp_sha1_process_a_block(ctx,
  274|     32|			    (unsigned int *)ctx->sha_block);
  275|       |			/* init last block */
  276|     32|			memset(ctx->sha_block, 0, sizeof(ctx->sha_block));
  277|     32|		}
  278|       |		/* This is in bits so multiply by 8 */
  279|     41|		ctx->running_total *= 8;
  280|     41|		ptr = (unsigned int *)&ctx->sha_block[60];
  281|     41|		*ptr = htonl(ctx->running_total);
  282|     41|		sctp_sha1_process_a_block(ctx, (unsigned int *)ctx->sha_block);
  283|  2.71k|	} 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.71k|		ctx->sha_block[ctx->how_many_in_block] = '\x80';
  291|  2.71k|		for (i = (ctx->how_many_in_block + 1);
  292|  97.5k|		    i < sizeof(ctx->sha_block);
  ------------------
  |  Branch (292:7): [True: 94.7k, False: 2.71k]
  ------------------
  293|  94.7k|		    i++) {
  294|  94.7k|			ctx->sha_block[i] = 0x0;
  295|  94.7k|		}
  296|       |		/* get last int spot */
  297|  2.71k|		ctx->running_total *= 8;
  298|  2.71k|		ptr = (unsigned int *)&ctx->sha_block[60];
  299|  2.71k|		*ptr = htonl(ctx->running_total);
  300|  2.71k|		sctp_sha1_process_a_block(ctx, (unsigned int *)ctx->sha_block);
  301|  2.71k|	}
  302|       |	/* transfer the digest back to the user */
  303|  2.75k|	digest[3] = (ctx->H0 & 0xff);
  304|  2.75k|	digest[2] = ((ctx->H0 >> 8) & 0xff);
  305|  2.75k|	digest[1] = ((ctx->H0 >> 16) & 0xff);
  306|  2.75k|	digest[0] = ((ctx->H0 >> 24) & 0xff);
  307|       |
  308|  2.75k|	digest[7] = (ctx->H1 & 0xff);
  309|  2.75k|	digest[6] = ((ctx->H1 >> 8) & 0xff);
  310|  2.75k|	digest[5] = ((ctx->H1 >> 16) & 0xff);
  311|  2.75k|	digest[4] = ((ctx->H1 >> 24) & 0xff);
  312|       |
  313|  2.75k|	digest[11] = (ctx->H2 & 0xff);
  314|  2.75k|	digest[10] = ((ctx->H2 >> 8) & 0xff);
  315|  2.75k|	digest[9] = ((ctx->H2 >> 16) & 0xff);
  316|  2.75k|	digest[8] = ((ctx->H2 >> 24) & 0xff);
  317|       |
  318|  2.75k|	digest[15] = (ctx->H3 & 0xff);
  319|  2.75k|	digest[14] = ((ctx->H3 >> 8) & 0xff);
  320|  2.75k|	digest[13] = ((ctx->H3 >> 16) & 0xff);
  321|  2.75k|	digest[12] = ((ctx->H3 >> 24) & 0xff);
  322|       |
  323|  2.75k|	digest[19] = (ctx->H4 & 0xff);
  324|  2.75k|	digest[18] = ((ctx->H4 >> 8) & 0xff);
  325|  2.75k|	digest[17] = ((ctx->H4 >> 16) & 0xff);
  326|  2.75k|	digest[16] = ((ctx->H4 >> 24) & 0xff);
  327|  2.75k|}
sctp_sha1.c:sctp_sha1_process_a_block:
  134|  9.40k|{
  135|  9.40k|	int i;
  136|       |
  137|       |	/* init the W0-W15 to the block of words being hashed. */
  138|       |	/* step a) */
  139|   159k|	for (i = 0; i < 16; i++) {
  ------------------
  |  Branch (139:14): [True: 150k, False: 9.40k]
  ------------------
  140|   150k|		ctx->words[i] = ntohl(block[i]);
  141|   150k|	}
  142|       |	/* now init the rest based on the SHA-1 formula, step b) */
  143|   611k|	for (i = 16; i < 80; i++) {
  ------------------
  |  Branch (143:15): [True: 602k, False: 9.40k]
  ------------------
  144|   602k|		ctx->words[i] = CSHIFT(1, ((ctx->words[(i - 3)]) ^
  ------------------
  |  |   99|   602k|#define CSHIFT(A,B) ((B << A) | (B >> (32-A)))
  ------------------
  145|   602k|		    (ctx->words[(i - 8)]) ^
  146|   602k|		    (ctx->words[(i - 14)]) ^
  147|   602k|		    (ctx->words[(i - 16)])));
  148|   602k|	}
  149|       |	/* step c) */
  150|  9.40k|	ctx->A = ctx->H0;
  151|  9.40k|	ctx->B = ctx->H1;
  152|  9.40k|	ctx->C = ctx->H2;
  153|  9.40k|	ctx->D = ctx->H3;
  154|  9.40k|	ctx->E = ctx->H4;
  155|       |
  156|       |	/* step d) */
  157|   762k|	for (i = 0; i < 80; i++) {
  ------------------
  |  Branch (157:14): [True: 752k, False: 9.40k]
  ------------------
  158|   752k|		if (i < 20) {
  ------------------
  |  Branch (158:7): [True: 188k, False: 564k]
  ------------------
  159|   188k|			ctx->TEMP = ((CSHIFT(5, ctx->A)) +
  ------------------
  |  |   99|   188k|#define CSHIFT(A,B) ((B << A) | (B >> (32-A)))
  ------------------
  160|   188k|			    (F1(ctx->B, ctx->C, ctx->D)) +
  ------------------
  |  |   93|   188k|#define F1(B,C,D) (((B & C) | ((~B) & D)))	/* 0  <= t <= 19 */
  ------------------
  161|   188k|			    (ctx->E) +
  162|   188k|			    ctx->words[i] +
  163|   188k|			    K1);
  ------------------
  |  |  101|   188k|#define K1 0x5a827999		/* 0  <= t <= 19 */
  ------------------
  164|   564k|		} else if (i < 40) {
  ------------------
  |  Branch (164:14): [True: 188k, False: 376k]
  ------------------
  165|   188k|			ctx->TEMP = ((CSHIFT(5, ctx->A)) +
  ------------------
  |  |   99|   188k|#define CSHIFT(A,B) ((B << A) | (B >> (32-A)))
  ------------------
  166|   188k|			    (F2(ctx->B, ctx->C, ctx->D)) +
  ------------------
  |  |   94|   188k|#define F2(B,C,D) (B ^ C ^ D)	/* 20 <= t <= 39 */
  ------------------
  167|   188k|			    (ctx->E) +
  168|   188k|			    (ctx->words[i]) +
  169|   188k|			    K2);
  ------------------
  |  |  102|   188k|#define K2 0x6ed9eba1		/* 20 <= t <= 39 */
  ------------------
  170|   376k|		} else if (i < 60) {
  ------------------
  |  Branch (170:14): [True: 188k, False: 188k]
  ------------------
  171|   188k|			ctx->TEMP = ((CSHIFT(5, ctx->A)) +
  ------------------
  |  |   99|   188k|#define CSHIFT(A,B) ((B << A) | (B >> (32-A)))
  ------------------
  172|   188k|			    (F3(ctx->B, ctx->C, ctx->D)) +
  ------------------
  |  |   95|   188k|#define F3(B,C,D) ((B & C) | (B & D) | (C & D))	/* 40 <= t <= 59 */
  ------------------
  173|   188k|			    (ctx->E) +
  174|   188k|			    (ctx->words[i]) +
  175|   188k|			    K3);
  ------------------
  |  |  103|   188k|#define K3 0x8f1bbcdc		/* 40 <= t <= 59 */
  ------------------
  176|   188k|		} else {
  177|   188k|			ctx->TEMP = ((CSHIFT(5, ctx->A)) +
  ------------------
  |  |   99|   188k|#define CSHIFT(A,B) ((B << A) | (B >> (32-A)))
  ------------------
  178|   188k|			    (F4(ctx->B, ctx->C, ctx->D)) +
  ------------------
  |  |   96|   188k|#define F4(B,C,D) (B ^ C ^ D)	/* 600 <= t <= 79 */
  ------------------
  179|   188k|			    (ctx->E) +
  180|   188k|			    (ctx->words[i]) +
  181|   188k|			    K4);
  ------------------
  |  |  104|   188k|#define K4 0xca62c1d6		/* 60 <= t <= 79 */
  ------------------
  182|   188k|		}
  183|   752k|		ctx->E = ctx->D;
  184|   752k|		ctx->D = ctx->C;
  185|   752k|		ctx->C = CSHIFT(30, ctx->B);
  ------------------
  |  |   99|   752k|#define CSHIFT(A,B) ((B << A) | (B >> (32-A)))
  ------------------
  186|   752k|		ctx->B = ctx->A;
  187|   752k|		ctx->A = ctx->TEMP;
  188|   752k|	}
  189|       |	/* step e) */
  190|  9.40k|	ctx->H0 = (ctx->H0) + (ctx->A);
  191|  9.40k|	ctx->H1 = (ctx->H1) + (ctx->B);
  192|  9.40k|	ctx->H2 = (ctx->H2) + (ctx->C);
  193|  9.40k|	ctx->H3 = (ctx->H3) + (ctx->D);
  194|  9.40k|	ctx->H4 = (ctx->H4) + (ctx->E);
  195|  9.40k|}

sctp_ss_functions.c:sctp_ss_default_init:
   51|  11.2k|{
   52|  11.2k|	uint16_t i;
   53|       |
   54|  11.2k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  11.2k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.2k|	do {                         \
  |  |  |  |  113|  11.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   55|       |
   56|  11.2k|	asoc->ss_data.locked_on_sending = NULL;
   57|  11.2k|	asoc->ss_data.last_out_stream = NULL;
   58|  11.2k|	TAILQ_INIT(&asoc->ss_data.out.wheel);
  ------------------
  |  Branch (58:2): [Folded, False: 11.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.89M|	for (i = 0; i < asoc->streamoutcnt; i++) {
  ------------------
  |  Branch (65:14): [True: 2.87M, False: 11.2k]
  ------------------
   66|  2.87M|		stcb->asoc.ss_functions.sctp_ss_add_to_stream(stcb, asoc,
   67|  2.87M|		                                              &asoc->strmout[i],
   68|       |		                                              NULL);
   69|  2.87M|	}
   70|  11.2k|	return;
   71|  11.2k|}
sctp_ss_functions.c:sctp_ss_default_clear:
   76|     52|{
   77|     52|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|     52|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     52|	do {                         \
  |  |  |  |  113|     52|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 52]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     52|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 52]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   78|       |
   79|     65|	while (!TAILQ_EMPTY(&asoc->ss_data.out.wheel)) {
  ------------------
  |  Branch (79:9): [True: 13, False: 52]
  ------------------
   80|     13|		struct sctp_stream_out *strq;
   81|       |
   82|     13|		strq = TAILQ_FIRST(&asoc->ss_data.out.wheel);
   83|     13|		KASSERT(strq->ss_params.scheduled, ("strq %p not scheduled", (void *)strq));
  ------------------
  |  |  112|     13|	do {                         \
  |  |  113|     13|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 13]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|     13|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 13]
  |  |  ------------------
  ------------------
   84|     13|		TAILQ_REMOVE(&asoc->ss_data.out.wheel, strq, ss_params.ss.rr.next_spoke);
  ------------------
  |  Branch (84:3): [True: 0, False: 13]
  |  Branch (84:3): [Folded, False: 13]
  ------------------
   85|     13|		strq->ss_params.scheduled = false;
   86|     13|	}
   87|     52|	asoc->ss_data.last_out_stream = NULL;
   88|     52|	return;
   89|     52|}
sctp_ss_functions.c:sctp_ss_default_init_stream:
   93|  4.98M|{
   94|  4.98M|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  4.98M|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  4.98M|	do {                         \
  |  |  |  |  113|  4.98M|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 4.98M]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.98M|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 4.98M]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   95|       |
   96|  4.98M|	if (with_strq != NULL) {
  ------------------
  |  Branch (96:6): [True: 13.3k, False: 4.97M]
  ------------------
   97|  13.3k|		if (stcb->asoc.ss_data.locked_on_sending == with_strq) {
  ------------------
  |  Branch (97:7): [True: 0, False: 13.3k]
  ------------------
   98|      0|			stcb->asoc.ss_data.locked_on_sending = strq;
   99|      0|		}
  100|  13.3k|		if (stcb->asoc.ss_data.last_out_stream == with_strq) {
  ------------------
  |  Branch (100:7): [True: 0, False: 13.3k]
  ------------------
  101|      0|			stcb->asoc.ss_data.last_out_stream = strq;
  102|      0|		}
  103|  13.3k|	}
  104|       |	strq->ss_params.scheduled = false;
  105|  4.98M|	return;
  106|  4.98M|}
sctp_ss_functions.c:sctp_ss_default_add:
  112|  2.88M|{
  113|  2.88M|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  2.88M|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  2.88M|	do {                         \
  |  |  |  |  113|  2.88M|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.88M]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.88M|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.88M]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  114|       |
  115|       |	/* Add to wheel if not already on it and stream queue not empty */
  116|  2.88M|	if (!TAILQ_EMPTY(&strq->outqueue) && !strq->ss_params.scheduled) {
  ------------------
  |  Branch (116:6): [True: 5.98k, False: 2.87M]
  |  Branch (116:39): [True: 5.98k, False: 0]
  ------------------
  117|  5.98k|		TAILQ_INSERT_TAIL(&asoc->ss_data.out.wheel,
  ------------------
  |  Branch (117:3): [Folded, False: 5.98k]
  ------------------
  118|  5.98k|		                  strq, ss_params.ss.rr.next_spoke);
  119|       |		strq->ss_params.scheduled = true;
  120|  5.98k|	}
  121|  2.88M|	return;
  122|  2.88M|}
sctp_ss_functions.c:sctp_ss_default_is_empty:
  126|  44.7k|{
  127|  44.7k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  44.7k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  44.7k|	do {                         \
  |  |  |  |  113|  44.7k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 44.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|  44.7k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 44.7k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  128|       |
  129|  44.7k|	return (TAILQ_EMPTY(&asoc->ss_data.out.wheel));
  130|  44.7k|}
sctp_ss_functions.c:sctp_ss_default_remove:
  136|  5.96k|{
  137|  5.96k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.96k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  138|       |
  139|       |	/* Remove from wheel if stream queue is empty and actually is on the wheel */
  140|  5.96k|	if (TAILQ_EMPTY(&strq->outqueue) && strq->ss_params.scheduled) {
  ------------------
  |  Branch (140:6): [True: 5.96k, False: 0]
  |  Branch (140:38): [True: 5.96k, False: 0]
  ------------------
  141|  5.96k|		if (asoc->ss_data.last_out_stream == strq) {
  ------------------
  |  Branch (141:7): [True: 5.32k, False: 640]
  ------------------
  142|  5.32k|			asoc->ss_data.last_out_stream = TAILQ_PREV(asoc->ss_data.last_out_stream,
  143|  5.32k|			                                           sctpwheel_listhead,
  144|  5.32k|			                                           ss_params.ss.rr.next_spoke);
  145|  5.32k|			if (asoc->ss_data.last_out_stream == NULL) {
  ------------------
  |  Branch (145:8): [True: 5.32k, False: 0]
  ------------------
  146|  5.32k|				asoc->ss_data.last_out_stream = TAILQ_LAST(&asoc->ss_data.out.wheel,
  147|  5.32k|				                                           sctpwheel_listhead);
  148|  5.32k|			}
  149|  5.32k|			if (asoc->ss_data.last_out_stream == strq) {
  ------------------
  |  Branch (149:8): [True: 5.32k, False: 0]
  ------------------
  150|  5.32k|				asoc->ss_data.last_out_stream = NULL;
  151|  5.32k|			}
  152|  5.32k|		}
  153|  5.96k|		if (asoc->ss_data.locked_on_sending == strq) {
  ------------------
  |  Branch (153:7): [True: 0, False: 5.96k]
  ------------------
  154|      0|			asoc->ss_data.locked_on_sending = NULL;
  155|      0|		}
  156|  5.96k|		TAILQ_REMOVE(&asoc->ss_data.out.wheel, strq, ss_params.ss.rr.next_spoke);
  ------------------
  |  Branch (156:3): [True: 0, False: 5.96k]
  |  Branch (156:3): [Folded, False: 5.96k]
  ------------------
  157|       |		strq->ss_params.scheduled = false;
  158|  5.96k|	}
  159|  5.96k|	return;
  160|  5.96k|}
sctp_ss_functions.c:sctp_ss_default_select:
  165|  11.6k|{
  166|  11.6k|	struct sctp_stream_out *strq, *strqt;
  167|       |
  168|  11.6k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  11.6k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.6k|	do {                         \
  |  |  |  |  113|  11.6k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.6k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.6k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  169|       |
  170|  11.6k|	if (asoc->ss_data.locked_on_sending != NULL) {
  ------------------
  |  Branch (170:6): [True: 0, False: 11.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|  11.6k|	strqt = asoc->ss_data.last_out_stream;
  177|  11.6k|	KASSERT(strqt == NULL || strqt->ss_params.scheduled,
  ------------------
  |  |  112|  11.6k|	do {                         \
  |  |  113|  11.6k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 11.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|  11.6k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 11.6k]
  |  |  ------------------
  ------------------
  178|  11.6k|	        ("last_out_stream %p not scheduled", (void *)strqt));
  179|  11.6k|default_again:
  180|       |	/* Find the next stream to use */
  181|  11.6k|	if (strqt == NULL) {
  ------------------
  |  Branch (181:6): [True: 11.6k, False: 0]
  ------------------
  182|  11.6k|		strq = TAILQ_FIRST(&asoc->ss_data.out.wheel);
  183|  11.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|  11.6k|	KASSERT(strq == NULL || strq->ss_params.scheduled,
  ------------------
  |  |  112|  11.6k|	do {                         \
  |  |  113|  17.0k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 6.35k, False: 5.32k]
  |  |  |  Branch (113:9): [True: 5.32k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|  11.6k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 11.6k]
  |  |  ------------------
  ------------------
  190|  11.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|  11.6k|	if (net != NULL && strq != NULL &&
  ------------------
  |  Branch (203:6): [True: 11.6k, False: 0]
  |  Branch (203:21): [True: 5.32k, False: 6.35k]
  ------------------
  204|  5.32k|	    SCTP_BASE_SYSCTL(sctp_cmt_on_off) == 0) {
  ------------------
  |  |  590|  5.32k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (204:6): [True: 5.32k, False: 0]
  ------------------
  205|  5.32k|		if (TAILQ_FIRST(&strq->outqueue) &&
  ------------------
  |  Branch (205:7): [True: 5.32k, False: 0]
  ------------------
  206|  5.32k|		    TAILQ_FIRST(&strq->outqueue)->net != NULL &&
  ------------------
  |  Branch (206:7): [True: 0, False: 5.32k]
  ------------------
  207|  5.32k|		    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|  5.32k|	}
  216|  11.6k|	return (strq);
  217|  11.6k|}
sctp_ss_functions.c:sctp_ss_default_scheduled:
  225|  5.32k|{
  226|  5.32k|	struct sctp_stream_queue_pending *sp;
  227|       |
  228|  5.32k|	KASSERT(strq != NULL, ("strq is NULL"));
  ------------------
  |  |  112|  5.32k|	do {                         \
  |  |  113|  5.32k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.32k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.32k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.32k]
  |  |  ------------------
  ------------------
  229|  5.32k|	KASSERT(strq->ss_params.scheduled, ("strq %p is not scheduled", (void *)strq));
  ------------------
  |  |  112|  5.32k|	do {                         \
  |  |  113|  5.32k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.32k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.32k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.32k]
  |  |  ------------------
  ------------------
  230|  5.32k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.32k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.32k|	do {                         \
  |  |  |  |  113|  5.32k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.32k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.32k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.32k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  231|       |
  232|  5.32k|	asoc->ss_data.last_out_stream = strq;
  233|  5.32k|	if (asoc->idata_supported == 0) {
  ------------------
  |  Branch (233:6): [True: 1.46k, False: 3.86k]
  ------------------
  234|  1.46k|		sp = TAILQ_FIRST(&strq->outqueue);
  235|  1.46k|		if ((sp != NULL) && (sp->some_taken == 1)) {
  ------------------
  |  Branch (235:7): [True: 1.46k, False: 0]
  |  Branch (235:23): [True: 0, False: 1.46k]
  ------------------
  236|      0|			asoc->ss_data.locked_on_sending = strq;
  237|  1.46k|		} else {
  238|  1.46k|			asoc->ss_data.locked_on_sending = NULL;
  239|  1.46k|		}
  240|  3.86k|	} else {
  241|       |		asoc->ss_data.locked_on_sending = NULL;
  242|  3.86k|	}
  243|  5.32k|	return;
  244|  5.32k|}
sctp_ss_functions.c:sctp_ss_default_packet_done:
  249|  6.35k|{
  250|  6.35k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  6.35k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  6.35k|	do {                         \
  |  |  |  |  113|  6.35k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 6.35k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.35k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 6.35k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  251|       |
  252|       |	/* Nothing to be done here */
  253|  6.35k|	return;
  254|  6.35k|}

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|  2.38k|{
  175|       |	/* Find and return an alternate network if possible */
  176|  2.38k|	struct sctp_nets *alt, *mnet, *min_errors_net = NULL , *max_cwnd_net = NULL;
  177|  2.38k|	bool looped;
  178|       |	/* JRS 5/14/07 - Initialize min_errors to an impossible value. */
  179|  2.38k|	int min_errors = -1;
  180|  2.38k|	uint32_t max_cwnd = 0;
  181|       |
  182|  2.38k|	if (stcb->asoc.numnets == 1) {
  ------------------
  |  Branch (182:6): [True: 89, False: 2.29k]
  ------------------
  183|       |		/* No selection can be made. */
  184|     89|		return (TAILQ_FIRST(&stcb->asoc.nets));
  185|     89|	}
  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|  2.29k|	if (mode == 2) {
  ------------------
  |  Branch (193:6): [True: 0, False: 2.29k]
  ------------------
  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|  2.29k|	else if (mode == 1) {
  ------------------
  |  Branch (280:11): [True: 0, False: 2.29k]
  ------------------
  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|  2.29k|	if ((net != NULL) && ((net->dest_state & SCTP_ADDR_BEING_DELETED) == 0)) {
  ------------------
  |  |  484|  2.29k|#define SCTP_ADDR_BEING_DELETED		0x008
  ------------------
  |  Branch (320:6): [True: 2.29k, False: 0]
  |  Branch (320:23): [True: 2.29k, False: 0]
  ------------------
  321|  2.29k|		alt = TAILQ_NEXT(net, sctp_next);
  322|  2.29k|	} else {
  323|      0|		alt = TAILQ_FIRST(&stcb->asoc.nets);
  324|      0|	}
  325|  2.29k|	looped = false;
  326|  4.06k|	for (;;) {
  327|  4.06k|		if (alt == NULL) {
  ------------------
  |  Branch (327:7): [True: 786, False: 3.28k]
  ------------------
  328|    786|			if (!looped) {
  ------------------
  |  Branch (328:8): [True: 664, False: 122]
  ------------------
  329|    664|				alt = TAILQ_FIRST(&stcb->asoc.nets);
  330|    664|				looped = true;
  331|    664|			}
  332|       |			/* Definitely out of candidates. */
  333|    786|			if (alt == NULL) {
  ------------------
  |  Branch (333:8): [True: 122, False: 664]
  ------------------
  334|    122|				break;
  335|    122|			}
  336|    786|		}
  337|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  338|       |		if (alt->ro.ro_nh == NULL) {
  339|       |#else
  340|  3.94k|		if (alt->ro.ro_rt == NULL) {
  ------------------
  |  Branch (340:7): [True: 0, False: 3.94k]
  ------------------
  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|  3.94k|		if (((alt->dest_state & SCTP_ADDR_REACHABLE) == SCTP_ADDR_REACHABLE) &&
  ------------------
  |  |  481|  3.94k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
              		if (((alt->dest_state & SCTP_ADDR_REACHABLE) == SCTP_ADDR_REACHABLE) &&
  ------------------
  |  |  481|  3.94k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (348:7): [True: 3.94k, False: 0]
  ------------------
  349|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  350|       |		    (alt->ro.ro_nh != NULL) &&
  351|       |#else
  352|  3.94k|		    (alt->ro.ro_rt != NULL) &&
  ------------------
  |  Branch (352:7): [True: 3.94k, False: 0]
  ------------------
  353|  3.94k|#endif
  354|  3.94k|		    ((alt->dest_state & SCTP_ADDR_UNCONFIRMED) == 0) &&
  ------------------
  |  |  487|  3.94k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (354:7): [True: 2.29k, False: 1.65k]
  ------------------
  355|  2.29k|		    (alt != net)) {
  ------------------
  |  Branch (355:7): [True: 2.17k, False: 122]
  ------------------
  356|       |			/* Found an alternate net, which is reachable. */
  357|  2.17k|			break;
  358|  2.17k|		}
  359|  1.77k|		alt = TAILQ_NEXT(alt, sctp_next);
  360|  1.77k|	}
  361|       |
  362|  2.29k|	if (alt == NULL) {
  ------------------
  |  Branch (362:6): [True: 122, False: 2.17k]
  ------------------
  363|       |		/*
  364|       |		 * In case no active alternate net has been found, look for
  365|       |		 * an alternate net, which is confirmed.
  366|       |		 */
  367|    122|		if ((net != NULL) && ((net->dest_state & SCTP_ADDR_BEING_DELETED) == 0)) {
  ------------------
  |  |  484|    122|#define SCTP_ADDR_BEING_DELETED		0x008
  ------------------
  |  Branch (367:7): [True: 122, False: 0]
  |  Branch (367:24): [True: 122, False: 0]
  ------------------
  368|    122|			alt = TAILQ_NEXT(net, sctp_next);
  369|    122|		} else {
  370|      0|			alt = TAILQ_FIRST(&stcb->asoc.nets);
  371|      0|		}
  372|    122|		looped = false;
  373|    992|		for (;;) {
  374|    992|			if (alt == NULL) {
  ------------------
  |  Branch (374:8): [True: 244, False: 748]
  ------------------
  375|    244|				if (!looped) {
  ------------------
  |  Branch (375:9): [True: 122, False: 122]
  ------------------
  376|    122|					alt = TAILQ_FIRST(&stcb->asoc.nets);
  377|    122|					looped = true;
  378|    122|				}
  379|       |				/* Definitely out of candidates. */
  380|    244|				if (alt == NULL) {
  ------------------
  |  Branch (380:9): [True: 122, False: 122]
  ------------------
  381|    122|					break;
  382|    122|				}
  383|    244|			}
  384|    870|			if (((alt->dest_state & SCTP_ADDR_UNCONFIRMED) == 0) &&
  ------------------
  |  |  487|    870|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (384:8): [True: 122, False: 748]
  ------------------
  385|    122|			    (alt != net)) {
  ------------------
  |  Branch (385:8): [True: 0, False: 122]
  ------------------
  386|       |				/* Found an alternate net, which is confirmed. */
  387|      0|				break;
  388|      0|			}
  389|    870|			alt = TAILQ_NEXT(alt, sctp_next);
  390|    870|		}
  391|    122|	}
  392|  2.29k|	if (alt == NULL) {
  ------------------
  |  Branch (392:6): [True: 122, False: 2.17k]
  ------------------
  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|    122|		if ((net != NULL) && ((net->dest_state & SCTP_ADDR_BEING_DELETED) == 0)) {
  ------------------
  |  |  484|    122|#define SCTP_ADDR_BEING_DELETED		0x008
  ------------------
  |  Branch (398:7): [True: 122, False: 0]
  |  Branch (398:24): [True: 122, False: 0]
  ------------------
  399|    122|			alt = net;
  400|    122|		}
  401|    122|		if (alt == NULL) {
  ------------------
  |  Branch (401:7): [True: 0, False: 122]
  ------------------
  402|       |			alt = TAILQ_FIRST(&stcb->asoc.nets);
  403|      0|		}
  404|    122|	}
  405|  2.29k|	return (alt);
  406|  2.29k|}

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|  11.1k|{
  820|  11.1k|	struct sctp_inpcb *inp;
  821|  11.1k|	struct inpcb *ip_inp;
  822|  11.1k|	int error;
  823|       |
  824|  11.1k|	inp = (struct sctp_inpcb *)so->so_pcb;
  825|  11.1k|	if (inp != NULL) {
  ------------------
  |  Branch (825:6): [True: 0, False: 11.1k]
  ------------------
  826|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
  827|      0|		return (EINVAL);
  828|      0|	}
  829|  11.1k|	if (so->so_snd.sb_hiwat == 0 || so->so_rcv.sb_hiwat == 0) {
  ------------------
  |  Branch (829:6): [True: 11.1k, False: 0]
  |  Branch (829:34): [True: 0, False: 0]
  ------------------
  830|  11.1k|		error = SCTP_SORESERVE(so, SCTP_BASE_SYSCTL(sctp_sendspace), SCTP_BASE_SYSCTL(sctp_recvspace));
  ------------------
  |  |  963|  11.1k|#define SCTP_SORESERVE(so, send, recv)	soreserve(so, send, recv)
  ------------------
  831|  11.1k|		if (error) {
  ------------------
  |  Branch (831:7): [True: 0, False: 11.1k]
  ------------------
  832|      0|			return (error);
  833|      0|		}
  834|  11.1k|	}
  835|  11.1k|	error = sctp_inpcb_alloc(so, vrf_id);
  836|  11.1k|	if (error) {
  ------------------
  |  Branch (836:6): [True: 0, False: 11.1k]
  ------------------
  837|      0|		return (error);
  838|      0|	}
  839|  11.1k|	inp = (struct sctp_inpcb *)so->so_pcb;
  840|  11.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  841|  11.1k|	inp->sctp_flags &= ~SCTP_PCB_FLAGS_BOUND_V6;
  ------------------
  |  |  544|  11.1k|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  842|  11.1k|	inp->sctp_flags |= SCTP_PCB_FLAGS_BOUND_CONN;
  ------------------
  |  |  550|  11.1k|#define SCTP_PCB_FLAGS_BOUND_CONN       0x80000000
  ------------------
  843|  11.1k|	ip_inp = &inp->ip_inp.inp;
  844|  11.1k|	ip_inp->inp_vflag |= INP_CONN;
  ------------------
  |  |  124|  11.1k|#define INP_CONN        0x80
  ------------------
  845|  11.1k|	ip_inp->inp_ip_ttl = MODULE_GLOBAL(ip_defttl);
  ------------------
  |  |   65|  11.1k|#define MODULE_GLOBAL(_B) (_B)
  ------------------
  846|  11.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  847|  11.1k|	return (0);
  848|  11.1k|}
sctpconn_bind:
  852|  11.1k|{
  853|  11.1k|	struct sctp_inpcb *inp;
  854|       |
  855|  11.1k|	inp = (struct sctp_inpcb *)so->so_pcb;
  856|  11.1k|	if (inp == NULL) {
  ------------------
  |  Branch (856:6): [True: 0, False: 11.1k]
  ------------------
  857|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
  858|      0|		return (EINVAL);
  859|      0|	}
  860|  11.1k|	if (addr != NULL) {
  ------------------
  |  Branch (860:6): [True: 11.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|  11.1k|		if (addr->sa_family != AF_CONN) {
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (865:7): [True: 0, False: 11.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|  11.1k|	}
  871|  11.1k|	return (sctp_inpcb_bind(so, addr, NULL, NULL));
  872|  11.1k|}
sctp_close:
  878|  11.1k|{
  879|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
  880|       |	struct epoch_tracker et;
  881|       |#endif
  882|  11.1k|	struct sctp_inpcb *inp;
  883|       |
  884|  11.1k|	inp = (struct sctp_inpcb *)so->so_pcb;
  885|  11.1k|	if (inp == NULL)
  ------------------
  |  Branch (885:6): [True: 0, False: 11.1k]
  ------------------
  886|      0|		return;
  887|       |
  888|       |	/* Inform all the lower layer assoc that we
  889|       |	 * are done.
  890|       |	 */
  891|  11.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.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|  11.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) == 0) {
  ------------------
  |  |  546|  11.1k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (898:6): [True: 11.1k, False: 0]
  ------------------
  899|  11.1k|		inp->sctp_flags |= SCTP_PCB_FLAGS_SOCKET_GONE | SCTP_PCB_FLAGS_CLOSE_IP;
  ------------------
  |  |  546|  11.1k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
              		inp->sctp_flags |= SCTP_PCB_FLAGS_SOCKET_GONE | SCTP_PCB_FLAGS_CLOSE_IP;
  ------------------
  |  |  534|  11.1k|#define SCTP_PCB_FLAGS_CLOSE_IP         0x00040000
  ------------------
  900|  11.1k|#if defined(__Userspace__)
  901|  11.1k|		if (((so->so_options & SCTP_SO_LINGER) && (so->so_linger == 0)) ||
  ------------------
  |  |   52|  11.1k|#define SCTP_SO_LINGER     0x0001
  ------------------
  |  Branch (901:8): [True: 11.1k, False: 0]
  |  Branch (901:45): [True: 11.1k, False: 0]
  ------------------
  902|       |#else
  903|       |		if (((so->so_options & SO_LINGER) && (so->so_linger == 0)) ||
  904|       |#endif
  905|  11.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|  11.1k|			SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  910|  11.1k|			sctp_inpcb_free(inp, SCTP_FREE_SHOULD_USE_ABORT,
  ------------------
  |  |  869|  11.1k|#define SCTP_FREE_SHOULD_USE_ABORT          1
  ------------------
  911|  11.1k|			                SCTP_CALLED_AFTER_CMPSET_OFCLOSE);
  ------------------
  |  |  866|  11.1k|#define SCTP_CALLED_AFTER_CMPSET_OFCLOSE  1
  ------------------
  912|  11.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|  11.1k|		SOCK_LOCK(so);
  ------------------
  |  |  527|  11.1k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  11.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.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|  11.1k|		SCTP_SB_CLEAR(so->so_snd);
  ------------------
  |  |  979|  11.1k|	(sb).sb_cc = 0;		\
  |  |  980|  11.1k|	(sb).sb_mb = NULL;	\
  |  |  981|  11.1k|	(sb).sb_mbcnt = 0;
  ------------------
  931|  11.1k|		SCTP_SB_CLEAR(so->so_rcv);
  ------------------
  |  |  979|  11.1k|	(sb).sb_cc = 0;		\
  |  |  980|  11.1k|	(sb).sb_mb = NULL;	\
  |  |  981|  11.1k|	(sb).sb_mbcnt = 0;
  ------------------
  932|  11.1k|#endif
  933|  11.1k|#if !(defined(__APPLE__) && !defined(__Userspace__))
  934|       |		/* Now null out the reference, we are completely detached. */
  935|  11.1k|		so->so_pcb = NULL;
  936|  11.1k|#endif
  937|  11.1k|		SOCK_UNLOCK(so);
  ------------------
  |  |  529|  11.1k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  11.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  938|  11.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|  11.1k|}
sctp_setopt:
 4508|   226k|{
 4509|   226k|	int error, set_opt;
 4510|   226k|	uint32_t *mopt;
 4511|   226k|	struct sctp_tcb *stcb = NULL;
 4512|   226k|	struct sctp_inpcb *inp = NULL;
 4513|   226k|	uint32_t vrf_id;
 4514|       |
 4515|   226k|	if (optval == NULL) {
  ------------------
  |  Branch (4515:6): [True: 0, False: 226k]
  ------------------
 4516|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4517|      0|		return (EINVAL);
 4518|      0|	}
 4519|   226k|	inp = (struct sctp_inpcb *)so->so_pcb;
 4520|   226k|	if (inp == NULL) {
  ------------------
  |  Branch (4520:6): [True: 0, False: 226k]
  ------------------
 4521|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4522|      0|		return (EINVAL);
 4523|      0|	}
 4524|   226k|	vrf_id = inp->def_vrf_id;
 4525|       |
 4526|   226k|	error = 0;
 4527|   226k|	switch (optname) {
 4528|  11.1k|	case SCTP_NODELAY:
  ------------------
  |  |   88|  11.1k|#define SCTP_NODELAY			0x00000004
  ------------------
  |  Branch (4528:2): [True: 11.1k, False: 215k]
  ------------------
 4529|  11.1k|	case SCTP_AUTOCLOSE:
  ------------------
  |  |   89|  11.1k|#define SCTP_AUTOCLOSE			0x00000005
  ------------------
  |  Branch (4529:2): [True: 0, False: 226k]
  ------------------
 4530|  11.1k|	case SCTP_AUTO_ASCONF:
  ------------------
  |  |  113|  11.1k|#define SCTP_AUTO_ASCONF		0x00000018 /* rw */
  ------------------
  |  Branch (4530:2): [True: 0, False: 226k]
  ------------------
 4531|  11.1k|	case SCTP_EXPLICIT_EOR:
  ------------------
  |  |  119|  11.1k|#define SCTP_EXPLICIT_EOR               0x0000001b
  ------------------
  |  Branch (4531:2): [True: 0, False: 226k]
  ------------------
 4532|  11.1k|	case SCTP_DISABLE_FRAGMENTS:
  ------------------
  |  |   95|  11.1k|#define SCTP_DISABLE_FRAGMENTS		0x00000009
  ------------------
  |  Branch (4532:2): [True: 0, False: 226k]
  ------------------
 4533|  11.1k|	case SCTP_USE_EXT_RCVINFO:
  ------------------
  |  |  112|  11.1k|#define SCTP_USE_EXT_RCVINFO		0x00000017
  ------------------
  |  Branch (4533:2): [True: 0, False: 226k]
  ------------------
 4534|  11.1k|	case SCTP_I_WANT_MAPPED_V4_ADDR:
  ------------------
  |  |  101|  11.1k|#define SCTP_I_WANT_MAPPED_V4_ADDR	0x0000000d
  ------------------
  |  Branch (4534:2): [True: 0, False: 226k]
  ------------------
 4535|       |		/* copy in the option value */
 4536|  11.1k|		SCTP_CHECK_AND_CAST(mopt, optval, uint32_t, optsize);
  ------------------
  |  | 2158|  11.1k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  11.1k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 11.1k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  11.1k|	} else { \
  |  | 2164|  11.1k|		destp = (type *)srcp; \
  |  | 2165|  11.1k|	} \
  |  | 2166|  11.1k|}
  ------------------
 4537|  11.1k|		set_opt = 0;
 4538|  11.1k|		if (error)
  ------------------
  |  Branch (4538:7): [True: 0, False: 11.1k]
  ------------------
 4539|      0|			break;
 4540|  11.1k|		switch (optname) {
  ------------------
  |  Branch (4540:11): [True: 11.1k, False: 0]
  ------------------
 4541|      0|		case SCTP_DISABLE_FRAGMENTS:
  ------------------
  |  |   95|      0|#define SCTP_DISABLE_FRAGMENTS		0x00000009
  ------------------
  |  Branch (4541:3): [True: 0, False: 11.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: 11.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: 11.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: 11.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: 11.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|  11.1k|		case SCTP_NODELAY:
  ------------------
  |  |   88|  11.1k|#define SCTP_NODELAY			0x00000004
  ------------------
  |  Branch (4576:3): [True: 11.1k, False: 0]
  ------------------
 4577|  11.1k|			set_opt = SCTP_PCB_FLAGS_NODELAY;
  ------------------
  |  |  576|  11.1k|#define SCTP_PCB_FLAGS_NODELAY           0x0000000000000100
  ------------------
 4578|  11.1k|			break;
 4579|      0|		case SCTP_AUTOCLOSE:
  ------------------
  |  |   89|      0|#define SCTP_AUTOCLOSE			0x00000005
  ------------------
  |  Branch (4579:3): [True: 0, False: 11.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|  11.1k|		}
 4593|  11.1k|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4594|  11.1k|		if (*mopt != 0) {
  ------------------
  |  Branch (4594:7): [True: 11.1k, False: 0]
  ------------------
 4595|  11.1k|			sctp_feature_on(inp, set_opt);
  ------------------
  |  |   50|  11.1k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 4596|  11.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|  11.1k|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4600|  11.1k|		break;
 4601|  11.1k|	case SCTP_REUSE_PORT:
  ------------------
  |  |  120|  11.1k|#define SCTP_REUSE_PORT                 0x0000001c /* rw */
  ------------------
  |  Branch (4601:2): [True: 11.1k, False: 215k]
  ------------------
 4602|  11.1k|	{
 4603|  11.1k|		SCTP_CHECK_AND_CAST(mopt, optval, uint32_t, optsize);
  ------------------
  |  | 2158|  11.1k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  11.1k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 11.1k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  11.1k|	} else { \
  |  | 2164|  11.1k|		destp = (type *)srcp; \
  |  | 2165|  11.1k|	} \
  |  | 2166|  11.1k|}
  ------------------
 4604|  11.1k|		if ((inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) == 0) {
  ------------------
  |  |  532|  11.1k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
  |  Branch (4604:7): [True: 0, False: 11.1k]
  ------------------
 4605|       |			/* Can't set it after we are bound */
 4606|      0|			error = EINVAL;
 4607|      0|			break;
 4608|      0|		}
 4609|  11.1k|		if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE)) {
  ------------------
  |  |  528|  11.1k|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (4609:7): [True: 0, False: 11.1k]
  ------------------
 4610|       |			/* Can't do this for a 1-m socket */
 4611|      0|			error = EINVAL;
 4612|      0|			break;
 4613|      0|		}
 4614|  11.1k|		if (optval)
  ------------------
  |  Branch (4614:7): [True: 11.1k, False: 0]
  ------------------
 4615|  11.1k|			sctp_feature_on(inp, SCTP_PCB_FLAGS_PORTREUSE);
  ------------------
  |  |   50|  11.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|  11.1k|		break;
 4619|  11.1k|	}
 4620|      0|	case SCTP_PARTIAL_DELIVERY_POINT:
  ------------------
  |  |  105|      0|#define SCTP_PARTIAL_DELIVERY_POINT     0x00000011
  ------------------
  |  Branch (4620:2): [True: 0, False: 226k]
  ------------------
 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.96k|	case SCTP_FRAGMENT_INTERLEAVE:
  ------------------
  |  |  104|  5.96k|#define SCTP_FRAGMENT_INTERLEAVE        0x00000010
  ------------------
  |  Branch (4633:2): [True: 5.96k, False: 220k]
  ------------------
 4634|       |		/* not yet until we re-write sctp_recvmsg() */
 4635|  5.96k|	{
 4636|  5.96k|		uint32_t *level;
 4637|       |
 4638|  5.96k|		SCTP_CHECK_AND_CAST(level, optval, uint32_t, optsize);
  ------------------
  |  | 2158|  5.96k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  5.96k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 5.96k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  5.96k|	} else { \
  |  | 2164|  5.96k|		destp = (type *)srcp; \
  |  | 2165|  5.96k|	} \
  |  | 2166|  5.96k|}
  ------------------
 4639|  5.96k|		if (*level == SCTP_FRAG_LEVEL_2) {
  ------------------
  |  |  346|  5.96k|#define SCTP_FRAG_LEVEL_2    0x00000002
  ------------------
  |  Branch (4639:7): [True: 5.96k, False: 0]
  ------------------
 4640|  5.96k|			sctp_feature_on(inp, SCTP_PCB_FLAGS_FRAG_INTERLEAVE);
  ------------------
  |  |   50|  5.96k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 4641|  5.96k|			sctp_feature_on(inp, SCTP_PCB_FLAGS_INTERLEAVE_STRMS);
  ------------------
  |  |   50|  5.96k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 4642|  5.96k|		} 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.96k|		break;
 4654|  5.96k|	}
 4655|  5.96k|	case SCTP_INTERLEAVING_SUPPORTED:
  ------------------
  |  |  204|  5.96k|#define SCTP_INTERLEAVING_SUPPORTED	0x00001206
  ------------------
  |  Branch (4655:2): [True: 5.96k, False: 220k]
  ------------------
 4656|  5.96k|	{
 4657|  5.96k|		struct sctp_assoc_value *av;
 4658|       |
 4659|  5.96k|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|  5.96k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  5.96k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 5.96k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  5.96k|	} else { \
  |  | 2164|  5.96k|		destp = (type *)srcp; \
  |  | 2165|  5.96k|	} \
  |  | 2166|  5.96k|}
  ------------------
 4660|  5.96k|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|  5.96k|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|  5.96k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|  5.96k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 5.96k, False: 0]
  |  |  ------------------
  |  | 2139|  5.96k|	    (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.96k|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|  5.96k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|  5.96k|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|  5.96k|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  | 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.96k|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|  5.96k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|  5.96k|	} 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.96k|}
  ------------------
 4661|       |
 4662|  5.96k|		if (stcb) {
  ------------------
  |  Branch (4662:7): [True: 0, False: 5.96k]
  ------------------
 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.96k|		} else {
 4667|  5.96k|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|  5.96k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (4667:8): [True: 5.96k, 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.96k|			     (av->assoc_id == SCTP_FUTURE_ASSOC))) {
  ------------------
  |  |   63|      0|#define SCTP_FUTURE_ASSOC  0
  ------------------
  |  Branch (4670:9): [True: 0, False: 0]
  ------------------
 4671|  5.96k|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  5.96k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4672|  5.96k|				if (av->assoc_value == 0) {
  ------------------
  |  Branch (4672:9): [True: 0, False: 5.96k]
  ------------------
 4673|      0|					inp->idata_supported = 0;
 4674|  5.96k|				} else {
 4675|  5.96k|					if ((sctp_is_feature_on(inp, SCTP_PCB_FLAGS_FRAG_INTERLEAVE)) &&
  ------------------
  |  |   52|  5.96k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (4675:10): [True: 5.96k, False: 0]
  ------------------
 4676|  5.96k|					    (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_INTERLEAVE_STRMS))) {
  ------------------
  |  |   52|  5.96k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
  |  Branch (4676:10): [True: 5.96k, False: 0]
  ------------------
 4677|  5.96k|						inp->idata_supported = 1;
 4678|  5.96k|					} 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.96k|				}
 4684|  5.96k|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  5.96k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.96k|	do {                         \
  |  |  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4685|  5.96k|			} else {
 4686|      0|				SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 4687|      0|				error = EINVAL;
 4688|      0|			}
 4689|  5.96k|		}
 4690|  5.96k|		break;
 4691|  5.96k|	}
 4692|  5.96k|	case SCTP_CMT_ON_OFF:
  ------------------
  |  |  192|      0|#define SCTP_CMT_ON_OFF                 0x00001200
  ------------------
  |  Branch (4692:2): [True: 0, False: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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|  11.1k|	case SCTP_ENABLE_STREAM_RESET:
  ------------------
  |  |  174|  11.1k|#define SCTP_ENABLE_STREAM_RESET	0x00000900 /* struct sctp_assoc_value */
  ------------------
  |  Branch (5460:2): [True: 11.1k, False: 215k]
  ------------------
 5461|  11.1k|	{
 5462|  11.1k|		struct sctp_assoc_value *av;
 5463|       |
 5464|  11.1k|		SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
  ------------------
  |  | 2158|  11.1k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  11.1k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 11.1k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  11.1k|	} else { \
  |  | 2164|  11.1k|		destp = (type *)srcp; \
  |  | 2165|  11.1k|	} \
  |  | 2166|  11.1k|}
  ------------------
 5465|  11.1k|		if (av->assoc_value & (~SCTP_ENABLE_VALUE_MASK)) {
  ------------------
  |  |  183|  11.1k|#define SCTP_ENABLE_VALUE_MASK		0x00000007
  ------------------
  |  Branch (5465:7): [True: 0, False: 11.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|  11.1k|		SCTP_FIND_STCB(inp, stcb, av->assoc_id);
  ------------------
  |  | 2137|  11.1k|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|  11.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|  11.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 11.1k, False: 0]
  |  |  ------------------
  |  | 2139|  11.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|  11.1k|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|  11.1k|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|  11.1k|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 11.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|  11.1k|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|  11.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|  11.1k|}
  ------------------
 5471|  11.1k|		if (stcb) {
  ------------------
  |  Branch (5471:7): [True: 0, False: 11.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|  11.1k|		} else {
 5475|  11.1k|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|  11.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5475:8): [True: 11.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|  11.1k|			      (av->assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (5479:10): [True: 0, False: 0]
  ------------------
 5480|  11.1k|				SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5481|  11.1k|				inp->local_strreset_support = (uint8_t)av->assoc_value;
 5482|  11.1k|				SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5483|  11.1k|			}
 5484|  11.1k|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|  11.1k|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (5484:8): [True: 0, False: 11.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|  11.1k|		}
 5496|  11.1k|		break;
 5497|  11.1k|	}
 5498|  11.1k|	case SCTP_RESET_STREAMS:
  ------------------
  |  |  175|  2.48k|#define SCTP_RESET_STREAMS		0x00000901 /* struct sctp_reset_streams */
  ------------------
  |  Branch (5498:2): [True: 2.48k, False: 223k]
  ------------------
 5499|  2.48k|	{
 5500|  2.48k|		struct sctp_reset_streams *strrst;
 5501|  2.48k|		int i, send_out = 0;
 5502|  2.48k|		int send_in = 0;
 5503|       |
 5504|  2.48k|		SCTP_CHECK_AND_CAST(strrst, optval, struct sctp_reset_streams, optsize);
  ------------------
  |  | 2158|  2.48k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  2.48k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 2.48k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  2.48k|	} else { \
  |  | 2164|  2.48k|		destp = (type *)srcp; \
  |  | 2165|  2.48k|	} \
  |  | 2166|  2.48k|}
  ------------------
 5505|  2.48k|		SCTP_FIND_STCB(inp, stcb, strrst->srs_assoc_id);
  ------------------
  |  | 2137|  2.48k|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|  2.48k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|  2.48k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 2.48k, False: 0]
  |  |  ------------------
  |  | 2139|  2.48k|	    (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.48k|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|  2.48k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  2.48k|	do {                         \
  |  |  |  |  |  |  113|  2.48k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.48k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.48k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 2.48k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|  2.48k|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|  2.48k|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 2.48k, False: 0]
  |  |  ------------------
  |  | 2143|  2.48k|			SCTP_TCB_LOCK(stcb); \
  |  |  ------------------
  |  |  |  |  466|  2.48k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  2.48k|	do {                         \
  |  |  |  |  |  |  113|  2.48k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.48k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.48k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 2.48k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2144|  2.48k|		} \
  |  | 2145|  2.48k|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|  2.48k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  2.48k|	do {                         \
  |  |  |  |  |  |  113|  2.48k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.48k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.48k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 2.48k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|  2.48k|	} 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.48k|}
  ------------------
 5506|  2.48k|		if (stcb == NULL) {
  ------------------
  |  Branch (5506:7): [True: 0, False: 2.48k]
  ------------------
 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.48k|		if (stcb->asoc.reconfig_supported == 0) {
  ------------------
  |  Branch (5511:7): [True: 0, False: 2.48k]
  ------------------
 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.48k|		if (SCTP_GET_STATE(stcb) != SCTP_STATE_OPEN) {
  ------------------
  |  |  472|  2.48k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  2.48k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if (SCTP_GET_STATE(stcb) != SCTP_STATE_OPEN) {
  ------------------
  |  |  459|  2.48k|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (5520:7): [True: 0, False: 2.48k]
  ------------------
 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.48k|		if (sizeof(struct sctp_reset_streams) +
  ------------------
  |  Branch (5526:7): [True: 0, False: 2.48k]
  ------------------
 5527|  2.48k|		    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.48k|		if (strrst->srs_flags & SCTP_STREAM_RESET_INCOMING) {
  ------------------
  |  |  185|  2.48k|#define SCTP_STREAM_RESET_INCOMING	0x00000001
  ------------------
  |  Branch (5532:7): [True: 2.48k, False: 0]
  ------------------
 5533|  2.48k|			send_in = 1;
 5534|  2.48k|			if (stcb->asoc.stream_reset_outstanding) {
  ------------------
  |  Branch (5534:8): [True: 0, False: 2.48k]
  ------------------
 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.48k|		}
 5541|  2.48k|		if (strrst->srs_flags & SCTP_STREAM_RESET_OUTGOING) {
  ------------------
  |  |  186|  2.48k|#define SCTP_STREAM_RESET_OUTGOING	0x00000002
  ------------------
  |  Branch (5541:7): [True: 2.48k, False: 0]
  ------------------
 5542|  2.48k|			send_out = 1;
 5543|  2.48k|		}
 5544|  2.48k|		if ((strrst->srs_number_streams > SCTP_MAX_STREAMS_AT_ONCE_RESET) && send_in) {
  ------------------
  |  |  697|  2.48k|#define SCTP_MAX_STREAMS_AT_ONCE_RESET 200
  ------------------
  |  Branch (5544:7): [True: 0, False: 2.48k]
  |  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.48k|		if ((send_in == 0) && (send_out == 0)) {
  ------------------
  |  Branch (5550:7): [True: 0, False: 2.48k]
  |  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.48k|		for (i = 0; i < strrst->srs_number_streams; i++) {
  ------------------
  |  Branch (5556:15): [True: 0, False: 2.48k]
  ------------------
 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.48k|		if (error) {
  ------------------
  |  Branch (5570:7): [True: 0, False: 2.48k]
  ------------------
 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.48k|		if (send_out) {
  ------------------
  |  Branch (5574:7): [True: 2.48k, False: 0]
  ------------------
 5575|  2.48k|			int cnt;
 5576|  2.48k|			uint16_t strm;
 5577|  2.48k|			if (strrst->srs_number_streams) {
  ------------------
  |  Branch (5577:8): [True: 0, False: 2.48k]
  ------------------
 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.48k|			} else {
 5586|       |				/* Its all */
 5587|   640k|				for (i = 0, cnt = 0; i < stcb->asoc.streamoutcnt; i++) {
  ------------------
  |  Branch (5587:26): [True: 638k, False: 2.48k]
  ------------------
 5588|   638k|					if (stcb->asoc.strmout[i].state == SCTP_STREAM_OPEN) {
  ------------------
  |  |  670|   638k|#define SCTP_STREAM_OPEN             0x02
  ------------------
  |  Branch (5588:10): [True: 638k, False: 0]
  ------------------
 5589|   638k|						stcb->asoc.strmout[i].state = SCTP_STREAM_RESET_PENDING;
  ------------------
  |  |  671|   638k|#define SCTP_STREAM_RESET_PENDING    0x03
  ------------------
 5590|   638k|						cnt++;
 5591|   638k|					}
 5592|   638k|				}
 5593|  2.48k|			}
 5594|  2.48k|		}
 5595|  2.48k|		if (send_in) {
  ------------------
  |  Branch (5595:7): [True: 2.48k, False: 0]
  ------------------
 5596|  2.48k|			error = sctp_send_str_reset_req(stcb, strrst->srs_number_streams,
 5597|  2.48k|							strrst->srs_stream_list,
 5598|  2.48k|							send_in, 0, 0, 0, 0, 0);
 5599|  2.48k|		} 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.48k|		if (error == 0) {
  ------------------
  |  Branch (5602:7): [True: 2.48k, False: 0]
  ------------------
 5603|  2.48k|			sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_STRRST_REQ, SCTP_SO_LOCKED);
  ------------------
  |  |  373|  2.48k|#define SCTP_OUTPUT_FROM_STRRST_REQ     12
  ------------------
              			sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_STRRST_REQ, SCTP_SO_LOCKED);
  ------------------
  |  |  959|  2.48k|#define SCTP_SO_LOCKED		1
  ------------------
 5604|  2.48k|		} 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.48k|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  2.48k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  2.48k|	do {                         \
  |  |  |  |  113|  2.48k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.48k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.48k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.48k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5613|  2.48k|		break;
 5614|  2.48k|	}
 5615|  2.48k|	case SCTP_ADD_STREAMS:
  ------------------
  |  |  177|      0|#define SCTP_ADD_STREAMS		0x00000903 /* struct sctp_add_streams */
  ------------------
  |  Branch (5615:2): [True: 0, False: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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|  11.1k|	case SCTP_INITMSG:
  ------------------
  |  |   87|  11.1k|#define SCTP_INITMSG			0x00000003
  ------------------
  |  Branch (6610:2): [True: 11.1k, False: 215k]
  ------------------
 6611|  11.1k|	{
 6612|  11.1k|		struct sctp_initmsg *sinit;
 6613|       |
 6614|  11.1k|		SCTP_CHECK_AND_CAST(sinit, optval, struct sctp_initmsg, optsize);
  ------------------
  |  | 2158|  11.1k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  11.1k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 11.1k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  11.1k|	} else { \
  |  | 2164|  11.1k|		destp = (type *)srcp; \
  |  | 2165|  11.1k|	} \
  |  | 2166|  11.1k|}
  ------------------
 6615|  11.1k|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6616|  11.1k|		if (sinit->sinit_num_ostreams)
  ------------------
  |  Branch (6616:7): [True: 11.1k, False: 0]
  ------------------
 6617|  11.1k|			inp->sctp_ep.pre_open_stream_count = sinit->sinit_num_ostreams;
 6618|       |
 6619|  11.1k|		if (sinit->sinit_max_instreams)
  ------------------
  |  Branch (6619:7): [True: 11.1k, False: 0]
  ------------------
 6620|  11.1k|			inp->sctp_ep.max_open_streams_intome = sinit->sinit_max_instreams;
 6621|       |
 6622|  11.1k|		if (sinit->sinit_max_attempts)
  ------------------
  |  Branch (6622:7): [True: 11.1k, False: 0]
  ------------------
 6623|  11.1k|			inp->sctp_ep.max_init_times = sinit->sinit_max_attempts;
 6624|       |
 6625|  11.1k|		if (sinit->sinit_max_init_timeo)
  ------------------
  |  Branch (6625:7): [True: 11.1k, False: 0]
  ------------------
 6626|  11.1k|			inp->sctp_ep.initial_init_rto_max = sinit->sinit_max_init_timeo;
 6627|  11.1k|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6628|  11.1k|		break;
 6629|  11.1k|	}
 6630|  11.1k|	case SCTP_PRIMARY_ADDR:
  ------------------
  |  |   91|      0|#define SCTP_PRIMARY_ADDR		0x00000007
  ------------------
  |  Branch (6630:2): [True: 0, False: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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|   144k|	case SCTP_EVENT:
  ------------------
  |  |  122|   144k|#define SCTP_EVENT                      0x0000001e
  ------------------
  |  Branch (6976:2): [True: 144k, False: 81.3k]
  ------------------
 6977|   144k|	{
 6978|   144k|		struct sctp_event *event;
 6979|   144k|		uint32_t event_type;
 6980|       |
 6981|   144k|		SCTP_CHECK_AND_CAST(event, optval, struct sctp_event, optsize);
  ------------------
  |  | 2158|   144k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|   144k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 144k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|   144k|	} else { \
  |  | 2164|   144k|		destp = (type *)srcp; \
  |  | 2165|   144k|	} \
  |  | 2166|   144k|}
  ------------------
 6982|   144k|		SCTP_FIND_STCB(inp, stcb, event->se_assoc_id);
  ------------------
  |  | 2137|   144k|#define SCTP_FIND_STCB(inp, stcb, assoc_id) { \
  |  | 2138|   144k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||\
  |  |  ------------------
  |  |  |  |  529|   144k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (2138:6): [True: 144k, False: 0]
  |  |  ------------------
  |  | 2139|   144k|	    (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|   144k|		SCTP_INP_RLOCK(inp); \
  |  |  ------------------
  |  |  |  |  376|   144k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|   144k|	do {                         \
  |  |  |  |  |  |  113|   144k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 144k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|   144k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 144k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2141|   144k|		stcb = LIST_FIRST(&inp->sctp_asoc_list); \
  |  | 2142|   144k|		if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (2142:7): [True: 0, False: 144k]
  |  |  ------------------
  |  | 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|   144k|		SCTP_INP_RUNLOCK(inp); \
  |  |  ------------------
  |  |  |  |  381|   144k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|   144k|	do {                         \
  |  |  |  |  |  |  113|   144k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 144k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|   144k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 144k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 2146|   144k|	} 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|   144k|}
  ------------------
 6983|   144k|		switch (event->se_type) {
 6984|  11.1k|		case SCTP_ASSOC_CHANGE:
  ------------------
  |  |  553|  11.1k|#define SCTP_ASSOC_CHANGE                       0x0001
  ------------------
  |  Branch (6984:3): [True: 11.1k, False: 133k]
  ------------------
 6985|  11.1k|			event_type = SCTP_PCB_FLAGS_RECVASSOCEVNT;
  ------------------
  |  |  579|  11.1k|#define SCTP_PCB_FLAGS_RECVASSOCEVNT     0x0000000000000800
  ------------------
 6986|  11.1k|			break;
 6987|  11.1k|		case SCTP_PEER_ADDR_CHANGE:
  ------------------
  |  |  554|  11.1k|#define SCTP_PEER_ADDR_CHANGE                   0x0002
  ------------------
  |  Branch (6987:3): [True: 11.1k, False: 133k]
  ------------------
 6988|  11.1k|			event_type = SCTP_PCB_FLAGS_RECVPADDREVNT;
  ------------------
  |  |  580|  11.1k|#define SCTP_PCB_FLAGS_RECVPADDREVNT     0x0000000000001000
  ------------------
 6989|  11.1k|			break;
 6990|  11.1k|		case SCTP_REMOTE_ERROR:
  ------------------
  |  |  555|  11.1k|#define SCTP_REMOTE_ERROR                       0x0003
  ------------------
  |  Branch (6990:3): [True: 11.1k, False: 133k]
  ------------------
 6991|  11.1k|			event_type = SCTP_PCB_FLAGS_RECVPEERERR;
  ------------------
  |  |  581|  11.1k|#define SCTP_PCB_FLAGS_RECVPEERERR       0x0000000000002000
  ------------------
 6992|  11.1k|			break;
 6993|  11.1k|		case SCTP_SEND_FAILED:
  ------------------
  |  |  556|  11.1k|#define SCTP_SEND_FAILED                        0x0004
  ------------------
  |  Branch (6993:3): [True: 11.1k, False: 133k]
  ------------------
 6994|  11.1k|			event_type = SCTP_PCB_FLAGS_RECVSENDFAILEVNT;
  ------------------
  |  |  582|  11.1k|#define SCTP_PCB_FLAGS_RECVSENDFAILEVNT  0x0000000000004000 /* deprecated */
  ------------------
 6995|  11.1k|			break;
 6996|  11.1k|		case SCTP_SHUTDOWN_EVENT:
  ------------------
  |  |  557|  11.1k|#define SCTP_SHUTDOWN_EVENT                     0x0005
  ------------------
  |  Branch (6996:3): [True: 11.1k, False: 133k]
  ------------------
 6997|  11.1k|			event_type = SCTP_PCB_FLAGS_RECVSHUTDOWNEVNT;
  ------------------
  |  |  583|  11.1k|#define SCTP_PCB_FLAGS_RECVSHUTDOWNEVNT  0x0000000000008000
  ------------------
 6998|  11.1k|			break;
 6999|  11.1k|		case SCTP_ADAPTATION_INDICATION:
  ------------------
  |  |  558|  11.1k|#define SCTP_ADAPTATION_INDICATION              0x0006
  ------------------
  |  Branch (6999:3): [True: 11.1k, False: 133k]
  ------------------
 7000|  11.1k|			event_type = SCTP_PCB_FLAGS_ADAPTATIONEVNT;
  ------------------
  |  |  584|  11.1k|#define SCTP_PCB_FLAGS_ADAPTATIONEVNT    0x0000000000010000
  ------------------
 7001|  11.1k|			break;
 7002|  11.1k|		case SCTP_PARTIAL_DELIVERY_EVENT:
  ------------------
  |  |  561|  11.1k|#define SCTP_PARTIAL_DELIVERY_EVENT             0x0007
  ------------------
  |  Branch (7002:3): [True: 11.1k, False: 133k]
  ------------------
 7003|  11.1k|			event_type = SCTP_PCB_FLAGS_PDAPIEVNT;
  ------------------
  |  |  585|  11.1k|#define SCTP_PCB_FLAGS_PDAPIEVNT         0x0000000000020000
  ------------------
 7004|  11.1k|			break;
 7005|  11.1k|		case SCTP_AUTHENTICATION_EVENT:
  ------------------
  |  |  562|  11.1k|#define SCTP_AUTHENTICATION_EVENT               0x0008
  ------------------
  |  Branch (7005:3): [True: 11.1k, False: 133k]
  ------------------
 7006|  11.1k|			event_type = SCTP_PCB_FLAGS_AUTHEVNT;
  ------------------
  |  |  586|  11.1k|#define SCTP_PCB_FLAGS_AUTHEVNT          0x0000000000040000
  ------------------
 7007|  11.1k|			break;
 7008|  11.1k|		case SCTP_STREAM_RESET_EVENT:
  ------------------
  |  |  563|  11.1k|#define SCTP_STREAM_RESET_EVENT                 0x0009
  ------------------
  |  Branch (7008:3): [True: 11.1k, False: 133k]
  ------------------
 7009|  11.1k|			event_type = SCTP_PCB_FLAGS_STREAM_RESETEVNT;
  ------------------
  |  |  587|  11.1k|#define SCTP_PCB_FLAGS_STREAM_RESETEVNT  0x0000000000080000
  ------------------
 7010|  11.1k|			break;
 7011|  11.1k|		case SCTP_SENDER_DRY_EVENT:
  ------------------
  |  |  564|  11.1k|#define SCTP_SENDER_DRY_EVENT                   0x000a
  ------------------
  |  Branch (7011:3): [True: 11.1k, False: 133k]
  ------------------
 7012|  11.1k|			event_type = SCTP_PCB_FLAGS_DRYEVNT;
  ------------------
  |  |  593|  11.1k|#define SCTP_PCB_FLAGS_DRYEVNT           0x0000000004000000
  ------------------
 7013|  11.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: 144k]
  ------------------
 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|  11.1k|		case SCTP_ASSOC_RESET_EVENT:
  ------------------
  |  |  566|  11.1k|#define SCTP_ASSOC_RESET_EVENT                  0x000c
  ------------------
  |  Branch (7019:3): [True: 11.1k, False: 133k]
  ------------------
 7020|  11.1k|			event_type = SCTP_PCB_FLAGS_ASSOC_RESETEVNT;
  ------------------
  |  |  596|  11.1k|#define SCTP_PCB_FLAGS_ASSOC_RESETEVNT   0x0000000020000000
  ------------------
 7021|  11.1k|			break;
 7022|  11.1k|		case SCTP_STREAM_CHANGE_EVENT:
  ------------------
  |  |  567|  11.1k|#define SCTP_STREAM_CHANGE_EVENT                0x000d
  ------------------
  |  Branch (7022:3): [True: 11.1k, False: 133k]
  ------------------
 7023|  11.1k|			event_type = SCTP_PCB_FLAGS_STREAM_CHANGEEVNT;
  ------------------
  |  |  597|  11.1k|#define SCTP_PCB_FLAGS_STREAM_CHANGEEVNT 0x0000000040000000
  ------------------
 7024|  11.1k|			break;
 7025|  11.1k|		case SCTP_SEND_FAILED_EVENT:
  ------------------
  |  |  568|  11.1k|#define SCTP_SEND_FAILED_EVENT                  0x000e
  ------------------
  |  Branch (7025:3): [True: 11.1k, False: 133k]
  ------------------
 7026|  11.1k|			event_type = SCTP_PCB_FLAGS_RECVNSENDFAILEVNT;
  ------------------
  |  |  598|  11.1k|#define SCTP_PCB_FLAGS_RECVNSENDFAILEVNT 0x0000000080000000
  ------------------
 7027|  11.1k|			break;
 7028|      0|		default:
  ------------------
  |  Branch (7028:3): [True: 0, False: 144k]
  ------------------
 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|   144k|		}
 7034|   144k|		if (event_type > 0) {
  ------------------
  |  Branch (7034:7): [True: 144k, False: 0]
  ------------------
 7035|   144k|			if (stcb) {
  ------------------
  |  Branch (7035:8): [True: 0, False: 144k]
  ------------------
 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|   144k|			} 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|   144k|				if ((event_type == SCTP_PCB_FLAGS_DRYEVNT) &&
  ------------------
  |  |  593|   144k|#define SCTP_PCB_FLAGS_DRYEVNT           0x0000000004000000
  ------------------
  |  Branch (7054:9): [True: 11.1k, False: 133k]
  ------------------
 7055|  11.1k|				    (inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|  11.1k|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7055:9): [True: 0, False: 11.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|   144k|				if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|   144k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (7062:9): [True: 144k, 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|   144k|				      (event->se_assoc_id == SCTP_ALL_ASSOC)))) {
  ------------------
  |  |   65|      0|#define SCTP_ALL_ASSOC     2
  ------------------
  |  Branch (7066:11): [True: 0, False: 0]
  ------------------
 7067|   144k|					SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|   144k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   144k|	do {                         \
  |  |  |  |  113|   144k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 144k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   144k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 144k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7068|   144k|					if (event->se_on) {
  ------------------
  |  Branch (7068:10): [True: 144k, False: 0]
  ------------------
 7069|   144k|						sctp_feature_on(inp, event_type);
  ------------------
  |  |   50|   144k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 7070|   144k|					} else {
 7071|      0|						sctp_feature_off(inp, event_type);
  ------------------
  |  |   51|      0|#define sctp_feature_off(inp, feature) (inp->sctp_features &= ~feature)
  ------------------
 7072|      0|					}
 7073|   144k|					SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|   144k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   144k|	do {                         \
  |  |  |  |  113|   144k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 144k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   144k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 144k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7074|   144k|				}
 7075|   144k|				if ((inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) &&
  ------------------
  |  |  528|   144k|#define SCTP_PCB_FLAGS_UDPTYPE		0x00000001
  ------------------
  |  Branch (7075:9): [True: 0, False: 144k]
  ------------------
 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|   144k|			}
 7091|   144k|		} 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|   144k|		break;
 7097|   144k|	}
 7098|   144k|	case SCTP_RECVRCVINFO:
  ------------------
  |  |  123|  11.1k|#define SCTP_RECVRCVINFO                0x0000001f
  ------------------
  |  Branch (7098:2): [True: 11.1k, False: 215k]
  ------------------
 7099|  11.1k|	{
 7100|  11.1k|		int *onoff;
 7101|       |
 7102|  11.1k|		SCTP_CHECK_AND_CAST(onoff, optval, int, optsize);
  ------------------
  |  | 2158|  11.1k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  11.1k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 11.1k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  11.1k|	} else { \
  |  | 2164|  11.1k|		destp = (type *)srcp; \
  |  | 2165|  11.1k|	} \
  |  | 2166|  11.1k|}
  ------------------
 7103|  11.1k|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7104|  11.1k|		if (*onoff != 0) {
  ------------------
  |  Branch (7104:7): [True: 11.1k, False: 0]
  ------------------
 7105|  11.1k|			sctp_feature_on(inp, SCTP_PCB_FLAGS_RECVRCVINFO);
  ------------------
  |  |   50|  11.1k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 7106|  11.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|  11.1k|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7110|  11.1k|		break;
 7111|  11.1k|	}
 7112|  11.1k|	case SCTP_RECVNXTINFO:
  ------------------
  |  |  124|  11.1k|#define SCTP_RECVNXTINFO                0x00000020
  ------------------
  |  Branch (7112:2): [True: 11.1k, False: 215k]
  ------------------
 7113|  11.1k|	{
 7114|  11.1k|		int *onoff;
 7115|       |
 7116|  11.1k|		SCTP_CHECK_AND_CAST(onoff, optval, int, optsize);
  ------------------
  |  | 2158|  11.1k|#define SCTP_CHECK_AND_CAST(destp, srcp, type, size) {\
  |  | 2159|  11.1k|	if (size < sizeof(type)) { \
  |  |  ------------------
  |  |  |  Branch (2159:6): [True: 0, False: 11.1k]
  |  |  ------------------
  |  | 2160|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); \
  |  | 2161|      0|		error = EINVAL; \
  |  | 2162|      0|		break; \
  |  | 2163|  11.1k|	} else { \
  |  | 2164|  11.1k|		destp = (type *)srcp; \
  |  | 2165|  11.1k|	} \
  |  | 2166|  11.1k|}
  ------------------
 7117|  11.1k|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7118|  11.1k|		if (*onoff != 0) {
  ------------------
  |  Branch (7118:7): [True: 11.1k, False: 0]
  ------------------
 7119|  11.1k|			sctp_feature_on(inp, SCTP_PCB_FLAGS_RECVNXTINFO);
  ------------------
  |  |   50|  11.1k|#define sctp_feature_on(inp, feature)  (inp->sctp_features |= feature)
  ------------------
 7120|  11.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|  11.1k|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7124|  11.1k|		break;
 7125|  11.1k|	}
 7126|  11.1k|	case SCTP_DEFAULT_SNDINFO:
  ------------------
  |  |  125|      0|#define SCTP_DEFAULT_SNDINFO            0x00000021
  ------------------
  |  Branch (7126:2): [True: 0, False: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 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: 226k]
  ------------------
 7814|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOPROTOOPT);
 7815|      0|		error = ENOPROTOOPT;
 7816|      0|		break;
 7817|   226k|	} /* end switch (opt) */
 7818|   226k|	return (error);
 7819|   226k|}
sctpconn_connect:
 8129|  11.1k|{
 8130|       |#ifdef SCTP_MVRF
 8131|       |	int i, fnd = 0;
 8132|       |#endif
 8133|  11.1k|	void *p = NULL;
 8134|  11.1k|	int error = 0;
 8135|  11.1k|	int create_lock_on = 0;
 8136|  11.1k|	uint32_t vrf_id;
 8137|  11.1k|	struct sctp_inpcb *inp;
 8138|  11.1k|	struct sctp_tcb *stcb = NULL;
 8139|       |
 8140|  11.1k|	inp = (struct sctp_inpcb *)so->so_pcb;
 8141|  11.1k|	if (inp == NULL) {
  ------------------
  |  Branch (8141:6): [True: 0, False: 11.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|  11.1k|	if (addr == NULL) {
  ------------------
  |  Branch (8146:6): [True: 0, False: 11.1k]
  ------------------
 8147|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 8148|      0|		return EINVAL;
 8149|      0|	}
 8150|  11.1k|	switch (addr->sa_family) {
 8151|      0|#ifdef INET
 8152|      0|	case AF_INET:
  ------------------
  |  Branch (8152:2): [True: 0, False: 11.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: 11.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|  11.1k|	case AF_CONN:
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (8171:2): [True: 11.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|  11.1k|		break;
 8179|      0|	default:
  ------------------
  |  Branch (8179:2): [True: 0, False: 11.1k]
  ------------------
 8180|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EAFNOSUPPORT);
 8181|      0|		return (EAFNOSUPPORT);
 8182|  11.1k|	}
 8183|  11.1k|	SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|  11.1k|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|  11.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 8184|  11.1k|	SCTP_ASOC_CREATE_LOCK(inp);
  ------------------
  |  |  427|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8185|  11.1k|	create_lock_on = 1;
 8186|       |
 8187|       |
 8188|  11.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|  11.1k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (8188:6): [True: 0, False: 11.1k]
  ------------------
 8189|  11.1k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE)) {
  ------------------
  |  |  546|  11.1k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (8189:6): [True: 0, False: 11.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|  11.1k|#ifdef INET6
 8196|  11.1k|	if (((inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) == 0) &&
  ------------------
  |  |  544|  11.1k|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (8196:6): [True: 11.1k, False: 0]
  ------------------
 8197|  11.1k|	    (addr->sa_family == AF_INET6)) {
  ------------------
  |  Branch (8197:6): [True: 0, False: 11.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|  11.1k|#endif
 8203|  11.1k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) {
  ------------------
  |  |  532|  11.1k|#define SCTP_PCB_FLAGS_UNBOUND		0x00000010
  ------------------
  |  Branch (8203:6): [True: 0, False: 11.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|  11.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) &&
  ------------------
  |  |  540|  11.1k|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (8211:6): [True: 0, False: 11.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|  11.1k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) &&
  ------------------
  |  |  529|  11.1k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (8217:6): [True: 11.1k, False: 0]
  ------------------
 8218|  11.1k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_CONNECTED)) {
  ------------------
  |  |  539|  11.1k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (8218:6): [True: 0, False: 11.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|  11.1k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_CONNECTED) {
  ------------------
  |  |  539|  11.1k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (8224:6): [True: 0, False: 11.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|  11.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|  11.1k|		SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|  11.1k|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|  11.1k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 8234|  11.1k|		stcb = sctp_findassociation_ep_addr(&inp, addr, NULL, NULL, NULL);
 8235|  11.1k|		if (stcb == NULL) {
  ------------------
  |  Branch (8235:7): [True: 11.1k, False: 0]
  ------------------
 8236|  11.1k|			SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|  11.1k|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|  11.1k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 8237|  11.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|  11.1k|	}
 8241|  11.1k|	if (stcb != NULL) {
  ------------------
  |  Branch (8241:6): [True: 0, False: 11.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|  11.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|  11.1k|	stcb = sctp_aloc_assoc_connected(inp, addr, &error, 0, 0, vrf_id,
 8264|  11.1k|	                                 inp->sctp_ep.pre_open_stream_count,
 8265|  11.1k|	                                 inp->sctp_ep.port, p,
 8266|  11.1k|	                                 SCTP_INITIALIZE_AUTH_PARAMS);
  ------------------
  |  |  767|  11.1k|#define SCTP_INITIALIZE_AUTH_PARAMS		1
  ------------------
 8267|  11.1k|	if (stcb == NULL) {
  ------------------
  |  Branch (8267:6): [True: 0, False: 11.1k]
  ------------------
 8268|       |		/* Gak! no memory */
 8269|      0|		goto out_now;
 8270|      0|	}
 8271|  11.1k|	SCTP_SET_STATE(stcb, SCTP_STATE_COOKIE_WAIT);
  ------------------
  |  |  474|  11.1k|	sctp_set_state(_stcb, _state)
  ------------------
 8272|  11.1k|	(void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_entered);
  ------------------
  |  |  991|  11.1k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 8273|       |
 8274|  11.1k|	sctp_send_initiate(inp, stcb, SCTP_SO_LOCKED);
  ------------------
  |  |  959|  11.1k|#define SCTP_SO_LOCKED		1
  ------------------
 8275|  11.1k|	SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  11.1k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8276|  11.1k| out_now:
 8277|  11.1k|	if (create_lock_on) {
  ------------------
  |  Branch (8277:6): [True: 11.1k, False: 0]
  ------------------
 8278|  11.1k|		SCTP_ASOC_CREATE_UNLOCK(inp);
  ------------------
  |  |  430|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_create_mtx) == 0, ("%s:%d: inp_create_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8279|  11.1k|	}
 8280|       |
 8281|  11.1k|	SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|  11.1k|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|  11.1k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 8282|  11.1k|	return (error);
 8283|  11.1k|}
register_recv_cb:
 8977|  11.1k|{
 8978|  11.1k|	struct sctp_inpcb *inp;
 8979|       |
 8980|  11.1k|	inp = (struct sctp_inpcb *) so->so_pcb;
 8981|  11.1k|	if (inp == NULL) {
  ------------------
  |  Branch (8981:6): [True: 0, False: 11.1k]
  ------------------
 8982|      0|		return (0);
 8983|      0|	}
 8984|  11.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8985|  11.1k|	inp->recv_callback = receive_cb;
 8986|  11.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 8987|  11.1k|	return (1);
 8988|  11.1k|}
register_send_cb:
 8992|  11.1k|{
 8993|  11.1k|	struct sctp_inpcb *inp;
 8994|       |
 8995|  11.1k|	inp = (struct sctp_inpcb *) so->so_pcb;
 8996|  11.1k|	if (inp == NULL) {
  ------------------
  |  Branch (8996:6): [True: 0, False: 11.1k]
  ------------------
 8997|      0|		return (0);
 8998|      0|	}
 8999|  11.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9000|  11.1k|	inp->send_callback = send_cb;
 9001|  11.1k|	inp->send_sb_threshold = sb_threshold;
 9002|  11.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.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|  11.1k|	return (1);
 9009|  11.1k|}
register_ulp_info:
 9013|  11.1k|{
 9014|  11.1k|	struct sctp_inpcb *inp;
 9015|       |
 9016|  11.1k|	inp = (struct sctp_inpcb *) so->so_pcb;
 9017|  11.1k|	if (inp == NULL) {
  ------------------
  |  Branch (9017:6): [True: 0, False: 11.1k]
  ------------------
 9018|      0|		return (0);
 9019|      0|	}
 9020|  11.1k|	SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|  11.1k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9021|  11.1k|	inp->ulp_info = ulp_info;
 9022|  11.1k|	SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|  11.1k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 9023|  11.1k|	return (1);
 9024|  11.1k|}

sctp_msecs_to_ticks:
  803|   137k|{
  804|   137k|	uint64_t temp;
  805|   137k|	uint32_t ticks;
  806|       |
  807|   137k|	if (hz == 1000) {
  ------------------
  |  Branch (807:6): [True: 137k, False: 1]
  ------------------
  808|   137k|		ticks = msecs;
  809|   137k|	} else {
  810|      1|		temp = (((uint64_t)msecs * hz) + 999) / 1000;
  811|      1|		if (temp > UINT32_MAX) {
  ------------------
  |  Branch (811:7): [True: 0, False: 1]
  ------------------
  812|      0|			ticks = UINT32_MAX;
  813|      1|		} else {
  814|      1|			ticks = (uint32_t)temp;
  815|      1|		}
  816|      1|	}
  817|   137k|	return (ticks);
  818|   137k|}
sctp_ticks_to_msecs:
  822|  22.3k|{
  823|  22.3k|	uint64_t temp;
  824|  22.3k|	uint32_t msecs;
  825|       |
  826|  22.3k|	if (hz == 1000) {
  ------------------
  |  Branch (826:6): [True: 22.3k, False: 0]
  ------------------
  827|  22.3k|		msecs = ticks;
  828|  22.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|  22.3k|	return (msecs);
  837|  22.3k|}
sctp_secs_to_ticks:
  841|  55.7k|{
  842|  55.7k|	uint64_t temp;
  843|  55.7k|	uint32_t ticks;
  844|       |
  845|  55.7k|	temp = (uint64_t)secs * hz;
  846|  55.7k|	if (temp > UINT32_MAX) {
  ------------------
  |  Branch (846:6): [True: 0, False: 55.7k]
  ------------------
  847|      0|		ticks = UINT32_MAX;
  848|  55.7k|	} else {
  849|  55.7k|		ticks = (uint32_t)temp;
  850|  55.7k|	}
  851|  55.7k|	return (ticks);
  852|  55.7k|}
sctp_stop_timers_for_shutdown:
  876|     58|{
  877|     58|	struct sctp_inpcb *inp;
  878|     58|	struct sctp_nets *net;
  879|       |
  880|     58|	inp = stcb->sctp_ep;
  881|       |
  882|     58|	sctp_timer_stop(SCTP_TIMER_TYPE_RECV, inp, stcb, NULL,
  ------------------
  |  |  534|     58|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
  883|     58|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_12);
  ------------------
  |  |  760|     58|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_12);
  ------------------
  |  |  780|     58|#define SCTP_LOC_12 0x0000000c
  ------------------
  884|     58|	sctp_timer_stop(SCTP_TIMER_TYPE_STRRESET, inp, stcb, NULL,
  ------------------
  |  |  544|     58|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
  885|     58|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_13);
  ------------------
  |  |  760|     58|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_13);
  ------------------
  |  |  781|     58|#define SCTP_LOC_13 0x0000000d
  ------------------
  886|     58|	sctp_timer_stop(SCTP_TIMER_TYPE_ASCONF, inp, stcb, NULL,
  ------------------
  |  |  541|     58|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
  887|     58|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_14);
  ------------------
  |  |  760|     58|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_14);
  ------------------
  |  |  782|     58|#define SCTP_LOC_14 0x0000000e
  ------------------
  888|     58|	sctp_timer_stop(SCTP_TIMER_TYPE_AUTOCLOSE, inp, stcb, NULL,
  ------------------
  |  |  543|     58|#define SCTP_TIMER_TYPE_AUTOCLOSE	12
  ------------------
  889|     58|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_15);
  ------------------
  |  |  760|     58|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_15);
  ------------------
  |  |  783|     58|#define SCTP_LOC_15 0x0000000f
  ------------------
  890|    140|	TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (890:2): [True: 140, False: 58]
  ------------------
  891|    140|		sctp_timer_stop(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net,
  ------------------
  |  |  539|    140|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
  892|    140|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_16);
  ------------------
  |  |  760|    140|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_16);
  ------------------
  |  |  784|    140|#define SCTP_LOC_16 0x00000010
  ------------------
  893|    140|		sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net,
  ------------------
  |  |  536|    140|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  894|    140|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_17);
  ------------------
  |  |  760|    140|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_17);
  ------------------
  |  |  785|    140|#define SCTP_LOC_17 0x00000011
  ------------------
  895|    140|	}
  896|     58|}
sctp_stop_association_timers:
  900|  22.3k|{
  901|  22.3k|	struct sctp_inpcb *inp;
  902|  22.3k|	struct sctp_nets *net;
  903|       |
  904|  22.3k|	inp = stcb->sctp_ep;
  905|  22.3k|	sctp_timer_stop(SCTP_TIMER_TYPE_RECV, inp, stcb, NULL,
  ------------------
  |  |  534|  22.3k|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
  906|  22.3k|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_18);
  ------------------
  |  |  760|  22.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_18);
  ------------------
  |  |  786|  22.3k|#define SCTP_LOC_18 0x00000012
  ------------------
  907|  22.3k|	sctp_timer_stop(SCTP_TIMER_TYPE_STRRESET, inp, stcb, NULL,
  ------------------
  |  |  544|  22.3k|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
  908|  22.3k|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_19);
  ------------------
  |  |  760|  22.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_19);
  ------------------
  |  |  787|  22.3k|#define SCTP_LOC_19 0x00000013
  ------------------
  909|  22.3k|	if (stop_assoc_kill_timer) {
  ------------------
  |  Branch (909:6): [True: 11.1k, False: 11.1k]
  ------------------
  910|  11.1k|		sctp_timer_stop(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL,
  ------------------
  |  |  546|  11.1k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
  911|  11.1k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_20);
  ------------------
  |  |  760|  11.1k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_20);
  ------------------
  |  |  788|  11.1k|#define SCTP_LOC_20 0x00000014
  ------------------
  912|  11.1k|	}
  913|  22.3k|	sctp_timer_stop(SCTP_TIMER_TYPE_ASCONF, inp, stcb, NULL,
  ------------------
  |  |  541|  22.3k|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
  914|  22.3k|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_21);
  ------------------
  |  |  760|  22.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_21);
  ------------------
  |  |  789|  22.3k|#define SCTP_LOC_21 0x00000015
  ------------------
  915|  22.3k|	sctp_timer_stop(SCTP_TIMER_TYPE_AUTOCLOSE, inp, stcb, NULL,
  ------------------
  |  |  543|  22.3k|#define SCTP_TIMER_TYPE_AUTOCLOSE	12
  ------------------
  916|  22.3k|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_22);
  ------------------
  |  |  760|  22.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_22);
  ------------------
  |  |  790|  22.3k|#define SCTP_LOC_22 0x00000016
  ------------------
  917|  22.3k|	sctp_timer_stop(SCTP_TIMER_TYPE_SHUTDOWNGUARD, inp, stcb, NULL,
  ------------------
  |  |  542|  22.3k|#define SCTP_TIMER_TYPE_SHUTDOWNGUARD	11
  ------------------
  918|  22.3k|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_23);
  ------------------
  |  |  760|  22.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_23);
  ------------------
  |  |  791|  22.3k|#define SCTP_LOC_23 0x00000017
  ------------------
  919|       |	/* Mobility adaptation */
  920|  22.3k|	sctp_timer_stop(SCTP_TIMER_TYPE_PRIM_DELETED, inp, stcb, NULL,
  ------------------
  |  |  548|  22.3k|#define SCTP_TIMER_TYPE_PRIM_DELETED	17
  ------------------
  921|  22.3k|	                SCTP_FROM_SCTPUTIL + SCTP_LOC_24);
  ------------------
  |  |  760|  22.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                SCTP_FROM_SCTPUTIL + SCTP_LOC_24);
  ------------------
  |  |  792|  22.3k|#define SCTP_LOC_24 0x00000018
  ------------------
  922|  32.3k|	TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
  ------------------
  |  Branch (922:2): [True: 32.3k, False: 22.3k]
  ------------------
  923|  32.3k|		sctp_timer_stop(SCTP_TIMER_TYPE_SEND, inp, stcb, net,
  ------------------
  |  |  532|  32.3k|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
  924|  32.3k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_25);
  ------------------
  |  |  760|  32.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_25);
  ------------------
  |  |  793|  32.3k|#define SCTP_LOC_25 0x00000019
  ------------------
  925|  32.3k|		sctp_timer_stop(SCTP_TIMER_TYPE_INIT, inp, stcb, net,
  ------------------
  |  |  533|  32.3k|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
  926|  32.3k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_26);
  ------------------
  |  |  760|  32.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_26);
  ------------------
  |  |  794|  32.3k|#define SCTP_LOC_26 0x0000001a
  ------------------
  927|  32.3k|		sctp_timer_stop(SCTP_TIMER_TYPE_SHUTDOWN, inp, stcb, net,
  ------------------
  |  |  535|  32.3k|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
  928|  32.3k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_27);
  ------------------
  |  |  760|  32.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_27);
  ------------------
  |  |  795|  32.3k|#define SCTP_LOC_27 0x0000001b
  ------------------
  929|  32.3k|		sctp_timer_stop(SCTP_TIMER_TYPE_COOKIE, inp, stcb, net,
  ------------------
  |  |  537|  32.3k|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
  930|  32.3k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_28);
  ------------------
  |  |  760|  32.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_28);
  ------------------
  |  |  796|  32.3k|#define SCTP_LOC_28 0x0000001c
  ------------------
  931|  32.3k|		sctp_timer_stop(SCTP_TIMER_TYPE_SHUTDOWNACK, inp, stcb, net,
  ------------------
  |  |  540|  32.3k|#define SCTP_TIMER_TYPE_SHUTDOWNACK	9
  ------------------
  932|  32.3k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_29);
  ------------------
  |  |  760|  32.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_29);
  ------------------
  |  |  797|  32.3k|#define SCTP_LOC_29 0x0000001d
  ------------------
  933|  32.3k|		sctp_timer_stop(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net,
  ------------------
  |  |  539|  32.3k|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
  934|  32.3k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_30);
  ------------------
  |  |  760|  32.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_30);
  ------------------
  |  |  798|  32.3k|#define SCTP_LOC_30 0x0000001e
  ------------------
  935|  32.3k|		sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net,
  ------------------
  |  |  536|  32.3k|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  936|  32.3k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_31);
  ------------------
  |  |  760|  32.3k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_31);
  ------------------
  |  |  799|  32.3k|#define SCTP_LOC_31 0x0000001f
  ------------------
  937|  32.3k|	}
  938|  22.3k|}
sctp_fill_random_store:
 1015|  38.3k|{
 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|  38.3k|	m->store_at = 0;
 1026|  38.3k|#if defined(__Userspace__) && defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
 1027|   805k|	for (int i = 0; i < (int) (sizeof(m->random_store) / sizeof(m->random_store[0])); i++) {
  ------------------
  |  Branch (1027:18): [True: 767k, False: 38.3k]
  ------------------
 1028|   767k|		m->random_store[i] = (uint8_t) rand();
 1029|   767k|	}
 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|  38.3k|	m->random_counter++;
 1036|  38.3k|}
sctp_select_initial_TSN:
 1040|   168k|{
 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|   168k|	uint32_t x, *xp;
 1047|   168k|	uint8_t *p;
 1048|   168k|	int store_at, new_store;
 1049|       |
 1050|   168k|	if (inp->initial_sequence_debug != 0) {
  ------------------
  |  Branch (1050:6): [True: 0, False: 168k]
  ------------------
 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|   168k| retry:
 1058|   168k|	store_at = inp->store_at;
 1059|   168k|	new_store = store_at + sizeof(uint32_t);
 1060|   168k|	if (new_store >= (SCTP_SIGNATURE_SIZE-3)) {
  ------------------
  |  |  300|   168k|#define SCTP_SIGNATURE_SIZE	SCTP_AUTH_DIGEST_LEN_SHA1
  |  |  ------------------
  |  |  |  |   41|   168k|#define SCTP_AUTH_DIGEST_LEN_SHA1	20
  |  |  ------------------
  ------------------
  |  Branch (1060:6): [True: 27.2k, False: 141k]
  ------------------
 1061|  27.2k|		new_store = 0;
 1062|  27.2k|	}
 1063|   168k|	if (!atomic_cmpset_int(&inp->store_at, store_at, new_store)) {
  ------------------
  |  |  113|   168k|#define atomic_cmpset_int(dst, exp, src) __sync_bool_compare_and_swap(dst, exp, src)
  ------------------
  |  Branch (1063:6): [True: 0, False: 168k]
  ------------------
 1064|      0|		goto retry;
 1065|      0|	}
 1066|   168k|	if (new_store == 0) {
  ------------------
  |  Branch (1066:6): [True: 27.2k, False: 141k]
  ------------------
 1067|       |		/* Refill the random store */
 1068|  27.2k|		sctp_fill_random_store(inp);
 1069|  27.2k|	}
 1070|   168k|	p = &inp->random_store[store_at];
 1071|   168k|	xp = (uint32_t *)p;
 1072|   168k|	x = *xp;
 1073|   168k|	return (x);
 1074|   168k|}
sctp_select_a_tag:
 1078|  48.5k|{
 1079|  48.5k|	uint32_t x;
 1080|  48.5k|	struct timeval now;
 1081|       |
 1082|  48.5k|	if (check) {
  ------------------
  |  Branch (1082:6): [True: 26.2k, False: 22.3k]
  ------------------
 1083|  26.2k|		(void)SCTP_GETTIME_TIMEVAL(&now);
  ------------------
  |  |  991|  26.2k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 1084|  26.2k|	}
 1085|  48.5k|	for (;;) {
 1086|  48.5k|		x = sctp_select_initial_TSN(&inp->sctp_ep);
 1087|  48.5k|		if (x == 0) {
  ------------------
  |  Branch (1087:7): [True: 0, False: 48.5k]
  ------------------
 1088|       |			/* we never use 0 */
 1089|      0|			continue;
 1090|      0|		}
 1091|  48.5k|		if (!check || sctp_is_vtag_good(x, lport, rport, &now)) {
  ------------------
  |  Branch (1091:7): [True: 22.3k, False: 26.2k]
  |  Branch (1091:17): [True: 26.2k, False: 0]
  ------------------
 1092|  48.5k|			break;
 1093|  48.5k|		}
 1094|  48.5k|	}
 1095|  48.5k|	return (x);
 1096|  48.5k|}
sctp_init_asoc:
 1145|  11.1k|{
 1146|  11.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|  11.1k|	int i;
 1159|       |#if defined(SCTP_DETAILED_STR_STATS)
 1160|       |	int j;
 1161|       |#endif
 1162|       |
 1163|  11.1k|	asoc = &stcb->asoc;
 1164|       |	/* init all variables to a known value. */
 1165|  11.1k|	SCTP_SET_STATE(stcb, SCTP_STATE_INUSE);
  ------------------
  |  |  474|  11.1k|	sctp_set_state(_stcb, _state)
  ------------------
 1166|  11.1k|	asoc->max_burst = inp->sctp_ep.max_burst;
 1167|  11.1k|	asoc->fr_max_burst = inp->sctp_ep.fr_max_burst;
 1168|  11.1k|	asoc->heart_beat_delay = sctp_ticks_to_msecs(inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_HEARTBEAT]);
  ------------------
  |  |  520|  11.1k|#define SCTP_TIMER_HEARTBEAT	3
  ------------------
 1169|  11.1k|	asoc->cookie_life = inp->sctp_ep.def_cookie_life;
 1170|  11.1k|	asoc->sctp_cmt_on_off = inp->sctp_cmt_on_off;
 1171|  11.1k|	asoc->ecn_supported = inp->ecn_supported;
 1172|  11.1k|	asoc->prsctp_supported = inp->prsctp_supported;
 1173|  11.1k|	asoc->auth_supported = inp->auth_supported;
 1174|  11.1k|	asoc->asconf_supported = inp->asconf_supported;
 1175|  11.1k|	asoc->reconfig_supported = inp->reconfig_supported;
 1176|  11.1k|	asoc->nrsack_supported = inp->nrsack_supported;
 1177|  11.1k|	asoc->pktdrop_supported = inp->pktdrop_supported;
 1178|  11.1k|	asoc->idata_supported = inp->idata_supported;
 1179|  11.1k|	asoc->rcv_edmid = inp->rcv_edmid;
 1180|  11.1k|	asoc->snd_edmid = SCTP_EDMID_NONE;
  ------------------
  |  |  809|  11.1k|#define SCTP_EDMID_NONE             0
  ------------------
 1181|  11.1k|	asoc->sctp_cmt_pf = (uint8_t)0;
 1182|  11.1k|	asoc->sctp_frag_point = inp->sctp_frag_point;
 1183|  11.1k|	asoc->sctp_features = inp->sctp_features;
 1184|  11.1k|	asoc->default_dscp = inp->sctp_ep.default_dscp;
 1185|  11.1k|	asoc->max_cwnd = inp->max_cwnd;
 1186|  11.1k|#ifdef INET6
 1187|  11.1k|	if (inp->sctp_ep.default_flowlabel) {
  ------------------
  |  Branch (1187:6): [True: 0, False: 11.1k]
  ------------------
 1188|      0|		asoc->default_flowlabel = inp->sctp_ep.default_flowlabel;
 1189|  11.1k|	} else {
 1190|  11.1k|		if (inp->ip_inp.inp.inp_flags & IN6P_AUTOFLOWLABEL) {
  ------------------
  |  |  299|  11.1k|#define	IN6P_AUTOFLOWLABEL	0x800000 /* attach flowlabel automatically */
  ------------------
  |  Branch (1190:7): [True: 0, False: 11.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|  11.1k|		} else {
 1195|  11.1k|			asoc->default_flowlabel = 0;
 1196|  11.1k|		}
 1197|  11.1k|	}
 1198|  11.1k|#endif
 1199|  11.1k|	asoc->sb_send_resv = 0;
 1200|  11.1k|	if (override_tag) {
  ------------------
  |  Branch (1200:6): [True: 0, False: 11.1k]
  ------------------
 1201|      0|		asoc->my_vtag = override_tag;
 1202|  11.1k|	} else {
 1203|  11.1k|		asoc->my_vtag = sctp_select_a_tag(inp, stcb->sctp_ep->sctp_lport, stcb->rport,  1);
  ------------------
  |  |  426|  11.1k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  11.1k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  11.1k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1204|  11.1k|	}
 1205|       |	/* Get the nonce tags */
 1206|  11.1k|	asoc->my_vtag_nonce = sctp_select_a_tag(inp, stcb->sctp_ep->sctp_lport, stcb->rport, 0);
  ------------------
  |  |  426|  11.1k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  11.1k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  11.1k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1207|  11.1k|	asoc->peer_vtag_nonce = sctp_select_a_tag(inp, stcb->sctp_ep->sctp_lport, stcb->rport, 0);
  ------------------
  |  |  426|  11.1k|#define sctp_lport ip_inp.inp.inp_lport
  |  |  ------------------
  |  |  |  |  145|  11.1k|#define	inp_lport	inp_inc.inc_lport
  |  |  |  |  ------------------
  |  |  |  |  |  |   98|  11.1k|#define	inc_lport	inc_ie.ie_lport
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1208|  11.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|  11.1k|	asoc->refcnt = 0;
 1222|  11.1k|	asoc->assoc_up_sent = 0;
 1223|  11.1k|	if (override_tag) {
  ------------------
  |  Branch (1223:6): [True: 0, False: 11.1k]
  ------------------
 1224|      0|		asoc->init_seq_number = initial_tsn;
 1225|  11.1k|	} else {
 1226|  11.1k|		asoc->init_seq_number = sctp_select_initial_TSN(&inp->sctp_ep);
 1227|  11.1k|	}
 1228|  11.1k|	asoc->asconf_seq_out = asoc->init_seq_number;
 1229|  11.1k|	asoc->str_reset_seq_out = asoc->init_seq_number;
 1230|  11.1k|	asoc->sending_seq = asoc->init_seq_number;
 1231|  11.1k|	asoc->asconf_seq_out_acked = asoc->init_seq_number - 1;
 1232|       |	/* we are optimistic here */
 1233|  11.1k|	asoc->peer_supports_nat = 0;
 1234|  11.1k|	asoc->sent_queue_retran_cnt = 0;
 1235|       |
 1236|       |	/* for CMT */
 1237|  11.1k|	asoc->last_net_cmt_send_started = NULL;
 1238|       |
 1239|  11.1k|	asoc->last_acked_seq = asoc->init_seq_number - 1;
 1240|  11.1k|	asoc->advanced_peer_ack_point = asoc->init_seq_number - 1;
 1241|  11.1k|	asoc->asconf_seq_in = asoc->init_seq_number - 1;
 1242|       |
 1243|       |	/* here we are different, we hold the next one we expect */
 1244|  11.1k|	asoc->str_reset_seq_in = asoc->init_seq_number;
 1245|       |
 1246|  11.1k|	asoc->initial_init_rto_max = inp->sctp_ep.initial_init_rto_max;
 1247|  11.1k|	asoc->initial_rto = inp->sctp_ep.initial_rto;
 1248|       |
 1249|  11.1k|	asoc->default_mtu = inp->sctp_ep.default_mtu;
 1250|  11.1k|	asoc->max_init_times = inp->sctp_ep.max_init_times;
 1251|  11.1k|	asoc->max_send_times = inp->sctp_ep.max_send_times;
 1252|  11.1k|	asoc->def_net_failure = inp->sctp_ep.def_net_failure;
 1253|  11.1k|	asoc->def_net_pf_threshold = inp->sctp_ep.def_net_pf_threshold;
 1254|  11.1k|	asoc->free_chunk_cnt = 0;
 1255|       |
 1256|  11.1k|	asoc->iam_blocking = 0;
 1257|  11.1k|	asoc->context = inp->sctp_context;
 1258|  11.1k|	asoc->local_strreset_support = inp->local_strreset_support;
 1259|  11.1k|	asoc->def_send = inp->def_send;
 1260|  11.1k|	asoc->delayed_ack = sctp_ticks_to_msecs(inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_RECV]);
  ------------------
  |  |  518|  11.1k|#define SCTP_TIMER_RECV 	1
  ------------------
 1261|  11.1k|	asoc->sack_freq = inp->sctp_ep.sctp_sack_freq;
 1262|  11.1k|	asoc->pr_sctp_cnt = 0;
 1263|  11.1k|	asoc->total_output_queue_size = 0;
 1264|       |
 1265|  11.1k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) {
  ------------------
  |  |  544|  11.1k|#define SCTP_PCB_FLAGS_BOUND_V6		0x04000000
  ------------------
  |  Branch (1265:6): [True: 0, False: 11.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|  11.1k|	} else {
 1276|  11.1k|		asoc->scope.ipv6_addr_legal = 0;
 1277|  11.1k|#if defined(__Userspace__)
 1278|  11.1k|		if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_CONN) {
  ------------------
  |  |  550|  11.1k|#define SCTP_PCB_FLAGS_BOUND_CONN       0x80000000
  ------------------
  |  Branch (1278:7): [True: 11.1k, False: 0]
  ------------------
 1279|  11.1k|			asoc->scope.conn_addr_legal = 1;
 1280|  11.1k|			asoc->scope.ipv4_addr_legal = 0;
 1281|  11.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|  11.1k|	}
 1289|       |
 1290|  11.1k|	asoc->my_rwnd = max(SCTP_SB_LIMIT_RCV(inp->sctp_socket), SCTP_MINIMAL_RWND);
  ------------------
  |  |   67|  11.1k|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  ------------------
  |  |  |  Branch (67:19): [True: 11.1k, False: 0]
  |  |  ------------------
  ------------------
 1291|  11.1k|	asoc->peers_rwnd = SCTP_SB_LIMIT_RCV(inp->sctp_socket);
  ------------------
  |  |  983|  11.1k|#define SCTP_SB_LIMIT_RCV(so) so->so_rcv.sb_hiwat
  ------------------
 1292|       |
 1293|  11.1k|	asoc->smallest_mtu = 0;
 1294|  11.1k|	asoc->minrto = inp->sctp_ep.sctp_minrto;
 1295|  11.1k|	asoc->maxrto = inp->sctp_ep.sctp_maxrto;
 1296|       |
 1297|  11.1k|	asoc->stream_locked_on = 0;
 1298|  11.1k|	asoc->ecn_echo_cnt_onq = 0;
 1299|  11.1k|	asoc->stream_locked = 0;
 1300|       |
 1301|  11.1k|	asoc->send_sack = 1;
 1302|       |
 1303|  11.1k|	LIST_INIT(&asoc->sctp_restricted_addrs);
  ------------------
  |  Branch (1303:2): [Folded, False: 11.1k]
  ------------------
 1304|       |
 1305|  11.1k|	TAILQ_INIT(&asoc->nets);
  ------------------
  |  Branch (1305:2): [Folded, False: 11.1k]
  ------------------
 1306|  11.1k|	TAILQ_INIT(&asoc->pending_reply_queue);
  ------------------
  |  Branch (1306:2): [Folded, False: 11.1k]
  ------------------
 1307|  11.1k|	TAILQ_INIT(&asoc->asconf_ack_sent);
  ------------------
  |  Branch (1307:2): [Folded, False: 11.1k]
  ------------------
 1308|       |	/* Setup to fill the hb random cache at first HB */
 1309|  11.1k|	asoc->hb_random_idx = 4;
 1310|       |
 1311|  11.1k|	asoc->sctp_autoclose_ticks = inp->sctp_ep.auto_close_time;
 1312|       |
 1313|  11.1k|	stcb->asoc.congestion_control_module = inp->sctp_ep.sctp_default_cc_module;
 1314|  11.1k|	stcb->asoc.cc_functions = sctp_cc_functions[inp->sctp_ep.sctp_default_cc_module];
 1315|       |
 1316|  11.1k|	stcb->asoc.stream_scheduling_module = inp->sctp_ep.sctp_default_ss_module;
 1317|  11.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|  11.1k|	asoc->strm_realoutsize = asoc->streamoutcnt = asoc->pre_open_streams =
 1324|  11.1k|	    o_strms;
 1325|  11.1k|	SCTP_MALLOC(asoc->strmout, struct sctp_stream_out *,
  ------------------
  |  |  675|  11.1k|	do {								\
  |  |  676|  11.1k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  11.1k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  11.1k|    do {								\
  |  |  |  |  198|  11.1k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  22.3k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  11.1k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  11.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 11.1k]
  |  |  ------------------
  ------------------
 1326|  11.1k|		    asoc->streamoutcnt * sizeof(struct sctp_stream_out),
 1327|  11.1k|		    SCTP_M_STRMO);
 1328|  11.1k|	if (asoc->strmout == NULL) {
  ------------------
  |  Branch (1328:6): [True: 0, False: 11.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|  11.1k|	SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  11.1k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1334|  2.87M|	for (i = 0; i < asoc->streamoutcnt; i++) {
  ------------------
  |  Branch (1334:14): [True: 2.86M, False: 11.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.86M|		TAILQ_INIT(&asoc->strmout[i].outqueue);
  ------------------
  |  Branch (1343:3): [Folded, False: 2.86M]
  ------------------
 1344|  2.86M|		asoc->ss_functions.sctp_ss_init_stream(stcb, &asoc->strmout[i], NULL);
 1345|  2.86M|		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.86M|		asoc->strmout[i].abandoned_sent[0] = 0;
 1353|  2.86M|		asoc->strmout[i].abandoned_unsent[0] = 0;
 1354|  2.86M|#endif
 1355|  2.86M|		asoc->strmout[i].next_mid_ordered = 0;
 1356|  2.86M|		asoc->strmout[i].next_mid_unordered = 0;
 1357|  2.86M|		asoc->strmout[i].sid = i;
 1358|  2.86M|		asoc->strmout[i].last_msg_incomplete = 0;
 1359|  2.86M|		asoc->strmout[i].state = SCTP_STREAM_OPENING;
  ------------------
  |  |  669|  2.86M|#define SCTP_STREAM_OPENING          0x01
  ------------------
 1360|  2.86M|	}
 1361|  11.1k|	asoc->ss_functions.sctp_ss_init(stcb, asoc);
 1362|  11.1k|	SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  11.1k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1363|       |
 1364|       |	/* Now the mapping array */
 1365|  11.1k|	asoc->mapping_array_size = SCTP_INITIAL_MAPPING_ARRAY;
  ------------------
  |  |  509|  11.1k|#define SCTP_INITIAL_MAPPING_ARRAY  16
  ------------------
 1366|  11.1k|	SCTP_MALLOC(asoc->mapping_array, uint8_t *, asoc->mapping_array_size,
  ------------------
  |  |  675|  11.1k|	do {								\
  |  |  676|  11.1k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  11.1k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  11.1k|    do {								\
  |  |  |  |  198|  11.1k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  22.3k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  11.1k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  11.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 11.1k]
  |  |  ------------------
  ------------------
 1367|  11.1k|		    SCTP_M_MAP);
 1368|  11.1k|	if (asoc->mapping_array == NULL) {
  ------------------
  |  Branch (1368:6): [True: 0, False: 11.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|  11.1k|	memset(asoc->mapping_array, 0, asoc->mapping_array_size);
 1374|  11.1k|	SCTP_MALLOC(asoc->nr_mapping_array, uint8_t *, asoc->mapping_array_size,
  ------------------
  |  |  675|  11.1k|	do {								\
  |  |  676|  11.1k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  11.1k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  11.1k|    do {								\
  |  |  |  |  198|  11.1k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  22.3k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  11.1k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  11.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 11.1k]
  |  |  ------------------
  ------------------
 1375|  11.1k|	    SCTP_M_MAP);
 1376|  11.1k|	if (asoc->nr_mapping_array == NULL) {
  ------------------
  |  Branch (1376:6): [True: 0, False: 11.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|  11.1k|	memset(asoc->nr_mapping_array, 0, asoc->mapping_array_size);
 1383|       |
 1384|       |	/* Now the init of the other outqueues */
 1385|  11.1k|	TAILQ_INIT(&asoc->free_chunks);
  ------------------
  |  Branch (1385:2): [Folded, False: 11.1k]
  ------------------
 1386|  11.1k|	TAILQ_INIT(&asoc->control_send_queue);
  ------------------
  |  Branch (1386:2): [Folded, False: 11.1k]
  ------------------
 1387|  11.1k|	TAILQ_INIT(&asoc->asconf_send_queue);
  ------------------
  |  Branch (1387:2): [Folded, False: 11.1k]
  ------------------
 1388|  11.1k|	TAILQ_INIT(&asoc->send_queue);
  ------------------
  |  Branch (1388:2): [Folded, False: 11.1k]
  ------------------
 1389|  11.1k|	TAILQ_INIT(&asoc->sent_queue);
  ------------------
  |  Branch (1389:2): [Folded, False: 11.1k]
  ------------------
 1390|  11.1k|	TAILQ_INIT(&asoc->resetHead);
  ------------------
  |  Branch (1390:2): [Folded, False: 11.1k]
  ------------------
 1391|  11.1k|	asoc->max_inbound_streams = inp->sctp_ep.max_open_streams_intome;
 1392|  11.1k|	TAILQ_INIT(&asoc->asconf_queue);
  ------------------
  |  Branch (1392:2): [Folded, False: 11.1k]
  ------------------
 1393|       |	/* authentication fields */
 1394|  11.1k|	asoc->authinfo.random = NULL;
 1395|  11.1k|	asoc->authinfo.active_keyid = 0;
 1396|  11.1k|	asoc->authinfo.assoc_key = NULL;
 1397|  11.1k|	asoc->authinfo.assoc_keyid = 0;
 1398|  11.1k|	asoc->authinfo.recv_key = NULL;
 1399|  11.1k|	asoc->authinfo.recv_keyid = 0;
 1400|  11.1k|	LIST_INIT(&asoc->shared_keys);
  ------------------
  |  Branch (1400:2): [Folded, False: 11.1k]
  ------------------
 1401|  11.1k|	asoc->marked_retrans = 0;
 1402|  11.1k|	asoc->port = inp->sctp_ep.port;
 1403|  11.1k|	asoc->timoinit = 0;
 1404|  11.1k|	asoc->timodata = 0;
 1405|  11.1k|	asoc->timosack = 0;
 1406|  11.1k|	asoc->timoshutdown = 0;
 1407|  11.1k|	asoc->timoheartbeat = 0;
 1408|  11.1k|	asoc->timocookie = 0;
 1409|  11.1k|	asoc->timoshutdownack = 0;
 1410|  11.1k|	(void)SCTP_GETTIME_TIMEVAL(&asoc->start_time);
  ------------------
  |  |  991|  11.1k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 1411|  11.1k|	asoc->discontinuity_time = asoc->start_time;
 1412|  55.7k|	for (i = 0; i < SCTP_PR_SCTP_MAX + 1; i++) {
  ------------------
  |  |  277|  55.7k|#define SCTP_PR_SCTP_MAX  SCTP_PR_SCTP_RTX
  |  |  ------------------
  |  |  |  |  276|  55.7k|#define SCTP_PR_SCTP_RTX  0x0003 /* Number of retransmissions based PR-SCTP */
  |  |  ------------------
  ------------------
  |  Branch (1412:14): [True: 44.6k, False: 11.1k]
  ------------------
 1413|  44.6k|		asoc->abandoned_unsent[i] = 0;
 1414|  44.6k|		asoc->abandoned_sent[i] = 0;
 1415|  44.6k|	}
 1416|       |	/* sa_ignore MEMLEAK {memory is put in the assoc mapping array and freed later when
 1417|       |	 * the association is freed.
 1418|       |	 */
 1419|  11.1k|	return (0);
 1420|  11.1k|}
sctp_expand_mapping_array:
 1459|  2.22k|{
 1460|       |	/* mapping array needs to grow */
 1461|  2.22k|	uint8_t *new_array1, *new_array2;
 1462|  2.22k|	uint32_t new_size;
 1463|       |
 1464|  2.22k|	new_size = asoc->mapping_array_size + ((needed+7)/8 + SCTP_MAPPING_ARRAY_INCR);
  ------------------
  |  |  511|  2.22k|#define SCTP_MAPPING_ARRAY_INCR     32
  ------------------
 1465|  2.22k|	SCTP_MALLOC(new_array1, uint8_t *, new_size, SCTP_M_MAP);
  ------------------
  |  |  675|  2.22k|	do {								\
  |  |  676|  2.22k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  2.22k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  2.22k|    do {								\
  |  |  |  |  198|  2.22k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  4.45k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 2.22k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  2.22k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 2.22k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  2.22k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 2.22k]
  |  |  ------------------
  ------------------
 1466|  2.22k|	SCTP_MALLOC(new_array2, uint8_t *, new_size, SCTP_M_MAP);
  ------------------
  |  |  675|  2.22k|	do {								\
  |  |  676|  2.22k|		MALLOC(var, type, size, name, M_NOWAIT);		\
  |  |  ------------------
  |  |  |  |  196|  2.22k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  |  |  197|  2.22k|    do {								\
  |  |  |  |  198|  2.22k|        if (flags & M_ZERO) {                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  4.45k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:13): [Folded, False: 2.22k]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  |  |  200|      0|	}								\
  |  |  |  |  201|  2.22k|    } while (0);
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (201:14): [Folded, False: 2.22k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  677|  2.22k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (677:11): [Folded, False: 2.22k]
  |  |  ------------------
  ------------------
 1467|  2.22k|	if ((new_array1 == NULL) || (new_array2 == NULL)) {
  ------------------
  |  Branch (1467:6): [True: 0, False: 2.22k]
  |  Branch (1467:30): [True: 0, False: 2.22k]
  ------------------
 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.22k|	memset(new_array1, 0, new_size);
 1479|  2.22k|	memset(new_array2, 0, new_size);
 1480|  2.22k|	memcpy(new_array1, asoc->mapping_array, asoc->mapping_array_size);
 1481|  2.22k|	memcpy(new_array2, asoc->nr_mapping_array, asoc->mapping_array_size);
 1482|  2.22k|	SCTP_FREE(asoc->mapping_array, SCTP_M_MAP);
  ------------------
  |  |  679|  2.22k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  2.22k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 1483|  2.22k|	SCTP_FREE(asoc->nr_mapping_array, SCTP_M_MAP);
  ------------------
  |  |  679|  2.22k|#define SCTP_FREE(var, type)	FREE(var, type)
  |  |  ------------------
  |  |  |  |  191|  2.22k|#define	FREE(addr, type) free((addr))
  |  |  ------------------
  ------------------
 1484|  2.22k|	asoc->mapping_array = new_array1;
 1485|  2.22k|	asoc->nr_mapping_array = new_array2;
 1486|  2.22k|	asoc->mapping_array_size = new_size;
 1487|  2.22k|	return (0);
 1488|  2.22k|}
sctp_timeout_handler:
 1779|  2.85k|{
 1780|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 1781|       |	struct epoch_tracker et;
 1782|       |#endif
 1783|  2.85k|	struct timeval tv;
 1784|  2.85k|	struct sctp_inpcb *inp;
 1785|  2.85k|	struct sctp_tcb *stcb;
 1786|  2.85k|	struct sctp_nets *net;
 1787|  2.85k|	struct sctp_timer *tmr;
 1788|  2.85k|	struct mbuf *op_err;
 1789|       |#if defined(__APPLE__) && !defined(__Userspace__)
 1790|       |	struct socket *so;
 1791|       |#endif
 1792|  2.85k|#if defined(__Userspace__)
 1793|  2.85k|	struct socket *upcall_socket = NULL;
 1794|  2.85k|#endif
 1795|  2.85k|	int type;
 1796|  2.85k|	int i, secret;
 1797|  2.85k|	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.85k|	tmr = (struct sctp_timer *)t;
 1805|  2.85k|	inp = (struct sctp_inpcb *)tmr->ep;
 1806|  2.85k|	stcb = (struct sctp_tcb *)tmr->tcb;
 1807|  2.85k|	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.85k|	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.85k|	KASSERT(tmr->self == NULL || tmr->self == tmr,
  ------------------
  |  |  112|  2.85k|	do {                         \
  |  |  113|  5.71k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 2.85k]
  |  |  |  Branch (113:9): [True: 2.85k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.85k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 2.85k]
  |  |  ------------------
  ------------------
 1821|  2.85k|	        ("sctp_timeout_handler: tmr->self corrupted"));
 1822|  2.85k|	KASSERT(SCTP_IS_TIMER_TYPE_VALID(tmr->type),
  ------------------
  |  |  112|  2.85k|	do {                         \
  |  |  113|  5.71k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 2.85k, False: 0]
  |  |  |  Branch (113:9): [True: 2.85k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.85k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 2.85k]
  |  |  ------------------
  ------------------
 1823|  2.85k|	        ("sctp_timeout_handler: invalid timer type %d", tmr->type));
 1824|  2.85k|	type = tmr->type;
 1825|  2.85k|	KASSERT(stcb == NULL || stcb->sctp_ep == inp,
  ------------------
  |  |  112|  2.85k|	do {                         \
  |  |  113|  5.68k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 28, False: 2.82k]
  |  |  |  Branch (113:9): [True: 2.82k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.85k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 2.85k]
  |  |  ------------------
  ------------------
 1826|  2.85k|	        ("sctp_timeout_handler of type %d: inp = %p, stcb->sctp_ep %p",
 1827|  2.85k|	         type, stcb, stcb->sctp_ep));
 1828|  2.85k|	tmr->stopped_from = 0xa001;
 1829|  2.85k|	if ((stcb != NULL) && (stcb->asoc.state == SCTP_STATE_EMPTY)) {
  ------------------
  |  |  455|  2.82k|#define SCTP_STATE_EMPTY		0x0000
  ------------------
  |  Branch (1829:6): [True: 2.82k, False: 28]
  |  Branch (1829:24): [True: 0, False: 2.82k]
  ------------------
 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.85k|	tmr->stopped_from = 0xa002;
 1836|  2.85k|	SCTPDBG(SCTP_DEBUG_TIMER2, "Timer type %d goes off.\n", type);
 1837|  2.85k|	if (!SCTP_OS_TIMER_ACTIVE(&tmr->timer)) {
  ------------------
  |  |  103|  2.85k|#define	SCTP_OS_TIMER_ACTIVE(tmr) ((tmr)->c_flags & SCTP_CALLOUT_ACTIVE)
  |  |  ------------------
  |  |  |  |   82|  2.85k|#define	SCTP_CALLOUT_ACTIVE	0x0002	/* callout is currently active */
  |  |  ------------------
  ------------------
  |  Branch (1837:6): [True: 0, False: 2.85k]
  ------------------
 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.85k|	tmr->stopped_from = 0xa003;
 1845|  2.85k|	if (stcb) {
  ------------------
  |  Branch (1845:6): [True: 2.82k, False: 28]
  ------------------
 1846|  2.82k|		SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  2.82k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  2.82k|	do {                         \
  |  |  |  |  113|  2.82k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 2.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|  2.82k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 2.82k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 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.82k|		atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|  2.82k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 1853|  2.82k|		released_asoc_reference = true;
 1854|  2.82k|		if ((type != SCTP_TIMER_TYPE_ASOCKILL) &&
  ------------------
  |  |  546|  2.82k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
  |  Branch (1854:7): [True: 29, False: 2.80k]
  ------------------
 1855|     29|		    ((stcb->asoc.state == SCTP_STATE_EMPTY) ||
  ------------------
  |  |  455|     29|#define SCTP_STATE_EMPTY		0x0000
  ------------------
  |  Branch (1855:8): [True: 0, False: 29]
  ------------------
 1856|     29|		     (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED))) {
  ------------------
  |  |  465|     29|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (1856:8): [True: 29, False: 0]
  ------------------
 1857|     29|			SCTPDBG(SCTP_DEBUG_TIMER2,
 1858|     29|			        "Timer type %d handler exiting due to CLOSED association.\n",
 1859|     29|			        type);
 1860|     29|			goto out;
 1861|     29|		}
 1862|  2.82k|	} else if (inp != NULL) {
  ------------------
  |  Branch (1862:13): [True: 28, False: 0]
  ------------------
 1863|     28|		SCTP_INP_WLOCK(inp);
  ------------------
  |  |  378|     28|	KASSERT(pthread_mutex_lock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     28|	do {                         \
  |  |  |  |  113|     28|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 28]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     28|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 28]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1864|     28|	} 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.82k|	tmr->stopped_from = type;
 1870|       |	/* mark as being serviced now */
 1871|  2.82k|	if (SCTP_OS_TIMER_PENDING(&tmr->timer)) {
  ------------------
  |  |  102|  2.82k|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|  2.82k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 0, False: 2.82k]
  |  |  ------------------
  ------------------
 1872|       |		/*
 1873|       |		 * Callout has been rescheduled.
 1874|       |		 */
 1875|      0|		goto out;
 1876|      0|	}
 1877|  2.82k|	if (!SCTP_OS_TIMER_ACTIVE(&tmr->timer)) {
  ------------------
  |  |  103|  2.82k|#define	SCTP_OS_TIMER_ACTIVE(tmr) ((tmr)->c_flags & SCTP_CALLOUT_ACTIVE)
  |  |  ------------------
  |  |  |  |   82|  2.82k|#define	SCTP_CALLOUT_ACTIVE	0x0002	/* callout is currently active */
  |  |  ------------------
  ------------------
  |  Branch (1877:6): [True: 0, False: 2.82k]
  ------------------
 1878|       |		/*
 1879|       |		 * Not active, so no action.
 1880|       |		 */
 1881|      0|		goto out;
 1882|      0|	}
 1883|  2.82k|	SCTP_OS_TIMER_DEACTIVATE(&tmr->timer);
  ------------------
  |  |  104|  2.82k|#define	SCTP_OS_TIMER_DEACTIVATE(tmr) ((tmr)->c_flags &= ~SCTP_CALLOUT_ACTIVE)
  |  |  ------------------
  |  |  |  |   82|  2.82k|#define	SCTP_CALLOUT_ACTIVE	0x0002	/* callout is currently active */
  |  |  ------------------
  ------------------
 1884|       |
 1885|  2.82k|#if defined(__Userspace__)
 1886|  2.82k|	if ((stcb != NULL) &&
  ------------------
  |  Branch (1886:6): [True: 2.80k, False: 28]
  ------------------
 1887|  2.80k|	    ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) == 0) &&
  ------------------
  |  |  546|  2.80k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (1887:6): [True: 0, False: 2.80k]
  ------------------
 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.82k|#endif
 1895|       |	/* call the handler for the appropriate timer type */
 1896|  2.82k|	switch (type) {
 1897|      0|	case SCTP_TIMER_TYPE_SEND:
  ------------------
  |  |  532|      0|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
  |  Branch (1897:2): [True: 0, False: 2.82k]
  ------------------
 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.82k]
  ------------------
 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.82k]
  ------------------
 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.82k]
  ------------------
 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.82k]
  ------------------
 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.82k]
  ------------------
 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.82k]
  ------------------
 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.82k]
  ------------------
 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.82k]
  ------------------
 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.82k]
  ------------------
 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.82k]
  ------------------
 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.82k]
  ------------------
 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.82k]
  ------------------
 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|     28|	case SCTP_TIMER_TYPE_INPKILL:
  ------------------
  |  |  545|     28|#define SCTP_TIMER_TYPE_INPKILL		14
  ------------------
  |  Branch (2113:2): [True: 28, False: 2.80k]
  ------------------
 2114|     28|		KASSERT(inp != NULL && stcb == NULL && net == NULL,
  ------------------
  |  |  112|     28|	do {                         \
  |  |  113|    112|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 28, False: 0]
  |  |  |  Branch (113:9): [True: 28, False: 0]
  |  |  |  Branch (113:9): [True: 28, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|     28|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 28]
  |  |  ------------------
  ------------------
 2115|     28|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 2116|     28|		         type, inp, stcb, net));
 2117|     28|		SCTP_STAT_INCR(sctps_timoinpkill);
  ------------------
  |  | 1112|     28|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|     28|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|     28|#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|     28|		sctp_timer_stop(SCTP_TIMER_TYPE_INPKILL, inp, NULL, NULL,
  ------------------
  |  |  545|     28|#define SCTP_TIMER_TYPE_INPKILL		14
  ------------------
 2123|     28|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_3);
  ------------------
  |  |  760|     28|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_3);
  ------------------
  |  |  771|     28|#define SCTP_LOC_3  0x00000003
  ------------------
 2124|       |#if defined(__APPLE__) && !defined(__Userspace__)
 2125|       |		SCTP_SOCKET_LOCK(SCTP_INP_SO(inp), 1);
 2126|       |#endif
 2127|     28|		SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|     28|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|     28|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 2128|     28|		SCTP_INP_WUNLOCK(inp);
  ------------------
  |  |  383|     28|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_mtx) == 0, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     28|	do {                         \
  |  |  |  |  113|     28|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 28]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     28|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 28]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2129|     28|		sctp_inpcb_free(inp, SCTP_FREE_SHOULD_USE_ABORT,
  ------------------
  |  |  869|     28|#define SCTP_FREE_SHOULD_USE_ABORT          1
  ------------------
 2130|     28|		                SCTP_CALLED_FROM_INPKILL_TIMER);
  ------------------
  |  |  867|     28|#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|     28|		inp = NULL;
 2135|     28|		goto out_decr;
 2136|  2.80k|	case SCTP_TIMER_TYPE_ASOCKILL:
  ------------------
  |  |  546|  2.80k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
  |  Branch (2136:2): [True: 2.80k, False: 28]
  ------------------
 2137|  2.80k|		KASSERT(inp != NULL && stcb != NULL && net == NULL,
  ------------------
  |  |  112|  2.80k|	do {                         \
  |  |  113|  11.2k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 2.80k, False: 0]
  |  |  |  Branch (113:9): [True: 2.80k, False: 0]
  |  |  |  Branch (113:9): [True: 2.80k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.80k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 2.80k]
  |  |  ------------------
  ------------------
 2138|  2.80k|		        ("timeout of type %d: inp = %p, stcb = %p, net = %p",
 2139|  2.80k|		         type, inp, stcb, net));
 2140|  2.80k|		SCTP_STAT_INCR(sctps_timoassockill);
  ------------------
  |  | 1112|  2.80k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  2.80k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  2.80k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2141|       |		/* Can we free it yet? */
 2142|  2.80k|		sctp_timer_stop(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL,
  ------------------
  |  |  546|  2.80k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
 2143|  2.80k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_1);
  ------------------
  |  |  760|  2.80k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_1);
  ------------------
  |  |  769|  2.80k|#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.80k|		(void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|  2.80k|#define SCTP_NORMAL_PROC      0
  ------------------
 2153|  2.80k|		                      SCTP_FROM_SCTPUTIL + SCTP_LOC_2);
  ------------------
  |  |  760|  2.80k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                      SCTP_FROM_SCTPUTIL + SCTP_LOC_2);
  ------------------
  |  |  770|  2.80k|#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.80k|		stcb = NULL;
 2162|  2.80k|		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.82k]
  ------------------
 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.82k]
  ------------------
 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.82k]
  ------------------
 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.82k|	}
 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|     29|out:
 2201|     29|	if (stcb != NULL) {
  ------------------
  |  Branch (2201:6): [True: 29, False: 0]
  ------------------
 2202|     29|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|     29|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|     29|	do {                         \
  |  |  |  |  113|     29|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 29]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|     29|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 29]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2203|     29|	} 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.85k|out_decr:
 2210|  2.85k|#if defined(__Userspace__)
 2211|  2.85k|	if (upcall_socket != NULL) {
  ------------------
  |  Branch (2211:6): [True: 0, False: 2.85k]
  ------------------
 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.85k|#endif
 2221|       |	/* These reference counts were incremented in sctp_timer_start(). */
 2222|  2.85k|	if (inp != NULL) {
  ------------------
  |  Branch (2222:6): [True: 2.82k, False: 28]
  ------------------
 2223|  2.82k|		SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|  2.82k|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|  2.82k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 2224|  2.82k|	}
 2225|  2.85k|	if ((stcb != NULL) && !released_asoc_reference) {
  ------------------
  |  Branch (2225:6): [True: 29, False: 2.82k]
  |  Branch (2225:24): [True: 0, False: 29]
  ------------------
 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.85k|	if (net != NULL) {
  ------------------
  |  Branch (2228:6): [True: 29, False: 2.82k]
  ------------------
 2229|     29|		sctp_free_remote_addr(net);
  ------------------
  |  |  228|     29|#define sctp_free_remote_addr(__net) { \
  |  |  229|     29|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 29, False: 0]
  |  |  ------------------
  |  |  230|     29|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|     29|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|     29|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 14, False: 15]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|     14|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 14, False: 0]
  |  |  ------------------
  |  |  232|     14|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|     14|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|     14|		RT_LOCK(_rt);					\
  |  |  |  |  128|     14|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|     14|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|     14|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 14, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|     14|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|     14|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|     14|		} 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|     14|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|     14|		_rt = NULL;					\
  |  |  |  |  |  |  125|     14|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 14]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|     14|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 14]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|     14|				(__net)->ro.ro_rt = NULL; \
  |  |  234|     14|			} \
  |  |  235|     14|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 14]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|     14|			(__net)->src_addr_selected = 0; \
  |  |  240|     14|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|     14|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|     14|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|     14|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|     14|	free(element);  \
  |  |  |  |  709|     14|}
  |  |  ------------------
  |  |  242|     14|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|     14|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|     14|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|     14|		} \
  |  |  244|     29|	} \
  |  |  245|     29|}
  ------------------
 2230|     29|	}
 2231|  2.85k|	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.85k|}
sctp_timer_start:
 2268|   164k|{
 2269|   164k|	struct sctp_timer *tmr;
 2270|   164k|	uint32_t to_ticks;
 2271|   164k|	uint32_t rndval, jitter;
 2272|       |
 2273|   164k|	KASSERT(stcb == NULL || stcb->sctp_ep == inp,
  ------------------
  |  |  112|   164k|	do {                         \
  |  |  113|   317k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 11.1k, False: 153k]
  |  |  |  Branch (113:9): [True: 153k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   164k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 164k]
  |  |  ------------------
  ------------------
 2274|   164k|	        ("sctp_timer_start of type %d: inp = %p, stcb->sctp_ep %p",
 2275|   164k|	         t_type, stcb, stcb->sctp_ep));
 2276|   164k|	tmr = NULL;
 2277|   164k|	if (stcb != NULL) {
  ------------------
  |  Branch (2277:6): [True: 153k, False: 11.1k]
  ------------------
 2278|   153k|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|   153k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   153k|	do {                         \
  |  |  |  |  113|   153k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 153k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   153k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 153k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2279|   153k|	} else if (inp != NULL) {
  ------------------
  |  Branch (2279:13): [True: 11.1k, False: 0]
  ------------------
 2280|  11.1k|		SCTP_INP_WLOCK_ASSERT(inp);
  ------------------
  |  |  410|  11.1k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_mtx) == EBUSY, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2281|  11.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|   164k|	if (stcb != NULL) {
  ------------------
  |  Branch (2284:6): [True: 153k, False: 11.1k]
  ------------------
 2285|       |		/* Don't restart timer on association that's about to be killed. */
 2286|   153k|		if ((stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) &&
  ------------------
  |  |  465|   153k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (2286:7): [True: 2.80k, False: 150k]
  ------------------
 2287|  2.80k|		    (t_type != SCTP_TIMER_TYPE_ASOCKILL)) {
  ------------------
  |  |  546|  2.80k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
  |  Branch (2287:7): [True: 0, False: 2.80k]
  ------------------
 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|   153k|		if (net != NULL && (net->dest_state & SCTP_ADDR_BEING_DELETED)) {
  ------------------
  |  |  484|   150k|#define SCTP_ADDR_BEING_DELETED		0x008
  ------------------
  |  Branch (2294:7): [True: 150k, False: 2.90k]
  |  Branch (2294:22): [True: 0, False: 150k]
  ------------------
 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|   153k|	}
 2301|   164k|	switch (t_type) {
 2302|  6.88k|	case SCTP_TIMER_TYPE_SEND:
  ------------------
  |  |  532|  6.88k|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
  |  Branch (2302:2): [True: 6.88k, False: 157k]
  ------------------
 2303|       |		/* Here we use the RTO timer. */
 2304|  6.88k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2304:7): [True: 0, False: 6.88k]
  |  Branch (2304:24): [True: 0, False: 6.88k]
  |  Branch (2304:42): [True: 0, False: 6.88k]
  ------------------
 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.88k|		tmr = &net->rxt_timer;
 2313|  6.88k|		if (net->RTO == 0) {
  ------------------
  |  Branch (2313:7): [True: 132, False: 6.75k]
  ------------------
 2314|    132|			to_ticks = sctp_msecs_to_ticks(stcb->asoc.initial_rto);
 2315|  6.75k|		} else {
 2316|  6.75k|			to_ticks = sctp_msecs_to_ticks(net->RTO);
 2317|  6.75k|		}
 2318|  6.88k|		break;
 2319|  17.6k|	case SCTP_TIMER_TYPE_INIT:
  ------------------
  |  |  533|  17.6k|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
  |  Branch (2319:2): [True: 17.6k, False: 146k]
  ------------------
 2320|       |		/*
 2321|       |		 * Here we use the INIT timer default usually about 1
 2322|       |		 * second.
 2323|       |		 */
 2324|  17.6k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2324:7): [True: 0, False: 17.6k]
  |  Branch (2324:24): [True: 0, False: 17.6k]
  |  Branch (2324:42): [True: 0, False: 17.6k]
  ------------------
 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|  17.6k|		tmr = &net->rxt_timer;
 2333|  17.6k|		if (net->RTO == 0) {
  ------------------
  |  Branch (2333:7): [True: 15.1k, False: 2.55k]
  ------------------
 2334|  15.1k|			to_ticks = sctp_msecs_to_ticks(stcb->asoc.initial_rto);
 2335|  15.1k|		} else {
 2336|  2.55k|			to_ticks = sctp_msecs_to_ticks(net->RTO);
 2337|  2.55k|		}
 2338|  17.6k|		break;
 2339|    101|	case SCTP_TIMER_TYPE_RECV:
  ------------------
  |  |  534|    101|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
  |  Branch (2339:2): [True: 101, False: 164k]
  ------------------
 2340|       |		/*
 2341|       |		 * Here we use the Delayed-Ack timer value from the inp,
 2342|       |		 * usually about 200ms.
 2343|       |		 */
 2344|    101|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2344:7): [True: 0, False: 101]
  |  Branch (2344:24): [True: 0, False: 101]
  |  Branch (2344:42): [True: 0, False: 101]
  ------------------
 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|    101|		tmr = &stcb->asoc.dack_timer;
 2353|    101|		to_ticks = sctp_msecs_to_ticks(stcb->asoc.delayed_ack);
 2354|    101|		break;
 2355|      0|	case SCTP_TIMER_TYPE_SHUTDOWN:
  ------------------
  |  |  535|      0|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
  |  Branch (2355:2): [True: 0, False: 164k]
  ------------------
 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|  55.6k|	case SCTP_TIMER_TYPE_HEARTBEAT:
  ------------------
  |  |  536|  55.6k|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  |  Branch (2372:2): [True: 55.6k, False: 108k]
  ------------------
 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|  55.6k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2378:7): [True: 0, False: 55.6k]
  |  Branch (2378:24): [True: 0, False: 55.6k]
  |  Branch (2378:42): [True: 0, False: 55.6k]
  ------------------
 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|  55.6k|		if ((net->dest_state & SCTP_ADDR_NOHB) &&
  ------------------
  |  |  483|  55.6k|#define SCTP_ADDR_NOHB			0x004
  ------------------
  |  Branch (2386:7): [True: 0, False: 55.6k]
  ------------------
 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|  55.6k|		tmr = &net->hb_timer;
 2394|  55.6k|		if (net->RTO == 0) {
  ------------------
  |  Branch (2394:7): [True: 44.4k, False: 11.2k]
  ------------------
 2395|  44.4k|			to_ticks = stcb->asoc.initial_rto;
 2396|  44.4k|		} else {
 2397|  11.2k|			to_ticks = net->RTO;
 2398|  11.2k|		}
 2399|  55.6k|		if (!((net->dest_state & SCTP_ADDR_UNCONFIRMED) &&
  ------------------
  |  |  487|  55.6k|#define SCTP_ADDR_UNCONFIRMED		0x200
  ------------------
  |  Branch (2399:9): [True: 41.5k, False: 14.1k]
  ------------------
 2400|  41.5k|		      (net->dest_state & SCTP_ADDR_REACHABLE)) &&
  ------------------
  |  |  481|  41.5k|#define SCTP_ADDR_REACHABLE		0x001
  ------------------
  |  Branch (2400:9): [True: 41.5k, False: 0]
  ------------------
 2401|  14.1k|		    ((net->dest_state & SCTP_ADDR_PF) == 0)) {
  ------------------
  |  |  490|  14.1k|#define SCTP_ADDR_PF                    0x800
  ------------------
  |  Branch (2401:7): [True: 14.1k, False: 0]
  ------------------
 2402|  14.1k|			if (to_ticks > 1) {
  ------------------
  |  Branch (2402:8): [True: 14.1k, False: 0]
  ------------------
 2403|  14.1k|				rndval = sctp_select_initial_TSN(&inp->sctp_ep);
 2404|  14.1k|				jitter = rndval % to_ticks;
 2405|  14.1k|				to_ticks >>= 1;
 2406|  14.1k|				if (jitter < (UINT32_MAX - to_ticks)) {
  ------------------
  |  Branch (2406:9): [True: 14.1k, False: 0]
  ------------------
 2407|  14.1k|					to_ticks += jitter;
 2408|  14.1k|				} else {
 2409|      0|					to_ticks = UINT32_MAX;
 2410|      0|				}
 2411|  14.1k|			}
 2412|  14.1k|			if (net->heart_beat_delay < (UINT32_MAX - to_ticks)) {
  ------------------
  |  Branch (2412:8): [True: 14.1k, False: 0]
  ------------------
 2413|  14.1k|				to_ticks += net->heart_beat_delay;
 2414|  14.1k|			} else {
 2415|      0|				to_ticks = UINT32_MAX;
 2416|      0|			}
 2417|  14.1k|		}
 2418|       |		/*
 2419|       |		 * Now we must convert the to_ticks that are now in
 2420|       |		 * ms to ticks.
 2421|       |		 */
 2422|  55.6k|		to_ticks = sctp_msecs_to_ticks(to_ticks);
 2423|  55.6k|		break;
 2424|  17.4k|	case SCTP_TIMER_TYPE_COOKIE:
  ------------------
  |  |  537|  17.4k|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
  |  Branch (2424:2): [True: 17.4k, False: 147k]
  ------------------
 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|  17.4k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2430:7): [True: 0, False: 17.4k]
  |  Branch (2430:24): [True: 0, False: 17.4k]
  |  Branch (2430:42): [True: 0, False: 17.4k]
  ------------------
 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|  17.4k|		tmr = &net->rxt_timer;
 2439|  17.4k|		if (net->RTO == 0) {
  ------------------
  |  Branch (2439:7): [True: 0, False: 17.4k]
  ------------------
 2440|      0|			to_ticks = sctp_msecs_to_ticks(stcb->asoc.initial_rto);
 2441|  17.4k|		} else {
 2442|  17.4k|			to_ticks = sctp_msecs_to_ticks(net->RTO);
 2443|  17.4k|		}
 2444|  17.4k|		break;
 2445|  11.1k|	case SCTP_TIMER_TYPE_NEWCOOKIE:
  ------------------
  |  |  538|  11.1k|#define SCTP_TIMER_TYPE_NEWCOOKIE	7
  ------------------
  |  Branch (2445:2): [True: 11.1k, False: 153k]
  ------------------
 2446|       |		/*
 2447|       |		 * Nothing needed but the endpoint here usually about 60
 2448|       |		 * minutes.
 2449|       |		 */
 2450|  11.1k|		if ((inp == NULL) || (stcb != NULL) || (net != NULL)) {
  ------------------
  |  Branch (2450:7): [True: 0, False: 11.1k]
  |  Branch (2450:24): [True: 0, False: 11.1k]
  |  Branch (2450:42): [True: 0, False: 11.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|  11.1k|		tmr = &inp->sctp_ep.signature_change;
 2459|  11.1k|		to_ticks = inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_SIGNATURE];
  ------------------
  |  |  523|  11.1k|#define SCTP_TIMER_SIGNATURE	6
  ------------------
 2460|  11.1k|		break;
 2461|  50.0k|	case SCTP_TIMER_TYPE_PATHMTURAISE:
  ------------------
  |  |  539|  50.0k|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
  |  Branch (2461:2): [True: 50.0k, False: 114k]
  ------------------
 2462|       |		/*
 2463|       |		 * Here we use the value found in the EP for PMTUD, usually
 2464|       |		 * about 10 minutes.
 2465|       |		 */
 2466|  50.0k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2466:7): [True: 0, False: 50.0k]
  |  Branch (2466:24): [True: 0, False: 50.0k]
  |  Branch (2466:42): [True: 0, False: 50.0k]
  ------------------
 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|  50.0k|		if (net->dest_state & SCTP_ADDR_NO_PMTUD) {
  ------------------
  |  |  482|  50.0k|#define SCTP_ADDR_NO_PMTUD              0x002
  ------------------
  |  Branch (2474:7): [True: 0, False: 50.0k]
  ------------------
 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|  50.0k|		tmr = &net->pmtu_timer;
 2481|  50.0k|		to_ticks = inp->sctp_ep.sctp_timeoutticks[SCTP_TIMER_PMTU];
  ------------------
  |  |  521|  50.0k|#define SCTP_TIMER_PMTU		4
  ------------------
 2482|  50.0k|		break;
 2483|     58|	case SCTP_TIMER_TYPE_SHUTDOWNACK:
  ------------------
  |  |  540|     58|#define SCTP_TIMER_TYPE_SHUTDOWNACK	9
  ------------------
  |  Branch (2483:2): [True: 58, False: 164k]
  ------------------
 2484|       |		/* Here we use the RTO of the destination. */
 2485|     58|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2485:7): [True: 0, False: 58]
  |  Branch (2485:24): [True: 0, False: 58]
  |  Branch (2485:42): [True: 0, False: 58]
  ------------------
 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|     58|		tmr = &net->rxt_timer;
 2494|     58|		if (net->RTO == 0) {
  ------------------
  |  Branch (2494:7): [True: 0, False: 58]
  ------------------
 2495|      0|			to_ticks = sctp_msecs_to_ticks(stcb->asoc.initial_rto);
 2496|     58|		} else {
 2497|     58|			to_ticks = sctp_msecs_to_ticks(net->RTO);
 2498|     58|		}
 2499|     58|		break;
 2500|      0|	case SCTP_TIMER_TYPE_ASCONF:
  ------------------
  |  |  541|      0|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
  |  Branch (2500:2): [True: 0, False: 164k]
  ------------------
 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: 164k]
  ------------------
 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: 164k]
  ------------------
 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.71k|	case SCTP_TIMER_TYPE_STRRESET:
  ------------------
  |  |  544|  2.71k|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
  |  Branch (2556:2): [True: 2.71k, False: 161k]
  ------------------
 2557|       |		/*
 2558|       |		 * Here the timer comes from the stcb but its value is from
 2559|       |		 * the net's RTO.
 2560|       |		 */
 2561|  2.71k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2561:7): [True: 0, False: 2.71k]
  |  Branch (2561:24): [True: 0, False: 2.71k]
  |  Branch (2561:42): [True: 0, False: 2.71k]
  ------------------
 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.71k|		tmr = &stcb->asoc.strreset_timer;
 2570|  2.71k|		if (net->RTO == 0) {
  ------------------
  |  Branch (2570:7): [True: 12, False: 2.69k]
  ------------------
 2571|     12|			to_ticks = sctp_msecs_to_ticks(stcb->asoc.initial_rto);
 2572|  2.69k|		} else {
 2573|  2.69k|			to_ticks = sctp_msecs_to_ticks(net->RTO);
 2574|  2.69k|		}
 2575|  2.71k|		break;
 2576|     28|	case SCTP_TIMER_TYPE_INPKILL:
  ------------------
  |  |  545|     28|#define SCTP_TIMER_TYPE_INPKILL		14
  ------------------
  |  Branch (2576:2): [True: 28, False: 164k]
  ------------------
 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|     28|		if ((inp == NULL) || (stcb != NULL) || (net != NULL)) {
  ------------------
  |  Branch (2582:7): [True: 0, False: 28]
  |  Branch (2582:24): [True: 0, False: 28]
  |  Branch (2582:42): [True: 0, False: 28]
  ------------------
 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|     28|		tmr = &inp->sctp_ep.signature_change;
 2591|     28|		to_ticks = sctp_msecs_to_ticks(SCTP_INP_KILL_TIMEOUT);
  ------------------
  |  |  610|     28|#define SCTP_INP_KILL_TIMEOUT 20	/* number of ms to retry kill of inpcb */
  ------------------
 2592|     28|		break;
 2593|  2.80k|	case SCTP_TIMER_TYPE_ASOCKILL:
  ------------------
  |  |  546|  2.80k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
  |  Branch (2593:2): [True: 2.80k, False: 161k]
  ------------------
 2594|  2.80k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2594:7): [True: 0, False: 2.80k]
  |  Branch (2594:24): [True: 0, False: 2.80k]
  |  Branch (2594:42): [True: 0, False: 2.80k]
  ------------------
 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.80k|		tmr = &stcb->asoc.strreset_timer;
 2603|  2.80k|		to_ticks = sctp_msecs_to_ticks(SCTP_ASOC_KILL_TIMEOUT);
  ------------------
  |  |  611|  2.80k|#define SCTP_ASOC_KILL_TIMEOUT 10	/* number of ms to retry kill of inpcb */
  ------------------
 2604|  2.80k|		break;
 2605|      0|	case SCTP_TIMER_TYPE_ADDR_WQ:
  ------------------
  |  |  547|      0|#define SCTP_TIMER_TYPE_ADDR_WQ		16
  ------------------
  |  Branch (2605:2): [True: 0, False: 164k]
  ------------------
 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: 164k]
  ------------------
 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: 164k]
  ------------------
 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|   164k|	}
 2637|   164k|	KASSERT(tmr != NULL, ("tmr is NULL for timer type %d", t_type));
  ------------------
  |  |  112|   164k|	do {                         \
  |  |  113|   164k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 164k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   164k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 164k]
  |  |  ------------------
  ------------------
 2638|   164k|	KASSERT(to_ticks > 0, ("to_ticks == 0 for timer type %d", t_type));
  ------------------
  |  |  112|   164k|	do {                         \
  |  |  113|   164k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 164k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   164k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 164k]
  |  |  ------------------
  ------------------
 2639|   164k|	if (SCTP_OS_TIMER_PENDING(&tmr->timer)) {
  ------------------
  |  |  102|   164k|#define	SCTP_OS_TIMER_PENDING(tmr) ((tmr)->c_flags & SCTP_CALLOUT_PENDING)
  |  |  ------------------
  |  |  |  |   83|   164k|#define	SCTP_CALLOUT_PENDING	0x0004	/* callout is waiting for timeout */
  |  |  ------------------
  |  |  |  Branch (102:36): [True: 22.0k, False: 142k]
  |  |  ------------------
  ------------------
 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|  22.0k|		SCTPDBG(SCTP_DEBUG_TIMER2,
 2645|  22.0k|		        "Timer type %d already running: inp=%p, stcb=%p, net=%p.\n",
 2646|  22.0k|		         t_type, inp, stcb, net);
 2647|  22.0k|		return;
 2648|  22.0k|	}
 2649|       |	/* At this point we can proceed. */
 2650|   142k|	if (t_type == SCTP_TIMER_TYPE_SEND) {
  ------------------
  |  |  532|   142k|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
  |  Branch (2650:6): [True: 3.12k, False: 139k]
  ------------------
 2651|  3.12k|		stcb->asoc.num_send_timers_up++;
 2652|  3.12k|	}
 2653|   142k|	tmr->stopped_from = 0;
 2654|   142k|	tmr->type = t_type;
 2655|   142k|	tmr->ep = (void *)inp;
 2656|   142k|	tmr->tcb = (void *)stcb;
 2657|   142k|	if (t_type == SCTP_TIMER_TYPE_STRRESET) {
  ------------------
  |  |  544|   142k|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
  |  Branch (2657:6): [True: 2.67k, False: 139k]
  ------------------
 2658|  2.67k|		tmr->net = NULL;
 2659|   139k|	} else {
 2660|   139k|		tmr->net = (void *)net;
 2661|   139k|	}
 2662|   142k|	tmr->self = (void *)tmr;
 2663|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 2664|       |	tmr->vnet = (void *)curvnet;
 2665|       |#endif
 2666|   142k|	tmr->ticks = sctp_get_tick_count();
 2667|   142k|	if (SCTP_OS_TIMER_START(&tmr->timer, to_ticks, sctp_timeout_handler, tmr) == 0) {
  ------------------
  |  |   98|   142k|#define SCTP_OS_TIMER_START	sctp_os_timer_start
  ------------------
  |  Branch (2667:6): [True: 142k, False: 18.4E]
  ------------------
 2668|   142k|		SCTPDBG(SCTP_DEBUG_TIMER2,
 2669|   142k|		        "Timer type %d started: ticks=%u, inp=%p, stcb=%p, net=%p.\n",
 2670|   142k|		         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|   142k|		if (tmr->ep != NULL) {
  ------------------
  |  Branch (2675:7): [True: 142k, False: 0]
  ------------------
 2676|   142k|			SCTP_INP_INCR_REF(inp);
  ------------------
  |  |  411|   142k|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|   142k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 2677|   142k|		}
 2678|   142k|		if (tmr->tcb != NULL) {
  ------------------
  |  Branch (2678:7): [True: 131k, False: 11.1k]
  ------------------
 2679|   131k|			atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|   131k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 2680|   131k|		}
 2681|   142k|		if (tmr->net != NULL) {
  ------------------
  |  Branch (2681:7): [True: 125k, False: 16.7k]
  ------------------
 2682|   125k|			atomic_add_int(&net->ref_count, 1);
  ------------------
  |  |   94|   125k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 2683|   125k|		}
 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|   142k|	return;
 2694|   164k|}
sctp_timer_stop:
 2726|   497k|{
 2727|   497k|	struct sctp_timer *tmr;
 2728|       |
 2729|   497k|	KASSERT(stcb == NULL || stcb->sctp_ep == inp,
  ------------------
  |  |  112|   497k|	do {                         \
  |  |  113|   984k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 11.2k, False: 486k]
  |  |  |  Branch (113:9): [True: 486k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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]
  |  |  ------------------
  ------------------
 2730|   497k|	        ("sctp_timer_stop of type %d: inp = %p, stcb->sctp_ep %p",
 2731|   497k|	         t_type, stcb, stcb->sctp_ep));
 2732|   497k|	if (stcb != NULL) {
  ------------------
  |  Branch (2732:6): [True: 486k, False: 11.2k]
  ------------------
 2733|   486k|		SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|   486k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   486k|	do {                         \
  |  |  |  |  113|   486k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 486k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   486k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 486k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2734|   486k|	} else if (inp != NULL) {
  ------------------
  |  Branch (2734:13): [True: 11.2k, False: 0]
  ------------------
 2735|  11.2k|		SCTP_INP_WLOCK_ASSERT(inp);
  ------------------
  |  |  410|  11.2k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_mtx) == EBUSY, ("%s:%d: inp_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.2k|	do {                         \
  |  |  |  |  113|  11.2k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.2k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2736|  11.2k|	} else {
 2737|      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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2738|      0|	}
 2739|   497k|	tmr = NULL;
 2740|   497k|	switch (t_type) {
 2741|  32.3k|	case SCTP_TIMER_TYPE_SEND:
  ------------------
  |  |  532|  32.3k|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
  |  Branch (2741:2): [True: 32.3k, False: 465k]
  ------------------
 2742|  32.3k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2742:7): [True: 0, False: 32.3k]
  |  Branch (2742:24): [True: 0, False: 32.3k]
  |  Branch (2742:42): [True: 0, False: 32.3k]
  ------------------
 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|  32.3k|		tmr = &net->rxt_timer;
 2751|  32.3k|		break;
 2752|  51.2k|	case SCTP_TIMER_TYPE_INIT:
  ------------------
  |  |  533|  51.2k|#define SCTP_TIMER_TYPE_INIT		2
  ------------------
  |  Branch (2752:2): [True: 51.2k, False: 446k]
  ------------------
 2753|  51.2k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2753:7): [True: 0, False: 51.2k]
  |  Branch (2753:24): [True: 0, False: 51.2k]
  |  Branch (2753:42): [True: 0, False: 51.2k]
  ------------------
 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.2k|		tmr = &net->rxt_timer;
 2762|  51.2k|		break;
 2763|  29.1k|	case SCTP_TIMER_TYPE_RECV:
  ------------------
  |  |  534|  29.1k|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
  |  Branch (2763:2): [True: 29.1k, False: 468k]
  ------------------
 2764|  29.1k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2764:7): [True: 0, False: 29.1k]
  |  Branch (2764:24): [True: 0, False: 29.1k]
  |  Branch (2764:42): [True: 0, False: 29.1k]
  ------------------
 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|  29.1k|		tmr = &stcb->asoc.dack_timer;
 2773|  29.1k|		break;
 2774|  32.3k|	case SCTP_TIMER_TYPE_SHUTDOWN:
  ------------------
  |  |  535|  32.3k|#define SCTP_TIMER_TYPE_SHUTDOWN	4
  ------------------
  |  Branch (2774:2): [True: 32.3k, False: 465k]
  ------------------
 2775|  32.3k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2775:7): [True: 0, False: 32.3k]
  |  Branch (2775:24): [True: 0, False: 32.3k]
  |  Branch (2775:42): [True: 0, False: 32.3k]
  ------------------
 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|  32.3k|		tmr = &net->rxt_timer;
 2784|  32.3k|		break;
 2785|  69.9k|	case SCTP_TIMER_TYPE_HEARTBEAT:
  ------------------
  |  |  536|  69.9k|#define SCTP_TIMER_TYPE_HEARTBEAT	5
  ------------------
  |  Branch (2785:2): [True: 69.9k, False: 427k]
  ------------------
 2786|  69.9k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2786:7): [True: 0, False: 69.9k]
  |  Branch (2786:24): [True: 0, False: 69.9k]
  |  Branch (2786:42): [True: 0, False: 69.9k]
  ------------------
 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|  69.9k|		tmr = &net->hb_timer;
 2795|  69.9k|		break;
 2796|  42.5k|	case SCTP_TIMER_TYPE_COOKIE:
  ------------------
  |  |  537|  42.5k|#define SCTP_TIMER_TYPE_COOKIE		6
  ------------------
  |  Branch (2796:2): [True: 42.5k, False: 455k]
  ------------------
 2797|  42.5k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2797:7): [True: 0, False: 42.5k]
  |  Branch (2797:24): [True: 0, False: 42.5k]
  |  Branch (2797:42): [True: 0, False: 42.5k]
  ------------------
 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|  42.5k|		tmr = &net->rxt_timer;
 2806|  42.5k|		break;
 2807|  11.2k|	case SCTP_TIMER_TYPE_NEWCOOKIE:
  ------------------
  |  |  538|  11.2k|#define SCTP_TIMER_TYPE_NEWCOOKIE	7
  ------------------
  |  Branch (2807:2): [True: 11.2k, False: 486k]
  ------------------
 2808|  11.2k|		if ((inp == NULL) || (stcb != NULL) || (net != NULL)) {
  ------------------
  |  Branch (2808:7): [True: 0, False: 11.2k]
  |  Branch (2808:24): [True: 0, False: 11.2k]
  |  Branch (2808:42): [True: 0, False: 11.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|  11.2k|		tmr = &inp->sctp_ep.signature_change;
 2817|  11.2k|		break;
 2818|  69.9k|	case SCTP_TIMER_TYPE_PATHMTURAISE:
  ------------------
  |  |  539|  69.9k|#define SCTP_TIMER_TYPE_PATHMTURAISE	8
  ------------------
  |  Branch (2818:2): [True: 69.9k, False: 427k]
  ------------------
 2819|  69.9k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2819:7): [True: 0, False: 69.9k]
  |  Branch (2819:24): [True: 0, False: 69.9k]
  |  Branch (2819:42): [True: 0, False: 69.9k]
  ------------------
 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|  69.9k|		tmr = &net->pmtu_timer;
 2828|  69.9k|		break;
 2829|  32.3k|	case SCTP_TIMER_TYPE_SHUTDOWNACK:
  ------------------
  |  |  540|  32.3k|#define SCTP_TIMER_TYPE_SHUTDOWNACK	9
  ------------------
  |  Branch (2829:2): [True: 32.3k, False: 465k]
  ------------------
 2830|  32.3k|		if ((inp == NULL) || (stcb == NULL) || (net == NULL)) {
  ------------------
  |  Branch (2830:7): [True: 0, False: 32.3k]
  |  Branch (2830:24): [True: 0, False: 32.3k]
  |  Branch (2830:42): [True: 0, False: 32.3k]
  ------------------
 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|  32.3k|		tmr = &net->rxt_timer;
 2839|  32.3k|		break;
 2840|  23.1k|	case SCTP_TIMER_TYPE_ASCONF:
  ------------------
  |  |  541|  23.1k|#define SCTP_TIMER_TYPE_ASCONF		10
  ------------------
  |  Branch (2840:2): [True: 23.1k, False: 474k]
  ------------------
 2841|  23.1k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2841:7): [True: 0, False: 23.1k]
  |  Branch (2841:24): [True: 0, False: 23.1k]
  |  Branch (2841:42): [True: 0, False: 23.1k]
  ------------------
 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|  23.1k|		tmr = &stcb->asoc.asconf_timer;
 2850|  23.1k|		break;
 2851|  22.3k|	case SCTP_TIMER_TYPE_SHUTDOWNGUARD:
  ------------------
  |  |  542|  22.3k|#define SCTP_TIMER_TYPE_SHUTDOWNGUARD	11
  ------------------
  |  Branch (2851:2): [True: 22.3k, False: 475k]
  ------------------
 2852|  22.3k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2852:7): [True: 0, False: 22.3k]
  |  Branch (2852:24): [True: 0, False: 22.3k]
  |  Branch (2852:42): [True: 0, False: 22.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|  22.3k|		tmr = &stcb->asoc.shut_guard_timer;
 2861|  22.3k|		break;
 2862|  22.3k|	case SCTP_TIMER_TYPE_AUTOCLOSE:
  ------------------
  |  |  543|  22.3k|#define SCTP_TIMER_TYPE_AUTOCLOSE	12
  ------------------
  |  Branch (2862:2): [True: 22.3k, False: 475k]
  ------------------
 2863|  22.3k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2863:7): [True: 0, False: 22.3k]
  |  Branch (2863:24): [True: 0, False: 22.3k]
  |  Branch (2863:42): [True: 0, False: 22.3k]
  ------------------
 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|  22.3k|		tmr = &stcb->asoc.autoclose_timer;
 2872|  22.3k|		break;
 2873|  22.3k|	case SCTP_TIMER_TYPE_STRRESET:
  ------------------
  |  |  544|  22.3k|#define SCTP_TIMER_TYPE_STRRESET	13
  ------------------
  |  Branch (2873:2): [True: 22.3k, False: 475k]
  ------------------
 2874|  22.3k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2874:7): [True: 0, False: 22.3k]
  |  Branch (2874:24): [True: 0, False: 22.3k]
  |  Branch (2874:42): [True: 0, False: 22.3k]
  ------------------
 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|  22.3k|		tmr = &stcb->asoc.strreset_timer;
 2883|  22.3k|		break;
 2884|     28|	case SCTP_TIMER_TYPE_INPKILL:
  ------------------
  |  |  545|     28|#define SCTP_TIMER_TYPE_INPKILL		14
  ------------------
  |  Branch (2884:2): [True: 28, False: 497k]
  ------------------
 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|     28|		if ((inp == NULL) || (stcb != NULL) || (net != NULL)) {
  ------------------
  |  Branch (2890:7): [True: 0, False: 28]
  |  Branch (2890:24): [True: 0, False: 28]
  |  Branch (2890:42): [True: 0, False: 28]
  ------------------
 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|     28|		tmr = &inp->sctp_ep.signature_change;
 2899|     28|		break;
 2900|  13.9k|	case SCTP_TIMER_TYPE_ASOCKILL:
  ------------------
  |  |  546|  13.9k|#define SCTP_TIMER_TYPE_ASOCKILL	15
  ------------------
  |  Branch (2900:2): [True: 13.9k, False: 483k]
  ------------------
 2901|  13.9k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2901:7): [True: 0, False: 13.9k]
  |  Branch (2901:24): [True: 0, False: 13.9k]
  |  Branch (2901:42): [True: 0, False: 13.9k]
  ------------------
 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|  13.9k|		tmr = &stcb->asoc.strreset_timer;
 2910|  13.9k|		break;
 2911|      0|	case SCTP_TIMER_TYPE_ADDR_WQ:
  ------------------
  |  |  547|      0|#define SCTP_TIMER_TYPE_ADDR_WQ		16
  ------------------
  |  Branch (2911:2): [True: 0, False: 497k]
  ------------------
 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|  22.3k|	case SCTP_TIMER_TYPE_PRIM_DELETED:
  ------------------
  |  |  548|  22.3k|#define SCTP_TIMER_TYPE_PRIM_DELETED	17
  ------------------
  |  Branch (2922:2): [True: 22.3k, False: 475k]
  ------------------
 2923|  22.3k|		if ((inp == NULL) || (stcb == NULL) || (net != NULL)) {
  ------------------
  |  Branch (2923:7): [True: 0, False: 22.3k]
  |  Branch (2923:24): [True: 0, False: 22.3k]
  |  Branch (2923:42): [True: 0, False: 22.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|  22.3k|		tmr = &stcb->asoc.delete_prim_timer;
 2932|  22.3k|		break;
 2933|      0|	default:
  ------------------
  |  Branch (2933:2): [True: 0, False: 497k]
  ------------------
 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|   497k|	}
 2940|   497k|	KASSERT(tmr != NULL, ("tmr is NULL for timer type %d", t_type));
  ------------------
  |  |  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]
  |  |  ------------------
  ------------------
 2941|   497k|	if ((tmr->type != SCTP_TIMER_TYPE_NONE) &&
  ------------------
  |  |  531|   497k|#define SCTP_TIMER_TYPE_NONE		0
  ------------------
  |  Branch (2941:6): [True: 283k, False: 214k]
  ------------------
 2942|   283k|	    (tmr->type != t_type)) {
  ------------------
  |  Branch (2942:6): [True: 93.8k, False: 189k]
  ------------------
 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|  93.8k|		SCTPDBG(SCTP_DEBUG_TIMER2,
 2950|  93.8k|		        "Shared timer type %d not running: inp=%p, stcb=%p, net=%p.\n",
 2951|  93.8k|		         t_type, inp, stcb, net);
 2952|  93.8k|		return;
 2953|  93.8k|	}
 2954|   403k|	if ((t_type == SCTP_TIMER_TYPE_SEND) && (stcb != NULL)) {
  ------------------
  |  |  532|   403k|#define SCTP_TIMER_TYPE_SEND		1
  ------------------
  |  Branch (2954:6): [True: 15.8k, False: 388k]
  |  Branch (2954:42): [True: 15.8k, False: 0]
  ------------------
 2955|  15.8k|		stcb->asoc.num_send_timers_up--;
 2956|  15.8k|		if (stcb->asoc.num_send_timers_up < 0) {
  ------------------
  |  Branch (2956:7): [True: 12.7k, False: 3.11k]
  ------------------
 2957|  12.7k|			stcb->asoc.num_send_timers_up = 0;
 2958|  12.7k|		}
 2959|  15.8k|	}
 2960|   403k|	tmr->self = NULL;
 2961|   403k|	tmr->stopped_from = from;
 2962|   403k|	if (SCTP_OS_TIMER_STOP(&tmr->timer) == 1) {
  ------------------
  |  |   99|   403k|#define SCTP_OS_TIMER_STOP	sctp_os_timer_stop
  ------------------
  |  Branch (2962:6): [True: 139k, False: 264k]
  ------------------
 2963|   139k|		KASSERT(tmr->ep == inp,
  ------------------
  |  |  112|   139k|	do {                         \
  |  |  113|   139k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 139k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   139k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 139k]
  |  |  ------------------
  ------------------
 2964|   139k|		        ("sctp_timer_stop of type %d: inp = %p, tmr->inp = %p",
 2965|   139k|		         t_type, inp, tmr->ep));
 2966|   139k|		KASSERT(tmr->tcb == stcb,
  ------------------
  |  |  112|   139k|	do {                         \
  |  |  113|   139k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 139k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   139k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 139k]
  |  |  ------------------
  ------------------
 2967|   139k|		        ("sctp_timer_stop of type %d: stcb = %p, tmr->stcb = %p",
 2968|   139k|		         t_type, stcb, tmr->tcb));
 2969|   139k|		KASSERT(((t_type == SCTP_TIMER_TYPE_ASCONF) && (tmr->net != NULL)) ||
  ------------------
  |  |  112|   139k|	do {                         \
  |  |  113|   698k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 0, False: 139k]
  |  |  |  Branch (113:9): [True: 0, False: 0]
  |  |  |  Branch (113:9): [True: 139k, False: 0]
  |  |  |  Branch (113:9): [True: 139k, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   139k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 139k]
  |  |  ------------------
  ------------------
 2970|   139k|		        ((t_type != SCTP_TIMER_TYPE_ASCONF) && (tmr->net == net)),
 2971|   139k|		        ("sctp_timer_stop of type %d: net = %p, tmr->net = %p",
 2972|   139k|		         t_type, net, tmr->net));
 2973|   139k|		SCTPDBG(SCTP_DEBUG_TIMER2,
 2974|   139k|		        "Timer type %d stopped: inp=%p, stcb=%p, net=%p.\n",
 2975|   139k|		        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|   139k|		if (tmr->ep != NULL) {
  ------------------
  |  Branch (2980:7): [True: 139k, False: 0]
  ------------------
 2981|   139k|			tmr->ep = NULL;
 2982|   139k|			SCTP_INP_DECR_REF(inp);
  ------------------
  |  |  412|   139k|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|   139k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 2983|   139k|		}
 2984|   139k|		if (tmr->tcb != NULL) {
  ------------------
  |  Branch (2984:7): [True: 128k, False: 11.1k]
  ------------------
 2985|   128k|			tmr->tcb = NULL;
 2986|   128k|			atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|   128k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 2987|   128k|		}
 2988|   139k|		if (tmr->net != NULL) {
  ------------------
  |  Branch (2988:7): [True: 125k, False: 13.9k]
  ------------------
 2989|   125k|			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|   125k|			tmr_net = tmr->net;
 2996|   125k|			tmr->net = NULL;
 2997|   125k|			sctp_free_remote_addr(tmr_net);
  ------------------
  |  |  228|   125k|#define sctp_free_remote_addr(__net) { \
  |  |  229|   125k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 125k, False: 0]
  |  |  ------------------
  |  |  230|   125k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|   125k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|   125k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 0, False: 125k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  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|   125k|	} \
  |  |  245|   125k|}
  ------------------
 2998|   125k|		}
 2999|   264k|	} else {
 3000|   264k|		SCTPDBG(SCTP_DEBUG_TIMER2,
 3001|   264k|		        "Timer type %d not stopped: inp=%p, stcb=%p, net=%p.\n",
 3002|   264k|		         t_type, inp, stcb, net);
 3003|   264k|	}
 3004|   403k|	return;
 3005|   403k|}
sctp_calculate_len:
 3009|  52.6k|{
 3010|  52.6k|	struct mbuf *at;
 3011|  52.6k|	uint32_t tlen;
 3012|       |
 3013|  52.6k|	tlen = 0;
 3014|   233k|	for (at = m; at != NULL; at = SCTP_BUF_NEXT(at)) {
  ------------------
  |  |  802|   180k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   180k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (3014:15): [True: 180k, False: 52.6k]
  ------------------
 3015|   180k|		tlen += SCTP_BUF_LEN(at);
  ------------------
  |  |  801|   180k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   180k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3016|   180k|	}
 3017|  52.6k|	return (tlen);
 3018|  52.6k|}
sctp_calculate_rto:
 3033|  16.5k|{
 3034|  16.5k|	struct timeval now;
 3035|  16.5k|	uint64_t rtt_us;	/* RTT in us */
 3036|  16.5k|	int32_t rtt;		/* RTT in ms */
 3037|  16.5k|	uint32_t new_rto;
 3038|  16.5k|	int first_measure = 0;
 3039|       |
 3040|       |	/************************/
 3041|       |	/* 1. calculate new RTT */
 3042|       |	/************************/
 3043|       |	/* get the current time */
 3044|  16.5k|	if (stcb->asoc.use_precise_time) {
  ------------------
  |  Branch (3044:6): [True: 0, False: 16.5k]
  ------------------
 3045|      0|		(void)SCTP_GETPTIME_TIMEVAL(&now);
  ------------------
  |  |  992|      0|#define SCTP_GETPTIME_TIMEVAL(x) gettimeofday(x, NULL)
  ------------------
 3046|  16.5k|	} else {
 3047|  16.5k|		(void)SCTP_GETTIME_TIMEVAL(&now);
  ------------------
  |  |  991|  16.5k|#define SCTP_GETTIME_TIMEVAL(x)	gettimeofday(x, NULL)
  ------------------
 3048|  16.5k|	}
 3049|  16.5k|	if ((old->tv_sec > now.tv_sec) ||
  ------------------
  |  Branch (3049:6): [True: 244, False: 16.3k]
  ------------------
 3050|  16.3k|	    ((old->tv_sec == now.tv_sec) && (old->tv_usec > now.tv_usec))) {
  ------------------
  |  Branch (3050:7): [True: 14.4k, False: 1.91k]
  |  Branch (3050:38): [True: 0, False: 14.4k]
  ------------------
 3051|       |		/* The starting point is in the future. */
 3052|    244|		return (0);
 3053|    244|	}
 3054|  16.3k|	timevalsub(&now, old);
  ------------------
  |  | 1116|  16.3k|	do {                                       \
  |  | 1117|  16.3k|		(tp1)->tv_sec -= (tp2)->tv_sec;    \
  |  | 1118|  16.3k|		(tp1)->tv_usec -= (tp2)->tv_usec;  \
  |  | 1119|  16.3k|		if ((tp1)->tv_usec < 0) {          \
  |  |  ------------------
  |  |  |  Branch (1119:7): [True: 1.02k, False: 15.3k]
  |  |  ------------------
  |  | 1120|  1.02k|			(tp1)->tv_sec--;           \
  |  | 1121|  1.02k|			(tp1)->tv_usec += 1000000; \
  |  | 1122|  1.02k|		}                                  \
  |  | 1123|  16.3k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (1123:11): [Folded, False: 16.3k]
  |  |  ------------------
  ------------------
 3055|  16.3k|	rtt_us = (uint64_t)1000000 * (uint64_t)now.tv_sec + (uint64_t)now.tv_usec;
 3056|  16.3k|	if (rtt_us > SCTP_RTO_UPPER_BOUND * 1000) {
  ------------------
  |  |  606|  16.3k|#define SCTP_RTO_UPPER_BOUND	(60000)	/* 60 sec in ms */
  ------------------
  |  Branch (3056:6): [True: 1.91k, False: 14.4k]
  ------------------
 3057|       |		/* The RTT is larger than a sane value. */
 3058|  1.91k|		return (0);
 3059|  1.91k|	}
 3060|       |	/* store the current RTT in us */
 3061|  14.4k|	net->rtt = rtt_us;
 3062|       |	/* compute rtt in ms */
 3063|  14.4k|	rtt = (int32_t)(net->rtt / 1000);
 3064|  14.4k|	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: 14.4k]
  |  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|  14.4k|	if ((rtt_from_sack == SCTP_RTT_FROM_DATA) &&
  ------------------
  |  |  341|  14.4k|#define SCTP_RTT_FROM_DATA     1
  ------------------
  |  Branch (3072:6): [True: 0, False: 14.4k]
  ------------------
 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|  14.4k|	if (net->RTO_measured) {
  ------------------
  |  Branch (3092:6): [True: 5.70k, False: 8.70k]
  ------------------
 3093|  5.70k|		rtt -= (net->lastsa >> SCTP_RTT_SHIFT);
  ------------------
  |  |   40|  5.70k|#define SCTP_RTT_SHIFT 3
  ------------------
 3094|  5.70k|		net->lastsa += rtt;
 3095|  5.70k|		if (rtt < 0) {
  ------------------
  |  Branch (3095:7): [True: 0, False: 5.70k]
  ------------------
 3096|      0|			rtt = -rtt;
 3097|      0|		}
 3098|  5.70k|		rtt -= (net->lastsv >> SCTP_RTT_VAR_SHIFT);
  ------------------
  |  |   41|  5.70k|#define SCTP_RTT_VAR_SHIFT 2
  ------------------
 3099|  5.70k|		net->lastsv += rtt;
 3100|  5.70k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_RTTVAR_LOGGING_ENABLE) {
  ------------------
  |  |  590|  5.70k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_RTTVAR_LOGGING_ENABLE) {
  ------------------
  |  |  654|  5.70k|#define SCTP_RTTVAR_LOGGING_ENABLE			0x00002000
  ------------------
  |  Branch (3100:7): [True: 0, False: 5.70k]
  ------------------
 3101|      0|			rto_logging(net, SCTP_LOG_RTTVAR);
  ------------------
  |  |  156|      0|#define SCTP_LOG_RTTVAR             52
  ------------------
 3102|      0|		}
 3103|  8.70k|	} else {
 3104|       |		/* First RTO measurement */
 3105|  8.70k|		net->RTO_measured = 1;
 3106|  8.70k|		first_measure = 1;
 3107|  8.70k|		net->lastsa = rtt << SCTP_RTT_SHIFT;
  ------------------
  |  |   40|  8.70k|#define SCTP_RTT_SHIFT 3
  ------------------
 3108|  8.70k|		net->lastsv = (rtt / 2) << SCTP_RTT_VAR_SHIFT;
  ------------------
  |  |   41|  8.70k|#define SCTP_RTT_VAR_SHIFT 2
  ------------------
 3109|  8.70k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_RTTVAR_LOGGING_ENABLE) {
  ------------------
  |  |  590|  8.70k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_RTTVAR_LOGGING_ENABLE) {
  ------------------
  |  |  654|  8.70k|#define SCTP_RTTVAR_LOGGING_ENABLE			0x00002000
  ------------------
  |  Branch (3109:7): [True: 0, False: 8.70k]
  ------------------
 3110|      0|			rto_logging(net, SCTP_LOG_INITIAL_RTT);
  ------------------
  |  |  155|      0|#define SCTP_LOG_INITIAL_RTT        51
  ------------------
 3111|      0|		}
 3112|  8.70k|	}
 3113|  14.4k|	if (net->lastsv == 0) {
  ------------------
  |  Branch (3113:6): [True: 8.70k, False: 5.70k]
  ------------------
 3114|  8.70k|		net->lastsv = SCTP_CLOCK_GRANULARITY;
  ------------------
  |  |  856|  8.70k|#define SCTP_CLOCK_GRANULARITY	10
  ------------------
 3115|  8.70k|	}
 3116|  14.4k|	new_rto = (net->lastsa >> SCTP_RTT_SHIFT) + net->lastsv;
  ------------------
  |  |   40|  14.4k|#define SCTP_RTT_SHIFT 3
  ------------------
 3117|  14.4k|	if ((new_rto > SCTP_SAT_NETWORK_MIN) &&
  ------------------
  |  |  504|  14.4k|#define SCTP_SAT_NETWORK_MIN	400	/* min ms for RTT to set satellite
  ------------------
  |  Branch (3117:6): [True: 0, False: 14.4k]
  ------------------
 3118|      0|	    (stcb->asoc.sat_network_lockout == 0)) {
  ------------------
  |  Branch (3118:6): [True: 0, False: 0]
  ------------------
 3119|      0|		stcb->asoc.sat_network = 1;
 3120|  14.4k|	} else if ((!first_measure) && stcb->asoc.sat_network) {
  ------------------
  |  Branch (3120:13): [True: 5.70k, False: 8.70k]
  |  Branch (3120:33): [True: 0, False: 5.70k]
  ------------------
 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|  14.4k|	if (new_rto < stcb->asoc.minrto) {
  ------------------
  |  Branch (3125:6): [True: 14.4k, False: 0]
  ------------------
 3126|  14.4k|		new_rto = stcb->asoc.minrto;
 3127|  14.4k|	}
 3128|  14.4k|	if (new_rto > stcb->asoc.maxrto) {
  ------------------
  |  Branch (3128:6): [True: 0, False: 14.4k]
  ------------------
 3129|      0|		new_rto = stcb->asoc.maxrto;
 3130|      0|	}
 3131|  14.4k|	net->RTO = new_rto;
 3132|  14.4k|	return (1);
 3133|  16.3k|}
sctp_m_getptr:
 3143|  2.53M|{
 3144|  2.53M|	uint32_t count;
 3145|  2.53M|	uint8_t *ptr;
 3146|       |
 3147|  2.53M|	ptr = in_ptr;
 3148|  2.53M|	if ((off < 0) || (len <= 0))
  ------------------
  |  Branch (3148:6): [True: 0, False: 2.53M]
  |  Branch (3148:19): [True: 0, False: 2.53M]
  ------------------
 3149|      0|		return (NULL);
 3150|       |
 3151|       |	/* find the desired start location */
 3152|  15.9M|	while ((m != NULL) && (off > 0)) {
  ------------------
  |  Branch (3152:9): [True: 15.8M, False: 9.81k]
  |  Branch (3152:24): [True: 15.8M, False: 5.83k]
  ------------------
 3153|  15.8M|		if (off < SCTP_BUF_LEN(m))
  ------------------
  |  |  801|  15.8M|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  15.8M|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (3153:7): [True: 2.51M, False: 13.3M]
  ------------------
 3154|  2.51M|			break;
 3155|  13.3M|		off -= SCTP_BUF_LEN(m);
  ------------------
  |  |  801|  13.3M|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  13.3M|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3156|  13.3M|		m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|  13.3M|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  13.3M|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3157|  13.3M|	}
 3158|  2.53M|	if (m == NULL)
  ------------------
  |  Branch (3158:6): [True: 9.81k, False: 2.52M]
  ------------------
 3159|  9.81k|		return (NULL);
 3160|       |
 3161|       |	/* is the current mbuf large enough (eg. contiguous)? */
 3162|  2.52M|	if ((SCTP_BUF_LEN(m) - off) >= len) {
  ------------------
  |  |  801|  2.52M|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  2.52M|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (3162:6): [True: 2.51M, False: 5.98k]
  ------------------
 3163|  2.51M|		return (mtod(m, caddr_t) + off);
  ------------------
  |  |   96|  2.51M|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  2.51M|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3164|  2.51M|	} else {
 3165|       |		/* else, it spans more than one mbuf, so save a temp copy... */
 3166|  16.6k|		while ((m != NULL) && (len > 0)) {
  ------------------
  |  Branch (3166:10): [True: 13.5k, False: 3.05k]
  |  Branch (3166:25): [True: 10.6k, False: 2.93k]
  ------------------
 3167|  10.6k|			count = min(SCTP_BUF_LEN(m) - off, len);
  ------------------
  |  |   66|  10.6k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 4.17k, False: 6.45k]
  |  |  ------------------
  ------------------
 3168|  10.6k|			memcpy(ptr, mtod(m, caddr_t) + off, count);
  ------------------
  |  |   96|  10.6k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  10.6k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3169|  10.6k|			len -= count;
 3170|  10.6k|			ptr += count;
 3171|  10.6k|			off = 0;
 3172|  10.6k|			m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|  10.6k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  10.6k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3173|  10.6k|		}
 3174|  5.98k|		if ((m == NULL) && (len > 0))
  ------------------
  |  Branch (3174:7): [True: 3.05k, False: 2.93k]
  |  Branch (3174:22): [True: 1.63k, False: 1.41k]
  ------------------
 3175|  1.63k|			return (NULL);
 3176|  4.35k|		else
 3177|  4.35k|			return ((caddr_t)in_ptr);
 3178|  5.98k|	}
 3179|  2.52M|}
sctp_get_next_param:
 3186|   401k|{
 3187|       |	/* This just provides a typed signature to Peter's Pull routine */
 3188|   401k|	return ((struct sctp_paramhdr *)sctp_m_getptr(m, offset, pull_limit,
 3189|   401k|	    (uint8_t *) pull));
 3190|   401k|}
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.3k, False: 7.38k]
  |  |  ------------------
  |  |  356|  31.7k|	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  326|  24.3k|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  24.3k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|  24.3k|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 24.3k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|  24.3k|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|  24.3k|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|  24.3k|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 24.3k]
  |  |  |  |  ------------------
  |  |  |  |  328|  24.3k|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|  24.3k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 17.6k, False: 6.72k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|  17.6k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|  17.6k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |  357|  17.6k|		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  219|  17.6k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  218|  17.6k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  |  |  358|  31.7k|	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  227|  7.38k|#define	m_dat		M_dat.M_databuf
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  138|  7.38k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  7.38k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  219|  7.38k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	    &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len))
  |  |  ------------------
  |  |  |  |  218|  7.38k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (3201:6): [True: 25.0k, False: 6.72k]
  ------------------
 3202|       |		/*
 3203|       |		 * The easy way. We hope the majority of the time we hit
 3204|       |		 * here :)
 3205|       |		 */
 3206|  25.0k|		m_last = m;
 3207|  25.0k|	} else {
 3208|       |		/* Hard way we must grow the mbuf chain */
 3209|  6.72k|		m_last = sctp_get_mbuf_for_msg(padlen, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  6.72k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		m_last = sctp_get_mbuf_for_msg(padlen, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  6.72k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3210|  6.72k|		if (m_last == NULL) {
  ------------------
  |  Branch (3210:7): [True: 0, False: 6.72k]
  ------------------
 3211|      0|			return (NULL);
 3212|      0|		}
 3213|  6.72k|		SCTP_BUF_LEN(m_last) = 0;
  ------------------
  |  |  801|  6.72k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  6.72k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3214|  6.72k|		SCTP_BUF_NEXT(m_last) = NULL;
  ------------------
  |  |  802|  6.72k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  6.72k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3215|  6.72k|		SCTP_BUF_NEXT(m) = m_last;
  ------------------
  |  |  802|  6.72k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  6.72k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3216|  6.72k|	}
 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|  8.63k|{
 3226|       |	/* find the last mbuf in chain and pad it */
 3227|  8.63k|	struct mbuf *m_at;
 3228|       |
 3229|  8.63k|	if (last_mbuf != NULL) {
  ------------------
  |  Branch (3229:6): [True: 5.32k, False: 3.31k]
  ------------------
 3230|  5.32k|		return (sctp_add_pad_tombuf(last_mbuf, padval));
 3231|  5.32k|	} else {
 3232|  3.45k|		for (m_at = m; m_at; m_at = SCTP_BUF_NEXT(m_at)) {
  ------------------
  |  |  802|    148|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    148|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (3232:18): [True: 3.45k, False: 0]
  ------------------
 3233|  3.45k|			if (SCTP_BUF_NEXT(m_at) == NULL) {
  ------------------
  |  |  802|  3.45k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  3.45k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (3233:8): [True: 3.31k, False: 148]
  ------------------
 3234|  3.31k|				return (sctp_add_pad_tombuf(m_at, padval));
 3235|  3.31k|			}
 3236|  3.45k|		}
 3237|  3.31k|	}
 3238|      0|	return (NULL);
 3239|  8.63k|}
sctp_ulp_notify:
 4257|   639k|{
 4258|   639k|	struct sctp_inpcb *inp;
 4259|   639k|	struct sctp_nets *net;
 4260|       |
 4261|   639k|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|   639k|	do {                         \
  |  |  113|   639k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 639k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   639k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 639k]
  |  |  ------------------
  ------------------
 4262|   639k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|   639k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   639k|	do {                         \
  |  |  |  |  113|   639k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 639k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   639k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 639k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4263|       |
 4264|   639k|	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|   639k|	if (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET) {
  ------------------
  |  |  464|   639k|#define SCTP_STATE_CLOSED_SOCKET	0x0100
  ------------------
  |  Branch (4272:6): [True: 0, False: 639k]
  ------------------
 4273|      0|		return;
 4274|      0|	}
 4275|   639k|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|   639k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|   639k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|   639k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (4275:6): [True: 31.0k, False: 608k]
  ------------------
 4276|   608k|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|   608k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|   608k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|   608k|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (4276:6): [True: 99.1k, False: 509k]
  ------------------
 4277|   130k|		if ((notification == SCTP_NOTIFY_INTERFACE_DOWN) ||
  ------------------
  |  |  705|   130k|#define SCTP_NOTIFY_INTERFACE_DOWN               3
  ------------------
  |  Branch (4277:7): [True: 0, False: 130k]
  ------------------
 4278|   130k|		    (notification == SCTP_NOTIFY_INTERFACE_UP) ||
  ------------------
  |  |  706|   130k|#define SCTP_NOTIFY_INTERFACE_UP                 4
  ------------------
  |  Branch (4278:7): [True: 0, False: 130k]
  ------------------
 4279|   130k|		    (notification == SCTP_NOTIFY_INTERFACE_CONFIRMED)) {
  ------------------
  |  |  718|   130k|#define SCTP_NOTIFY_INTERFACE_CONFIRMED         16
  ------------------
  |  Branch (4279:7): [True: 35, False: 130k]
  ------------------
 4280|       |			/* Don't report these in front states */
 4281|     35|			return;
 4282|     35|		}
 4283|   130k|	}
 4284|   639k|	if (notification != SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION) {
  ------------------
  |  |  717|   639k|#define SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION 15
  ------------------
  |  Branch (4284:6): [True: 638k, False: 885]
  ------------------
 4285|   638k|		SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|   638k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   638k|	do {                         \
  |  |  |  |  113|   638k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 638k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   638k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 638k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4286|   638k|	}
 4287|   639k|	SCTP_INP_READ_LOCK_ASSERT(inp);
  ------------------
  |  |  356|   639k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   639k|	do {                         \
  |  |  |  |  113|   639k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 639k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   639k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 639k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4288|       |
 4289|   639k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
  ------------------
  |  |  546|   639k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (4289:6): [True: 0, False: 639k]
  ------------------
 4290|   639k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|   639k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (4290:6): [True: 0, False: 639k]
  ------------------
 4291|   639k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_CANT_READ)) {
  ------------------
  |  |  548|   639k|#define SCTP_PCB_FLAGS_SOCKET_CANT_READ	0x40000000
  ------------------
  |  Branch (4291:6): [True: 0, False: 639k]
  ------------------
 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|   639k|	switch (notification) {
 4297|  5.64k|	case SCTP_NOTIFY_ASSOC_UP:
  ------------------
  |  |  703|  5.64k|#define SCTP_NOTIFY_ASSOC_UP                     1
  ------------------
  |  Branch (4297:2): [True: 5.64k, False: 633k]
  ------------------
 4298|  5.64k|		if (stcb->asoc.assoc_up_sent == 0) {
  ------------------
  |  Branch (4298:7): [True: 5.64k, False: 0]
  ------------------
 4299|  5.64k|			sctp_notify_assoc_change(SCTP_COMM_UP, stcb, error, NULL, false, false, so_locked);
  ------------------
  |  |  327|  5.64k|#define SCTP_COMM_UP            0x0001
  ------------------
 4300|  5.64k|			stcb->asoc.assoc_up_sent = 1;
 4301|  5.64k|		}
 4302|  5.64k|		if (stcb->asoc.adaptation_needed && (stcb->asoc.adaptation_sent == 0)) {
  ------------------
  |  Branch (4302:7): [True: 5.64k, False: 0]
  |  Branch (4302:39): [True: 5.64k, False: 0]
  ------------------
 4303|  5.64k|			sctp_notify_adaptation_layer(stcb, so_locked);
 4304|  5.64k|		}
 4305|  5.64k|		if (stcb->asoc.auth_supported == 0) {
  ------------------
  |  Branch (4305:7): [True: 0, False: 5.64k]
  ------------------
 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.64k|		break;
 4309|      1|	case SCTP_NOTIFY_ASSOC_DOWN:
  ------------------
  |  |  704|      1|#define SCTP_NOTIFY_ASSOC_DOWN                   2
  ------------------
  |  Branch (4309:2): [True: 1, False: 639k]
  ------------------
 4310|      1|		sctp_notify_assoc_change(SCTP_SHUTDOWN_COMP, stcb, error, NULL, false, false, so_locked);
  ------------------
  |  |  330|      1|#define SCTP_SHUTDOWN_COMP      0x0004
  ------------------
 4311|      1|#if defined(__Userspace__)
 4312|      1|		if (inp->recv_callback) {
  ------------------
  |  Branch (4312:7): [True: 0, False: 1]
  ------------------
 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|      1|#endif
 4327|      1|		break;
 4328|      1|	case SCTP_NOTIFY_INTERFACE_DOWN:
  ------------------
  |  |  705|      0|#define SCTP_NOTIFY_INTERFACE_DOWN               3
  ------------------
  |  Branch (4328:2): [True: 0, False: 639k]
  ------------------
 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: 639k]
  ------------------
 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: 639k]
  ------------------
 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|    535|	case SCTP_NOTIFY_SPECIAL_SP_FAIL:
  ------------------
  |  |  709|    535|#define SCTP_NOTIFY_SPECIAL_SP_FAIL              7
  ------------------
  |  Branch (4343:2): [True: 535, False: 639k]
  ------------------
 4344|    535|		sctp_notify_send_failed2(stcb, error,
 4345|    535|		                         (struct sctp_stream_queue_pending *)data, so_locked);
 4346|    535|		break;
 4347|    631|	case SCTP_NOTIFY_SENT_DG_FAIL:
  ------------------
  |  |  707|    631|#define SCTP_NOTIFY_SENT_DG_FAIL                 5
  ------------------
  |  Branch (4347:2): [True: 631, False: 638k]
  ------------------
 4348|    631|		sctp_notify_send_failed(stcb, 1, error,
 4349|    631|		    (struct sctp_tmit_chunk *)data, so_locked);
 4350|    631|		break;
 4351|     27|	case SCTP_NOTIFY_UNSENT_DG_FAIL:
  ------------------
  |  |  708|     27|#define SCTP_NOTIFY_UNSENT_DG_FAIL               6
  ------------------
  |  Branch (4351:2): [True: 27, False: 639k]
  ------------------
 4352|     27|		sctp_notify_send_failed(stcb, 0, error,
 4353|     27|		                        (struct sctp_tmit_chunk *)data, so_locked);
 4354|     27|		break;
 4355|    885|	case SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION:
  ------------------
  |  |  717|    885|#define SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION 15
  ------------------
  |  Branch (4355:2): [True: 885, False: 638k]
  ------------------
 4356|    885|		sctp_notify_partial_delivery_indication(stcb, error,
 4357|    885|		                                        (struct sctp_queued_to_read *)data,
 4358|    885|		                                        so_locked);
 4359|    885|		break;
 4360|  1.65k|	case SCTP_NOTIFY_ASSOC_LOC_ABORTED:
  ------------------
  |  |  710|  1.65k|#define SCTP_NOTIFY_ASSOC_LOC_ABORTED            8
  ------------------
  |  Branch (4360:2): [True: 1.65k, False: 637k]
  ------------------
 4361|  1.65k|		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|  1.65k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  1.65k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|  1.65k|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (4361:7): [True: 626, False: 1.02k]
  ------------------
 4362|  1.02k|		    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|  1.02k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  1.02k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|  1.02k|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (4362:7): [True: 30, False: 997]
  ------------------
 4363|    656|			sctp_notify_assoc_change(SCTP_CANT_STR_ASSOC, stcb, error, data, false, false, so_locked);
  ------------------
  |  |  331|    656|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
 4364|    997|		} else {
 4365|    997|			sctp_notify_assoc_change(SCTP_COMM_LOST, stcb, error, data, false, false, so_locked);
  ------------------
  |  |  328|    997|#define SCTP_COMM_LOST          0x0002
  ------------------
 4366|    997|		}
 4367|  1.65k|		break;
 4368|     93|	case SCTP_NOTIFY_ASSOC_REM_ABORTED:
  ------------------
  |  |  711|     93|#define SCTP_NOTIFY_ASSOC_REM_ABORTED            9
  ------------------
  |  Branch (4368:2): [True: 93, False: 639k]
  ------------------
 4369|     93|		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  472|     93|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|     93|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) ||
  ------------------
  |  |  457|     93|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (4369:7): [True: 55, False: 38]
  ------------------
 4370|     66|		    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  472|     38|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|     38|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED)) {
  ------------------
  |  |  458|     38|#define SCTP_STATE_COOKIE_ECHOED	0x0004
  ------------------
  |  Branch (4370:7): [True: 11, False: 27]
  ------------------
 4371|     66|			sctp_notify_assoc_change(SCTP_CANT_STR_ASSOC, stcb, error, data, true, false, so_locked);
  ------------------
  |  |  331|     66|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
 4372|     66|		} else {
 4373|     27|			sctp_notify_assoc_change(SCTP_COMM_LOST, stcb, error, data, true, false, so_locked);
  ------------------
  |  |  328|     27|#define SCTP_COMM_LOST          0x0002
  ------------------
 4374|     27|		}
 4375|     93|		break;
 4376|      0|	case SCTP_NOTIFY_ASSOC_TIMEDOUT:
  ------------------
  |  |  732|      0|#define SCTP_NOTIFY_ASSOC_TIMEDOUT              30
  ------------------
  |  Branch (4376:2): [True: 0, False: 639k]
  ------------------
 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: 639k]
  ------------------
 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|     64|	case SCTP_NOTIFY_STR_RESET_SEND:
  ------------------
  |  |  720|     64|#define SCTP_NOTIFY_STR_RESET_SEND              18
  ------------------
  |  Branch (4390:2): [True: 64, False: 639k]
  ------------------
 4391|     64|		sctp_notify_stream_reset(stcb, error, ((uint16_t *) data), SCTP_STREAM_RESET_OUTGOING_SSN, so_locked);
  ------------------
  |  |  492|     64|#define SCTP_STREAM_RESET_OUTGOING_SSN  0x0002
  ------------------
 4392|     64|		break;
 4393|    492|	case SCTP_NOTIFY_STR_RESET_RECV:
  ------------------
  |  |  719|    492|#define SCTP_NOTIFY_STR_RESET_RECV              17
  ------------------
  |  Branch (4393:2): [True: 492, False: 639k]
  ------------------
 4394|    492|		sctp_notify_stream_reset(stcb, error, ((uint16_t *) data), SCTP_STREAM_RESET_INCOMING, so_locked);
  ------------------
  |  |  185|    492|#define SCTP_STREAM_RESET_INCOMING	0x00000001
  ------------------
 4395|    492|		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: 639k]
  ------------------
 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: 639k]
  ------------------
 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: 639k]
  ------------------
 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: 639k]
  ------------------
 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: 639k]
  ------------------
 4413|     57|		sctp_notify_stream_reset_add(stcb, error, so_locked);
 4414|     57|		break;
 4415|     64|	case SCTP_NOTIFY_STR_RESET_TSN:
  ------------------
  |  |  726|     64|#define SCTP_NOTIFY_STR_RESET_TSN               24
  ------------------
  |  Branch (4415:2): [True: 64, False: 639k]
  ------------------
 4416|     64|		sctp_notify_stream_reset_tsn(stcb, error, so_locked);
 4417|     64|		break;
 4418|  42.4k|	case SCTP_NOTIFY_ASCONF_ADD_IP:
  ------------------
  |  |  714|  42.4k|#define SCTP_NOTIFY_ASCONF_ADD_IP               12
  ------------------
  |  Branch (4418:2): [True: 42.4k, False: 597k]
  ------------------
 4419|  42.4k|		sctp_notify_peer_addr_change(stcb, SCTP_ADDR_ADDED, data,
  ------------------
  |  |  358|  42.4k|#define SCTP_ADDR_ADDED		0x0004
  ------------------
 4420|  42.4k|		                             error, so_locked);
 4421|  42.4k|		break;
 4422|  44.2k|	case SCTP_NOTIFY_ASCONF_DELETE_IP:
  ------------------
  |  |  715|  44.2k|#define SCTP_NOTIFY_ASCONF_DELETE_IP            13
  ------------------
  |  Branch (4422:2): [True: 44.2k, False: 595k]
  ------------------
 4423|  44.2k|		sctp_notify_peer_addr_change(stcb, SCTP_ADDR_REMOVED, data,
  ------------------
  |  |  357|  44.2k|#define SCTP_ADDR_REMOVED	0x0003
  ------------------
 4424|  44.2k|		                             error, so_locked);
 4425|  44.2k|		break;
 4426|  1.68k|	case SCTP_NOTIFY_ASCONF_SET_PRIMARY:
  ------------------
  |  |  716|  1.68k|#define SCTP_NOTIFY_ASCONF_SET_PRIMARY          14
  ------------------
  |  Branch (4426:2): [True: 1.68k, False: 637k]
  ------------------
 4427|  1.68k|		sctp_notify_peer_addr_change(stcb, SCTP_ADDR_MADE_PRIM, data,
  ------------------
  |  |  359|  1.68k|#define SCTP_ADDR_MADE_PRIM	0x0005
  ------------------
 4428|  1.68k|		                             error, so_locked);
 4429|  1.68k|		break;
 4430|    110|	case SCTP_NOTIFY_PEER_SHUTDOWN:
  ------------------
  |  |  713|    110|#define SCTP_NOTIFY_PEER_SHUTDOWN               11
  ------------------
  |  Branch (4430:2): [True: 110, False: 639k]
  ------------------
 4431|    110|		sctp_notify_shutdown_event(stcb, so_locked);
 4432|    110|		break;
 4433|      0|	case SCTP_NOTIFY_AUTH_NEW_KEY:
  ------------------
  |  |  727|      0|#define SCTP_NOTIFY_AUTH_NEW_KEY                25
  ------------------
  |  Branch (4433:2): [True: 0, False: 639k]
  ------------------
 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: 639k]
  ------------------
 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: 639k]
  ------------------
 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|    327|	case SCTP_NOTIFY_SENDER_DRY:
  ------------------
  |  |  730|    327|#define SCTP_NOTIFY_SENDER_DRY                  28
  ------------------
  |  Branch (4445:2): [True: 327, False: 639k]
  ------------------
 4446|    327|		sctp_notify_sender_dry_event(stcb, so_locked);
 4447|    327|		break;
 4448|   540k|	case SCTP_NOTIFY_REMOTE_ERROR:
  ------------------
  |  |  731|   540k|#define SCTP_NOTIFY_REMOTE_ERROR                29
  ------------------
  |  Branch (4448:2): [True: 540k, False: 98.9k]
  ------------------
 4449|   540k|		sctp_notify_remote_error(stcb, error, data, so_locked);
 4450|   540k|		break;
 4451|      0|	default:
  ------------------
  |  Branch (4451:2): [True: 0, False: 639k]
  ------------------
 4452|      0|		SCTPDBG(SCTP_DEBUG_UTIL1, "%s: unknown notification %xh (%u)\n",
 4453|      0|		        __func__, notification, notification);
 4454|      0|		break;
 4455|   639k|	}
 4456|   639k|	if (notification != SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION) {
  ------------------
  |  |  717|   639k|#define SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION 15
  ------------------
  |  Branch (4456:6): [True: 638k, False: 885]
  ------------------
 4457|   638k|		SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|   638k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   638k|	do {                         \
  |  |  |  |  113|   638k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 638k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   638k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 638k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4458|   638k|	}
 4459|   639k|}
sctp_report_all_outbound:
 4463|  1.74k|{
 4464|  1.74k|	struct sctp_association *asoc;
 4465|  1.74k|	struct sctp_stream_out *outs;
 4466|  1.74k|	struct sctp_tmit_chunk *chk, *nchk;
 4467|  1.74k|	struct sctp_stream_queue_pending *sp, *nsp;
 4468|  1.74k|	int i;
 4469|       |
 4470|  1.74k|	if (stcb == NULL) {
  ------------------
  |  Branch (4470:6): [True: 0, False: 1.74k]
  ------------------
 4471|      0|		return;
 4472|      0|	}
 4473|  1.74k|	asoc = &stcb->asoc;
 4474|  1.74k|	if (asoc->state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|  1.74k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (4474:6): [True: 0, False: 1.74k]
  ------------------
 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.74k|	if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
  ------------------
  |  |  546|  1.74k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (4485:6): [True: 0, False: 1.74k]
  ------------------
 4486|  1.74k|	    (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|  1.74k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (4486:6): [True: 0, False: 1.74k]
  ------------------
 4487|  1.74k|	    (asoc->state & SCTP_STATE_CLOSED_SOCKET)) {
  ------------------
  |  |  464|  1.74k|#define SCTP_STATE_CLOSED_SOCKET	0x0100
  ------------------
  |  Branch (4487:6): [True: 0, False: 1.74k]
  ------------------
 4488|      0|		return;
 4489|      0|	}
 4490|       |	/* now through all the gunk freeing chunks */
 4491|       |	/* sent queue SHOULD be empty */
 4492|  1.74k|	TAILQ_FOREACH_SAFE(chk, &asoc->sent_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  1.74k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  2.37k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 631, False: 1.74k]
  |  |  |  Branch (1130:24): [True: 631, False: 0]
  |  |  ------------------
  |  | 1131|  1.74k|              (var) = (tvar))
  ------------------
 4493|    631|		TAILQ_REMOVE(&asoc->sent_queue, chk, sctp_next);
  ------------------
  |  Branch (4493:3): [True: 102, False: 529]
  |  Branch (4493:3): [Folded, False: 631]
  ------------------
 4494|    631|		asoc->sent_queue_cnt--;
 4495|    631|		if (chk->sent != SCTP_DATAGRAM_NR_ACKED) {
  ------------------
  |  |  358|    631|#define SCTP_DATAGRAM_NR_ACKED		40010
  ------------------
  |  Branch (4495:7): [True: 631, False: 0]
  ------------------
 4496|    631|			if (asoc->strmout[chk->rec.data.sid].chunks_on_queues > 0) {
  ------------------
  |  Branch (4496:8): [True: 631, False: 0]
  ------------------
 4497|    631|				asoc->strmout[chk->rec.data.sid].chunks_on_queues--;
 4498|    631|#ifdef INVARIANTS
 4499|    631|			} 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|    631|		}
 4504|    631|		if (chk->data != NULL) {
  ------------------
  |  Branch (4504:7): [True: 631, False: 0]
  ------------------
 4505|    631|			sctp_free_bufspace(stcb, asoc, chk, 1);
 4506|    631|			sctp_ulp_notify(SCTP_NOTIFY_SENT_DG_FAIL, stcb,
  ------------------
  |  |  707|    631|#define SCTP_NOTIFY_SENT_DG_FAIL                 5
  ------------------
 4507|    631|			                error, chk, so_locked);
 4508|    631|			if (chk->data) {
  ------------------
  |  Branch (4508:8): [True: 0, False: 631]
  ------------------
 4509|      0|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4510|      0|				chk->data = NULL;
 4511|      0|			}
 4512|    631|		}
 4513|    631|		sctp_free_a_chunk(stcb, chk, so_locked);
  ------------------
  |  |  143|    631|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|    631|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 631]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|    631|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 631, False: 0]
  |  |  ------------------
  |  |  149|    631|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|    631|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|    631|	do {                         \
  |  |  |  |  |  |  113|    631|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 631]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|    631|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 631]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|    631|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 631, False: 0]
  |  |  ------------------
  |  |  151|    631|			sctp_free_remote_addr((_chk)->whoTo); \
  |  |  ------------------
  |  |  |  |  228|    631|#define sctp_free_remote_addr(__net) { \
  |  |  |  |  229|    631|	if ((__net)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (229:6): [True: 631, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  230|    631|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|    631|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|    631|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (115:49): [True: 0, False: 631]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  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|    631|	} \
  |  |  |  |  245|    631|}
  |  |  ------------------
  |  |  152|    631|			(_chk)->whoTo = NULL; \
  |  |  153|    631|		} \
  |  |  154|    631|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|    631|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 2, False: 629]
  |  |  ------------------
  |  |  155|    631|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|    629|#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|    629|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 629]
  |  |  ------------------
  |  |  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|    629|		} else { \
  |  |  159|    629|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|    629|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|    629|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|    629|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|    629|		} \
  |  |  163|    631|	} 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|    631|}
  ------------------
  |  Branch (4513:3): [Folded, False: 629]
  ------------------
 4514|       |		/*sa_ignore FREED_MEMORY*/
 4515|    631|	}
 4516|       |	/* pending send queue SHOULD be empty */
 4517|  1.74k|	TAILQ_FOREACH_SAFE(chk, &asoc->send_queue, sctp_next, nchk) {
  ------------------
  |  | 1129|  1.74k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|  1.77k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 27, False: 1.74k]
  |  |  |  Branch (1130:24): [True: 27, False: 0]
  |  |  ------------------
  |  | 1131|  1.74k|              (var) = (tvar))
  ------------------
 4518|     27|		TAILQ_REMOVE(&asoc->send_queue, chk, sctp_next);
  ------------------
  |  Branch (4518:3): [True: 0, False: 27]
  |  Branch (4518:3): [Folded, False: 27]
  ------------------
 4519|     27|		asoc->send_queue_cnt--;
 4520|     27|		if (asoc->strmout[chk->rec.data.sid].chunks_on_queues > 0) {
  ------------------
  |  Branch (4520:7): [True: 27, False: 0]
  ------------------
 4521|     27|			asoc->strmout[chk->rec.data.sid].chunks_on_queues--;
 4522|     27|#ifdef INVARIANTS
 4523|     27|		} 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|     27|		if (chk->data != NULL) {
  ------------------
  |  Branch (4527:7): [True: 27, False: 0]
  ------------------
 4528|     27|			sctp_free_bufspace(stcb, asoc, chk, 1);
 4529|     27|			sctp_ulp_notify(SCTP_NOTIFY_UNSENT_DG_FAIL, stcb,
  ------------------
  |  |  708|     27|#define SCTP_NOTIFY_UNSENT_DG_FAIL               6
  ------------------
 4530|     27|			                error, chk, so_locked);
 4531|     27|			if (chk->data) {
  ------------------
  |  Branch (4531:8): [True: 0, False: 27]
  ------------------
 4532|      0|				sctp_m_freem(chk->data);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4533|      0|				chk->data = NULL;
 4534|      0|			}
 4535|     27|		}
 4536|     27|		sctp_free_a_chunk(stcb, chk, so_locked);
  ------------------
  |  |  143|     27|#define sctp_free_a_chunk(_stcb, _chk, _so_locked) { \
  |  |  144|     27|	if ((_chk)->holds_key_ref) {\
  |  |  ------------------
  |  |  |  Branch (144:6): [True: 0, False: 27]
  |  |  ------------------
  |  |  145|      0|		sctp_auth_key_release((_stcb), (_chk)->auth_keyid, _so_locked); \
  |  |  146|      0|		(_chk)->holds_key_ref = 0; \
  |  |  147|      0|	} \
  |  |  148|     27|	if (_stcb) { \
  |  |  ------------------
  |  |  |  Branch (148:6): [True: 27, False: 0]
  |  |  ------------------
  |  |  149|     27|		SCTP_TCB_LOCK_ASSERT((_stcb)); \
  |  |  ------------------
  |  |  |  |  484|     27|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|     27|	do {                         \
  |  |  |  |  |  |  113|     27|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 27]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|     27|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 27]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  150|     27|		if ((_chk)->whoTo) { \
  |  |  ------------------
  |  |  |  Branch (150:7): [True: 0, False: 27]
  |  |  ------------------
  |  |  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|     27|		if (((_stcb)->asoc.free_chunk_cnt > SCTP_BASE_SYSCTL(sctp_asoc_free_resc_limit)) || \
  |  |  ------------------
  |  |  |  |  590|     27|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (154:7): [True: 1, False: 26]
  |  |  ------------------
  |  |  155|     27|		    (SCTP_BASE_INFO(ipi_free_chunks) > SCTP_BASE_SYSCTL(sctp_system_free_resc_limit))) { \
  |  |  ------------------
  |  |  |  |  587|     26|#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|     26|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  |  |  ------------------
  |  |  |  Branch (155:7): [True: 0, False: 26]
  |  |  ------------------
  |  |  156|      1|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), (_chk)); \
  |  |  ------------------
  |  |  |  |  707|      1|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|      1|	free(element);  \
  |  |  |  |  709|      1|}
  |  |  ------------------
  |  |  157|      1|			SCTP_DECR_CHK_COUNT(); \
  |  |  ------------------
  |  |  |  |  679|      1|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_chunk), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|      1|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  158|     26|		} else { \
  |  |  159|     26|			TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_chunks, (_chk), sctp_next); \
  |  |  160|     26|			(_stcb)->asoc.free_chunk_cnt++; \
  |  |  161|     26|			atomic_add_int(&SCTP_BASE_INFO(ipi_free_chunks), 1); \
  |  |  ------------------
  |  |  |  |   94|     26|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  162|     26|		} \
  |  |  163|     27|	} 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|     27|}
  ------------------
  |  Branch (4536:3): [Folded, False: 26]
  ------------------
 4537|       |		/*sa_ignore FREED_MEMORY*/
 4538|     27|	}
 4539|   424k|	for (i = 0; i < asoc->streamoutcnt; i++) {
  ------------------
  |  Branch (4539:14): [True: 422k, False: 1.74k]
  ------------------
 4540|       |		/* For each stream */
 4541|   422k|		outs = &asoc->strmout[i];
 4542|       |		/* clean up any sends there */
 4543|   422k|		TAILQ_FOREACH_SAFE(sp, &outs->outqueue, next, nsp) {
  ------------------
  |  | 1129|   422k|         for ((var) = ((head)->tqh_first);                     \
  |  | 1130|   423k|              (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
  |  |  ------------------
  |  |  |  Branch (1130:15): [True: 535, False: 422k]
  |  |  |  Branch (1130:24): [True: 535, False: 0]
  |  |  ------------------
  |  | 1131|   422k|              (var) = (tvar))
  ------------------
 4544|    535|			atomic_subtract_int(&asoc->stream_queue_cnt, 1);
  ------------------
  |  |   97|    535|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 4545|    535|			TAILQ_REMOVE(&outs->outqueue, sp, next);
  ------------------
  |  Branch (4545:4): [True: 0, False: 535]
  |  Branch (4545:4): [Folded, False: 535]
  ------------------
 4546|    535|			stcb->asoc.ss_functions.sctp_ss_remove_from_stream(stcb, asoc, outs, sp);
 4547|    535|			sctp_free_spbufspace(stcb, asoc, sp);
  ------------------
  |  |  270|    535|#define sctp_free_spbufspace(stcb, asoc, sp)  \
  |  |  271|    535|do { \
  |  |  272|    535|	if (sp->data != NULL) { \
  |  |  ------------------
  |  |  |  Branch (272:6): [True: 535, False: 0]
  |  |  ------------------
  |  |  273|    535|		if ((asoc)->total_output_queue_size >= sp->length) { \
  |  |  ------------------
  |  |  |  Branch (273:7): [True: 535, False: 0]
  |  |  ------------------
  |  |  274|    535|			atomic_subtract_int(&(asoc)->total_output_queue_size, sp->length); \
  |  |  ------------------
  |  |  |  |   97|    535|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  |  |  275|    535|		} else { \
  |  |  276|      0|			(asoc)->total_output_queue_size = 0; \
  |  |  277|      0|		} \
  |  |  278|    535|		if (stcb->sctp_socket && ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) || \
  |  |  ------------------
  |  |  |  |  529|    535|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  |  |  ------------------
  |  |  |  Branch (278:7): [True: 535, False: 0]
  |  |  |  Branch (278:29): [True: 535, False: 0]
  |  |  ------------------
  |  |  279|    535|		    (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|    535|			SCTP_SB_DECR(&stcb->sctp_socket->so_snd, sp->length); \
  |  |  ------------------
  |  |  |  |  973|    535|#define SCTP_SB_DECR(sb, decr)					\
  |  |  |  |  974|    535|{								\
  |  |  |  |  975|    535|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_cc, (int)(decr));	\
  |  |  |  |  ------------------
  |  |  |  |  |  |  117|    535|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  |  |  118|    535|{ \
  |  |  |  |  |  |  119|    535|	int32_t oldval; \
  |  |  |  |  |  |  120|    535|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|    535|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|    535|	if (oldval < val) { \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (121:6): [True: 0, False: 535]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  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|    535|}
  |  |  |  |  ------------------
  |  |  |  |  976|    535|}
  |  |  ------------------
  |  |  281|    535|		} \
  |  |  282|    535|	} \
  |  |  283|    535|} while (0)
  |  |  ------------------
  |  |  |  Branch (283:10): [Folded, False: 535]
  |  |  ------------------
  ------------------
 4548|    535|			if (sp->data) {
  ------------------
  |  Branch (4548:8): [True: 535, False: 0]
  ------------------
 4549|    535|				sctp_ulp_notify(SCTP_NOTIFY_SPECIAL_SP_FAIL, stcb,
  ------------------
  |  |  709|    535|#define SCTP_NOTIFY_SPECIAL_SP_FAIL              7
  ------------------
 4550|    535|						error, (void *)sp, so_locked);
 4551|    535|				if (sp->data) {
  ------------------
  |  Branch (4551:9): [True: 0, False: 535]
  ------------------
 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|    535|			}
 4558|    535|			if (sp->net) {
  ------------------
  |  Branch (4558:8): [True: 0, False: 535]
  ------------------
 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|    535|			sctp_free_a_strmoq(stcb, sp, so_locked);
  ------------------
  |  |  125|    535|#define sctp_free_a_strmoq(_stcb, _strmoq, _so_locked) { \
  |  |  126|    535|	if ((_strmoq)->holds_key_ref) { \
  |  |  ------------------
  |  |  |  Branch (126:6): [True: 0, False: 535]
  |  |  ------------------
  |  |  127|      0|		sctp_auth_key_release(stcb, sp->auth_keyid, _so_locked); \
  |  |  128|      0|		(_strmoq)->holds_key_ref = 0; \
  |  |  129|      0|	} \
  |  |  130|    535|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_strmoq), (_strmoq)); \
  |  |  ------------------
  |  |  |  |  707|    535|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|    535|	free(element);  \
  |  |  |  |  709|    535|}
  |  |  ------------------
  |  |  131|    535|	SCTP_DECR_STRMOQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  691|    535|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_strmoq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|    535|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  132|    535|}
  ------------------
 4564|       |			/*sa_ignore FREED_MEMORY*/
 4565|    535|		}
 4566|   422k|	}
 4567|  1.74k|}
sctp_abort_notification:
 4573|  1.74k|{
 4574|  1.74k|	if (stcb == NULL) {
  ------------------
  |  Branch (4574:6): [True: 0, False: 1.74k]
  ------------------
 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.74k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  1.74k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4585|       |
 4586|  1.74k|	if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
  ------------------
  |  |  540|  1.74k|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (4586:6): [True: 0, False: 1.74k]
  ------------------
 4587|  1.74k|	    ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) &&
  ------------------
  |  |  529|  1.74k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (4587:7): [True: 1.74k, False: 0]
  ------------------
 4588|  1.74k|	     (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_CONNECTED))) {
  ------------------
  |  |  539|  1.74k|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (4588:7): [True: 1.74k, False: 0]
  ------------------
 4589|  1.74k|		sctp_pcb_add_flags(stcb->sctp_ep, SCTP_PCB_FLAGS_WAS_ABORTED);
  ------------------
  |  |  536|  1.74k|#define SCTP_PCB_FLAGS_WAS_ABORTED      0x00100000
  ------------------
 4590|  1.74k|	}
 4591|  1.74k|	if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
  ------------------
  |  |  546|  1.74k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (4591:6): [True: 0, False: 1.74k]
  ------------------
 4592|  1.74k|	    (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
  ------------------
  |  |  547|  1.74k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (4592:6): [True: 0, False: 1.74k]
  ------------------
 4593|  1.74k|	    (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET)) {
  ------------------
  |  |  464|  1.74k|#define SCTP_STATE_CLOSED_SOCKET	0x0100
  ------------------
  |  Branch (4593:6): [True: 0, False: 1.74k]
  ------------------
 4594|      0|		return;
 4595|      0|	}
 4596|  1.74k|	SCTP_ADD_SUBSTATE(stcb, SCTP_STATE_WAS_ABORTED);
  ------------------
  |  |  478|  1.74k|	sctp_add_substate(_stcb, _substate)
  ------------------
 4597|       |	/* Tell them we lost the asoc */
 4598|  1.74k|	sctp_report_all_outbound(stcb, error, so_locked);
 4599|  1.74k|	if (from_peer) {
  ------------------
  |  Branch (4599:6): [True: 93, False: 1.65k]
  ------------------
 4600|     93|		sctp_ulp_notify(SCTP_NOTIFY_ASSOC_REM_ABORTED, stcb, error, abort, so_locked);
  ------------------
  |  |  711|     93|#define SCTP_NOTIFY_ASSOC_REM_ABORTED            9
  ------------------
 4601|  1.65k|	} else {
 4602|  1.65k|		if (timeout) {
  ------------------
  |  Branch (4602:7): [True: 0, False: 1.65k]
  ------------------
 4603|      0|			sctp_ulp_notify(SCTP_NOTIFY_ASSOC_TIMEDOUT, stcb, error, abort, so_locked);
  ------------------
  |  |  732|      0|#define SCTP_NOTIFY_ASSOC_TIMEDOUT              30
  ------------------
 4604|  1.65k|		} else {
 4605|  1.65k|			sctp_ulp_notify(SCTP_NOTIFY_ASSOC_LOC_ABORTED, stcb, error, abort, so_locked);
  ------------------
  |  |  710|  1.65k|#define SCTP_NOTIFY_ASSOC_LOC_ABORTED            8
  ------------------
 4606|  1.65k|		}
 4607|  1.65k|	}
 4608|  1.74k|}
sctp_abort_association:
 4619|    519|{
 4620|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4621|       |	struct socket *so;
 4622|       |#endif
 4623|    519|	struct sctp_gen_error_cause* cause;
 4624|    519|	uint32_t vtag;
 4625|    519|	uint16_t cause_code;
 4626|       |
 4627|    519|	if (stcb != NULL) {
  ------------------
  |  Branch (4627:6): [True: 519, False: 0]
  ------------------
 4628|    519|		vtag = stcb->asoc.peer_vtag;
 4629|    519|		vrf_id = stcb->asoc.vrf_id;
 4630|    519|		if (op_err != NULL) {
  ------------------
  |  Branch (4630:7): [True: 297, False: 222]
  ------------------
 4631|       |			/* Read the cause code from the error cause. */
 4632|    297|			cause = mtod(op_err, struct sctp_gen_error_cause *);
  ------------------
  |  |   96|    297|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    297|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4633|    297|			cause_code = ntohs(cause->code);
 4634|    297|		} else {
 4635|    222|			cause_code = 0;
 4636|    222|		}
 4637|    519|	} else {
 4638|      0|		vtag = 0;
 4639|      0|	}
 4640|    519|	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|    519|	                vrf_id, port);
 4645|    519|	if (stcb != NULL) {
  ------------------
  |  Branch (4645:6): [True: 519, False: 0]
  ------------------
 4646|       |		/* We have a TCB to abort, send notification too */
 4647|    519|		sctp_abort_notification(stcb, false, false, cause_code, NULL, SCTP_SO_NOT_LOCKED);
  ------------------
  |  |  960|    519|#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|    519|		SCTP_STAT_INCR_COUNTER32(sctps_aborted);
  ------------------
  |  | 1127|    519|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|    519|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    519|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    519|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4658|    519|		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|    519|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    519|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|    519|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (4658:7): [True: 0, False: 519]
  ------------------
 4659|    519|		    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|    519|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    519|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              		    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|    519|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (4659:7): [True: 0, False: 519]
  ------------------
 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|    519|		(void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|    519|#define SCTP_NORMAL_PROC      0
  ------------------
 4663|    519|		                      SCTP_FROM_SCTPUTIL + SCTP_LOC_4);
  ------------------
  |  |  760|    519|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                      SCTP_FROM_SCTPUTIL + SCTP_LOC_4);
  ------------------
  |  |  772|    519|#define SCTP_LOC_4  0x00000004
  ------------------
 4664|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4665|       |		SCTP_SOCKET_UNLOCK(so, 1);
 4666|       |#endif
 4667|    519|	}
 4668|    519|}
sctp_abort_an_association:
 4734|  1.13k|{
 4735|       |#if defined(__APPLE__) && !defined(__Userspace__)
 4736|       |	struct socket *so;
 4737|       |#endif
 4738|  1.13k|	struct sctp_gen_error_cause* cause;
 4739|  1.13k|	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.13k|	if (stcb == NULL) {
  ------------------
  |  Branch (4751:6): [True: 0, False: 1.13k]
  ------------------
 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.13k|	if (op_err != NULL) {
  ------------------
  |  Branch (4771:6): [True: 1.13k, False: 0]
  ------------------
 4772|       |		/* Read the cause code from the error cause. */
 4773|  1.13k|		cause = mtod(op_err, struct sctp_gen_error_cause *);
  ------------------
  |  |   96|  1.13k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  1.13k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4774|  1.13k|		cause_code = ntohs(cause->code);
 4775|  1.13k|	} else {
 4776|      0|		cause_code = 0;
 4777|      0|	}
 4778|       |	/* notify the peer */
 4779|  1.13k|	sctp_send_abort_tcb(stcb, op_err, so_locked);
 4780|  1.13k|	SCTP_STAT_INCR_COUNTER32(sctps_aborted);
  ------------------
  |  | 1127|  1.13k|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  1.13k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  1.13k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  1.13k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4781|  1.13k|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  472|  1.13k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  1.13k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
  ------------------
  |  |  459|  1.13k|#define SCTP_STATE_OPEN			0x0008
  ------------------
  |  Branch (4781:6): [True: 987, False: 147]
  ------------------
 4782|    992|	    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  472|    147|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|    147|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	    (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) {
  ------------------
  |  |  461|    147|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (4782:6): [True: 5, False: 142]
  ------------------
 4783|    992|		SCTP_STAT_DECR_GAUGE32(sctps_currestab);
  ------------------
  |  | 1132|    992|#define SCTP_STAT_DECR_GAUGE32(_x) SCTP_STAT_DECR(_x)
  |  |  ------------------
  |  |  |  | 1113|    992|#define SCTP_STAT_DECR(_x) SCTP_STAT_DECR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1124|    992|#define SCTP_STAT_DECR_BY(_x,_d) atomic_subtract_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   97|    992|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4784|    992|	}
 4785|       |	/* notify the ulp */
 4786|  1.13k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) == 0) {
  ------------------
  |  |  546|  1.13k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (4786:6): [True: 1.13k, False: 0]
  ------------------
 4787|  1.13k|		sctp_abort_notification(stcb, false, timedout, cause_code, NULL, so_locked);
 4788|  1.13k|	}
 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.13k|	(void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC,
  ------------------
  |  |  808|  1.13k|#define SCTP_NORMAL_PROC      0
  ------------------
 4803|  1.13k|	                      SCTP_FROM_SCTPUTIL + SCTP_LOC_5);
  ------------------
  |  |  760|  1.13k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              	                      SCTP_FROM_SCTPUTIL + SCTP_LOC_5);
  ------------------
  |  |  773|  1.13k|#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.13k|}
sctp_handle_ootb:
 4820|    338|{
 4821|    338|	struct sctp_chunkhdr *ch, chunk_buf;
 4822|    338|	unsigned int chk_length;
 4823|    338|	int contains_init_chunk;
 4824|       |
 4825|    338|	SCTP_STAT_INCR_COUNTER32(sctps_outoftheblue);
  ------------------
  |  | 1127|    338|#define SCTP_STAT_INCR_COUNTER32(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|    338|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|    338|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|    338|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4826|       |	/* Generate a TO address for future reference */
 4827|    338|	if (inp && (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE)) {
  ------------------
  |  |  546|    338|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (4827:6): [True: 338, False: 0]
  |  Branch (4827:13): [True: 0, False: 338]
  ------------------
 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|    338|	contains_init_chunk = 0;
 4840|    338|	ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, offset,
 4841|    338|	    sizeof(*ch), (uint8_t *) & chunk_buf);
 4842|  36.4k|	while (ch != NULL) {
  ------------------
  |  Branch (4842:9): [True: 36.1k, False: 270]
  ------------------
 4843|  36.1k|		chk_length = ntohs(ch->chunk_length);
 4844|  36.1k|		if (chk_length < sizeof(*ch)) {
  ------------------
  |  Branch (4844:7): [True: 61, False: 36.0k]
  ------------------
 4845|       |			/* break to abort land */
 4846|     61|			break;
 4847|     61|		}
 4848|  36.0k|		switch (ch->chunk_type) {
 4849|  28.1k|		case SCTP_INIT:
  ------------------
  |  |   92|  28.1k|#define SCTP_INIT	0x0001
  ------------------
  |  Branch (4849:3): [True: 28.1k, False: 7.98k]
  ------------------
 4850|  28.1k|			contains_init_chunk = 1;
 4851|  28.1k|			break;
 4852|      4|		case SCTP_PACKET_DROPPED:
  ------------------
  |  |  479|      4|#define SCTP_PACKET_DROPPED	0x81
  ------------------
  |  Branch (4852:3): [True: 4, False: 36.0k]
  ------------------
 4853|       |			/* we don't respond to pkt-dropped */
 4854|      4|			return;
 4855|      1|		case SCTP_ABORT_ASSOCIATION:
  ------------------
  |  |  460|      1|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
  |  Branch (4855:3): [True: 1, False: 36.0k]
  ------------------
 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: 36.0k]
  ------------------
 4859|       |			/*
 4860|       |			 * we ignore it since we are not waiting for it and
 4861|       |			 * peer is gone
 4862|       |			 */
 4863|      1|			return;
 4864|      1|		case SCTP_SHUTDOWN_ACK:
  ------------------
  |  |  462|      1|#define SCTP_SHUTDOWN_ACK	0x08
  ------------------
  |  Branch (4864:3): [True: 1, False: 36.0k]
  ------------------
 4865|      1|			sctp_send_shutdown_complete2(src, dst, sh,
 4866|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4867|       |			                             mflowtype, mflowid, fibnum,
 4868|       |#endif
 4869|      1|			                             vrf_id, port);
 4870|      1|			return;
 4871|  7.98k|		default:
  ------------------
  |  Branch (4871:3): [True: 7.98k, False: 28.1k]
  ------------------
 4872|  7.98k|			break;
 4873|  36.0k|		}
 4874|  36.0k|		offset += SCTP_SIZE32(chk_length);
  ------------------
  |  |  383|  36.0k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 4875|  36.0k|		ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, offset,
 4876|  36.0k|		    sizeof(*ch), (uint8_t *) & chunk_buf);
 4877|  36.0k|	}
 4878|    331|	if ((SCTP_BASE_SYSCTL(sctp_blackhole) == 0) ||
  ------------------
  |  |  590|    331|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  |  Branch (4878:6): [True: 331, 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|    331|	     (contains_init_chunk == 0))) {
  ------------------
  |  Branch (4880:7): [True: 0, False: 0]
  ------------------
 4881|    331|		sctp_send_abort(m, iphlen, src, dst, sh, 0, cause,
 4882|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 4883|       |		                mflowtype, mflowid, fibnum,
 4884|       |#endif
 4885|    331|		                vrf_id, port);
 4886|    331|	}
 4887|    331|}
sctp_is_there_an_abort_here:
 4895|    850|{
 4896|    850|	struct sctp_chunkhdr *ch;
 4897|    850|	struct sctp_init_chunk *init_chk, chunk_buf;
 4898|    850|	int offset;
 4899|    850|	unsigned int chk_length;
 4900|       |
 4901|    850|	offset = iphlen + sizeof(struct sctphdr);
 4902|    850|	ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, offset, sizeof(*ch),
 4903|    850|	    (uint8_t *) & chunk_buf);
 4904|  73.1k|	while (ch != NULL) {
  ------------------
  |  Branch (4904:9): [True: 72.3k, False: 789]
  ------------------
 4905|  72.3k|		chk_length = ntohs(ch->chunk_length);
 4906|  72.3k|		if (chk_length < sizeof(*ch)) {
  ------------------
  |  Branch (4906:7): [True: 61, False: 72.3k]
  ------------------
 4907|       |			/* packet is probably corrupt */
 4908|     61|			break;
 4909|     61|		}
 4910|       |		/* we seem to be ok, is it an abort? */
 4911|  72.3k|		if (ch->chunk_type == SCTP_ABORT_ASSOCIATION) {
  ------------------
  |  |  460|  72.3k|#define SCTP_ABORT_ASSOCIATION	0x06
  ------------------
  |  Branch (4911:7): [True: 0, False: 72.3k]
  ------------------
 4912|       |			/* yep, tell them */
 4913|      0|			return (1);
 4914|      0|		}
 4915|  72.3k|		if ((ch->chunk_type == SCTP_INITIATION) ||
  ------------------
  |  |  455|  72.3k|#define SCTP_INITIATION		0x01
  ------------------
  |  Branch (4915:7): [True: 28.1k, False: 44.1k]
  ------------------
 4916|  44.1k|		    (ch->chunk_type == SCTP_INITIATION_ACK)) {
  ------------------
  |  |  456|  44.1k|#define SCTP_INITIATION_ACK	0x02
  ------------------
  |  Branch (4916:7): [True: 1.56k, False: 42.6k]
  ------------------
 4917|       |			/* need to update the Vtag */
 4918|  29.6k|			init_chk = (struct sctp_init_chunk *)sctp_m_getptr(m,
 4919|  29.6k|			    offset, sizeof(struct sctp_init_chunk), (uint8_t *) & chunk_buf);
 4920|  29.6k|			if (init_chk != NULL) {
  ------------------
  |  Branch (4920:8): [True: 29.5k, False: 169]
  ------------------
 4921|  29.5k|				*vtag = ntohl(init_chk->init.initiate_tag);
 4922|  29.5k|			}
 4923|  29.6k|		}
 4924|       |		/* Nope, move to the next chunk */
 4925|  72.3k|		offset += SCTP_SIZE32(chk_length);
  ------------------
  |  |  383|  72.3k|#define SCTP_SIZE32(x)	((((x) + 3) >> 2) << 2)
  ------------------
 4926|  72.3k|		ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, offset,
 4927|  72.3k|		    sizeof(*ch), (uint8_t *) & chunk_buf);
 4928|  72.3k|	}
 4929|    850|	return (0);
 4930|    850|}
sctp_cmpaddr:
 5016|   367k|{
 5017|       |
 5018|       |	/* must be valid */
 5019|   367k|	if (sa1 == NULL || sa2 == NULL)
  ------------------
  |  Branch (5019:6): [True: 0, False: 367k]
  |  Branch (5019:21): [True: 0, False: 367k]
  ------------------
 5020|      0|		return (0);
 5021|       |
 5022|       |	/* must be the same family */
 5023|   367k|	if (sa1->sa_family != sa2->sa_family)
  ------------------
  |  Branch (5023:6): [True: 85.9k, False: 281k]
  ------------------
 5024|  85.9k|		return (0);
 5025|       |
 5026|   281k|	switch (sa1->sa_family) {
 5027|      0|#ifdef INET6
 5028|  39.6k|	case AF_INET6:
  ------------------
  |  Branch (5028:2): [True: 39.6k, False: 241k]
  ------------------
 5029|  39.6k|	{
 5030|       |		/* IPv6 addresses */
 5031|  39.6k|		struct sockaddr_in6 *sin6_1, *sin6_2;
 5032|       |
 5033|  39.6k|		sin6_1 = (struct sockaddr_in6 *)sa1;
 5034|  39.6k|		sin6_2 = (struct sockaddr_in6 *)sa2;
 5035|  39.6k|		return (SCTP6_ARE_ADDR_EQUAL(sin6_1,
 5036|  39.6k|		    sin6_2));
 5037|      0|	}
 5038|      0|#endif
 5039|      0|#ifdef INET
 5040|   205k|	case AF_INET:
  ------------------
  |  Branch (5040:2): [True: 205k, False: 76.0k]
  ------------------
 5041|   205k|	{
 5042|       |		/* IPv4 addresses */
 5043|   205k|		struct sockaddr_in *sin_1, *sin_2;
 5044|       |
 5045|   205k|		sin_1 = (struct sockaddr_in *)sa1;
 5046|   205k|		sin_2 = (struct sockaddr_in *)sa2;
 5047|   205k|		return (sin_1->sin_addr.s_addr == sin_2->sin_addr.s_addr);
 5048|      0|	}
 5049|      0|#endif
 5050|      0|#if defined(__Userspace__)
 5051|  36.3k|	case AF_CONN:
  ------------------
  |  | 1014|  36.3k|#define AF_CONN 123
  ------------------
  |  Branch (5051:2): [True: 36.3k, False: 244k]
  ------------------
 5052|  36.3k|	{
 5053|  36.3k|		struct sockaddr_conn *sconn_1, *sconn_2;
 5054|       |
 5055|  36.3k|		sconn_1 = (struct sockaddr_conn *)sa1;
 5056|  36.3k|		sconn_2 = (struct sockaddr_conn *)sa2;
 5057|  36.3k|		return (sconn_1->sconn_addr == sconn_2->sconn_addr);
 5058|      0|	}
 5059|      0|#endif
 5060|      0|	default:
  ------------------
  |  Branch (5060:2): [True: 0, False: 281k]
  ------------------
 5061|       |		/* we don't do these... */
 5062|      0|		return (0);
 5063|   281k|	}
 5064|   281k|}
sctp_wakeup_the_read_socket:
 5236|   645k|{
 5237|   645k|	if ((inp != NULL) &&
  ------------------
  |  Branch (5237:6): [True: 645k, False: 0]
  ------------------
 5238|   645k|	    (inp->sctp_socket != NULL) &&
  ------------------
  |  Branch (5238:6): [True: 645k, False: 0]
  ------------------
 5239|   645k|	    (((inp->sctp_flags & (SCTP_PCB_FLAGS_TCPTYPE | SCTP_PCB_FLAGS_IN_TCPPOOL)) == 0) ||
  ------------------
  |  |  529|   645k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
              	    (((inp->sctp_flags & (SCTP_PCB_FLAGS_TCPTYPE | SCTP_PCB_FLAGS_IN_TCPPOOL)) == 0) ||
  ------------------
  |  |  540|   645k|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (5239:7): [True: 0, False: 645k]
  ------------------
 5240|   645k|	     !SCTP_IS_LISTENING(inp))) {
  ------------------
  |  | 1152|   645k|#define SCTP_IS_LISTENING(inp) ((inp->sctp_flags & SCTP_PCB_FLAGS_ACCEPTING) != 0)
  |  |  ------------------
  |  |  |  |  531|   645k|#define SCTP_PCB_FLAGS_ACCEPTING	0x00000008
  |  |  ------------------
  ------------------
  |  Branch (5240:7): [True: 645k, 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|   645k|		sctp_sorwakeup(inp, inp->sctp_socket);
  ------------------
  |  | 1032|   645k|#define sctp_sorwakeup(inp, so) \
  |  | 1033|   645k|do { \
  |  | 1034|   645k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|  1.29M|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1034:6): [True: 0, False: 645k]
  |  |  ------------------
  |  | 1035|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEINPUT); \
  |  |  ------------------
  |  |  |  |  543|      0|#define SCTP_PCB_FLAGS_WAKEINPUT	0x02000000
  |  |  ------------------
  |  | 1036|   645k|	} else { \
  |  | 1037|   645k|		sorwakeup(so); \
  |  |  ------------------
  |  |  |  |  519|   645k|#define	sorwakeup(so) do {						\
  |  |  |  |  520|   645k|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  517|   645k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|   645k|	do {                         \
  |  |  |  |  |  |  |  |  113|   645k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 645k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|   645k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 645k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  521|   645k|	sorwakeup_locked(so);						\
  |  |  |  |  ------------------
  |  |  |  |  |  |  511|   645k|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  |  |  512|   645k|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  514|   645k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|   645k|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|   645k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 645k]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|   645k|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 645k]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  513|   645k|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  499|   645k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|   645k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  204|   645k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  205|   645k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (499:23): [True: 645k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  500|   645k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|   645k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  208|   645k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|   645k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  514|   645k|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  |  |  515|   645k|	else								\
  |  |  |  |  |  |  516|   645k|		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|   645k|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (517:10): [Folded, False: 645k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  522|   645k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (522:10): [Folded, False: 645k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1038|   645k|	} \
  |  | 1039|   645k|} while (0)
  |  |  ------------------
  |  |  |  Branch (1039:10): [Folded, False: 645k]
  |  |  ------------------
  ------------------
 5262|       |#if defined(__APPLE__) && !defined(__Userspace__)
 5263|       |		if (!so_locked) {
 5264|       |			SCTP_SOCKET_UNLOCK(so, 1);
 5265|       |		}
 5266|       |#endif
 5267|   645k|	}
 5268|   645k|}
sctp_invoke_recv_callback:
 5276|   644k|{
 5277|   644k|	uint32_t pd_point, length;
 5278|       |
 5279|   644k|	if ((inp->recv_callback == NULL) ||
  ------------------
  |  Branch (5279:6): [True: 644k, False: 0]
  ------------------
 5280|      0|	    (stcb == NULL) ||
  ------------------
  |  Branch (5280:6): [True: 0, False: 0]
  ------------------
 5281|   644k|	    (stcb->sctp_socket == NULL)) {
  ------------------
  |  Branch (5281:6): [True: 0, False: 0]
  ------------------
 5282|   644k|		return;
 5283|   644k|	}
 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|   644k|{
 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|   644k|	struct mbuf *m, *prev = NULL;
 5384|       |
 5385|   644k|	if (inp == NULL) {
  ------------------
  |  Branch (5385:6): [True: 0, False: 644k]
  ------------------
 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|   644k|	if (inp_read_lock_held == SCTP_READ_LOCK_NOT_HELD) {
  ------------------
  |  |   41|   644k|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
  |  Branch (5399:6): [True: 770, False: 644k]
  ------------------
 5400|    770|		SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|    770|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    770|	do {                         \
  |  |  |  |  113|    770|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 770]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    770|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 770]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5401|    770|	}
 5402|   644k|	if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_CANT_READ) {
  ------------------
  |  |  548|   644k|#define SCTP_PCB_FLAGS_SOCKET_CANT_READ	0x40000000
  ------------------
  |  Branch (5402:6): [True: 0, False: 644k]
  ------------------
 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|   644k|	if ((control->spec_flags & M_NOTIFICATION) == 0) {
  ------------------
  |  | 1037|   644k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|   644k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (5416:6): [True: 770, False: 644k]
  ------------------
 5417|    770|		atomic_add_int(&inp->total_recvs, 1);
  ------------------
  |  |   94|    770|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 5418|    770|		if (!control->do_not_ref_stcb) {
  ------------------
  |  Branch (5418:7): [True: 770, False: 0]
  ------------------
 5419|    770|			atomic_add_int(&stcb->total_recvs, 1);
  ------------------
  |  |   94|    770|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 5420|    770|		}
 5421|    770|	}
 5422|   644k|	m = control->data;
 5423|   644k|	control->held_length = 0;
 5424|   644k|	control->length = 0;
 5425|  1.29M|	while (m != NULL) {
  ------------------
  |  Branch (5425:9): [True: 647k, False: 644k]
  ------------------
 5426|   647k|		if (SCTP_BUF_LEN(m) == 0) {
  ------------------
  |  |  801|   647k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   647k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (5426:7): [True: 146, False: 646k]
  ------------------
 5427|       |			/* Skip mbufs with NO length */
 5428|    146|			if (prev == NULL) {
  ------------------
  |  Branch (5428:8): [True: 146, False: 0]
  ------------------
 5429|       |				/* First one */
 5430|    146|				control->data = sctp_m_free(m);
  ------------------
  |  |   51|    146|#define sctp_m_free m_free
  ------------------
 5431|    146|				m = control->data;
 5432|    146|			} 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|    146|			if (m == NULL) {
  ------------------
  |  Branch (5436:8): [True: 0, False: 146]
  ------------------
 5437|      0|				control->tail_mbuf = prev;
 5438|      0|			}
 5439|    146|			continue;
 5440|    146|		}
 5441|   646k|		prev = m;
 5442|   646k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|   646k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|   646k|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (5442:7): [True: 0, False: 646k]
  ------------------
 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|   646k|		sctp_sballoc(stcb, sb, m);
  ------------------
  |  |  256|   646k|#define sctp_sballoc(stcb, sb, m) { \
  |  |  257|   646k|	SCTP_SB_INCR(sb, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |  969|   646k|#define SCTP_SB_INCR(sb, incr)			\
  |  |  |  |  970|   646k|{						\
  |  |  |  |  971|   646k|	atomic_add_int(&(sb)->sb_cc, incr);	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|   646k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  |  |  972|   646k|}
  |  |  ------------------
  |  |  258|   646k|	atomic_add_int(&(sb)->sb_mbcnt, MSIZE); \
  |  |  ------------------
  |  |  |  |   94|   646k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  259|   646k|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (259:6): [True: 646k, False: 0]
  |  |  ------------------
  |  |  260|   646k|		atomic_add_int(&(stcb)->asoc.sb_cc, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |   94|   646k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  261|   646k|		atomic_add_int(&(stcb)->asoc.my_rwnd_control_len, MSIZE); \
  |  |  ------------------
  |  |  |  |   94|   646k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  262|   646k|	} \
  |  |  263|   646k|}
  ------------------
 5446|   646k|		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|   646k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              		if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|   646k|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (5446:7): [True: 0, False: 646k]
  ------------------
 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|   646k|		atomic_add_int(&control->length, SCTP_BUF_LEN(m));
  ------------------
  |  |   94|   646k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 5450|   646k|		m = SCTP_BUF_NEXT(m);
  ------------------
  |  |  802|   646k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   646k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 5451|   646k|	}
 5452|   644k|	if (prev != NULL) {
  ------------------
  |  Branch (5452:6): [True: 644k, False: 0]
  ------------------
 5453|   644k|		control->tail_mbuf = prev;
 5454|   644k|	} 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|   644k|	if (end) {
  ------------------
  |  Branch (5464:6): [True: 644k, False: 0]
  ------------------
 5465|   644k|		control->end_added = 1;
 5466|   644k|	}
 5467|   644k|	TAILQ_INSERT_TAIL(&inp->read_queue, control, next);
  ------------------
  |  Branch (5467:2): [Folded, False: 644k]
  ------------------
 5468|   644k|	control->on_read_q = 1;
 5469|   644k|#if defined(__Userspace__)
 5470|   644k|	sctp_invoke_recv_callback(inp, stcb, control, SCTP_READ_LOCK_HELD);
  ------------------
  |  |   40|   644k|#define SCTP_READ_LOCK_HELD 1
  ------------------
 5471|   644k|#endif
 5472|   644k|	if ((inp != NULL) && (inp->sctp_socket != NULL)) {
  ------------------
  |  Branch (5472:6): [True: 644k, False: 0]
  |  Branch (5472:23): [True: 644k, False: 0]
  ------------------
 5473|   644k|		sctp_wakeup_the_read_socket(inp, stcb, so_locked);
 5474|   644k|	}
 5475|   644k|	if (inp_read_lock_held == SCTP_READ_LOCK_NOT_HELD) {
  ------------------
  |  |   41|   644k|#define SCTP_READ_LOCK_NOT_HELD 0
  ------------------
  |  Branch (5475:6): [True: 770, False: 644k]
  ------------------
 5476|    770|		SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|    770|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    770|	do {                         \
  |  |  |  |  113|    770|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 770]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    770|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 770]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5477|    770|	}
 5478|   644k|}
sctp_generate_cause:
 5490|  9.08k|{
 5491|  9.08k|	struct mbuf *m;
 5492|  9.08k|	struct sctp_gen_error_cause *cause;
 5493|  9.08k|	size_t info_len;
 5494|  9.08k|	uint16_t len;
 5495|       |
 5496|  9.08k|	if ((code == 0) || (info == NULL)) {
  ------------------
  |  Branch (5496:6): [True: 560, False: 8.52k]
  |  Branch (5496:21): [True: 0, False: 8.52k]
  ------------------
 5497|    560|		return (NULL);
 5498|    560|	}
 5499|  8.52k|	info_len = strlen(info);
 5500|  8.52k|	if (info_len > (SCTP_MAX_CAUSE_LENGTH - sizeof(struct sctp_paramhdr))) {
  ------------------
  |  |   74|  8.52k|#define SCTP_MAX_CAUSE_LENGTH 0xffff
  ------------------
  |  Branch (5500:6): [True: 0, False: 8.52k]
  ------------------
 5501|      0|		return (NULL);
 5502|      0|	}
 5503|  8.52k|	len = (uint16_t)(sizeof(struct sctp_paramhdr) + info_len);
 5504|  8.52k|	m = sctp_get_mbuf_for_msg(len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  8.52k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m = sctp_get_mbuf_for_msg(len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  8.52k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5505|  8.52k|	if (m != NULL) {
  ------------------
  |  Branch (5505:6): [True: 8.52k, False: 0]
  ------------------
 5506|  8.52k|		SCTP_BUF_LEN(m) = len;
  ------------------
  |  |  801|  8.52k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  8.52k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5507|  8.52k|		cause = mtod(m, struct sctp_gen_error_cause *);
  ------------------
  |  |   96|  8.52k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  8.52k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5508|  8.52k|		cause->code = htons(code);
 5509|       |		cause->length = htons(len);
 5510|  8.52k|		memcpy(cause->info, info, info_len);
 5511|  8.52k|	}
 5512|  8.52k|	return (m);
 5513|  8.52k|}
sctp_generate_no_user_data_cause:
 5517|      7|{
 5518|      7|	struct mbuf *m;
 5519|      7|	struct sctp_error_no_user_data *no_user_data_cause;
 5520|      7|	uint16_t len;
 5521|       |
 5522|      7|	len = (uint16_t)sizeof(struct sctp_error_no_user_data);
 5523|      7|	m = sctp_get_mbuf_for_msg(len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|      7|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m = sctp_get_mbuf_for_msg(len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|      7|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 5524|      7|	if (m != NULL) {
  ------------------
  |  Branch (5524:6): [True: 7, False: 0]
  ------------------
 5525|      7|		SCTP_BUF_LEN(m) = len;
  ------------------
  |  |  801|      7|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|      7|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 5526|      7|		no_user_data_cause = mtod(m, struct sctp_error_no_user_data *);
  ------------------
  |  |   96|      7|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|      7|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 5527|      7|		no_user_data_cause->cause.code = htons(SCTP_CAUSE_NO_USER_DATA);
 5528|      7|		no_user_data_cause->cause.length = htons(len);
 5529|       |		no_user_data_cause->tsn = htonl(tsn);
 5530|      7|	}
 5531|      7|	return (m);
 5532|      7|}
sctp_free_bufspace:
 5537|    658|{
 5538|    658|	if (tp1->data == NULL) {
  ------------------
  |  Branch (5538:6): [True: 0, False: 658]
  ------------------
 5539|      0|		return;
 5540|      0|	}
 5541|    658|	atomic_subtract_int(&asoc->chunks_on_out_queue, chk_cnt);
  ------------------
  |  |   97|    658|#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|    658|	if (asoc->total_output_queue_size >= tp1->book_size) {
  ------------------
  |  Branch (5551:6): [True: 658, False: 0]
  ------------------
 5552|    658|		atomic_subtract_int(&asoc->total_output_queue_size, tp1->book_size);
  ------------------
  |  |   97|    658|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 5553|    658|	} else {
 5554|      0|		asoc->total_output_queue_size = 0;
 5555|      0|	}
 5556|    658|	if ((stcb->sctp_socket != NULL) &&
  ------------------
  |  Branch (5556:6): [True: 658, False: 0]
  ------------------
 5557|    658|	    (((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) ||
  ------------------
  |  |  540|    658|#define SCTP_PCB_FLAGS_IN_TCPPOOL	0x00400000
  ------------------
  |  Branch (5557:7): [True: 0, False: 658]
  ------------------
 5558|    658|	     ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE)))) {
  ------------------
  |  |  529|    658|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (5558:7): [True: 658, False: 0]
  ------------------
 5559|    658|		SCTP_SB_DECR(&stcb->sctp_socket->so_snd, tp1->book_size);
  ------------------
  |  |  973|    658|#define SCTP_SB_DECR(sb, decr)					\
  |  |  974|    658|{								\
  |  |  975|    658|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_cc, (int)(decr));	\
  |  |  ------------------
  |  |  |  |  117|    658|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|    658|{ \
  |  |  |  |  119|    658|	int32_t oldval; \
  |  |  |  |  120|    658|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|    658|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|    658|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 658]
  |  |  |  |  ------------------
  |  |  |  |  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|    658|}
  |  |  ------------------
  |  |  976|    658|}
  ------------------
 5560|    658|	}
 5561|    658|}
sctp_get_ifa_hash_val:
 5865|  64.7k|{
 5866|  64.7k|	switch (addr->sa_family) {
 5867|      0|#ifdef INET
 5868|  38.0k|	case AF_INET:
  ------------------
  |  Branch (5868:2): [True: 38.0k, False: 26.6k]
  ------------------
 5869|  38.0k|	{
 5870|  38.0k|		struct sockaddr_in *sin;
 5871|       |
 5872|  38.0k|		sin = (struct sockaddr_in *)addr;
 5873|  38.0k|		return (sin->sin_addr.s_addr ^ (sin->sin_addr.s_addr >> 16));
 5874|      0|	}
 5875|      0|#endif
 5876|      0|#ifdef INET6
 5877|  4.33k|	case AF_INET6:
  ------------------
  |  Branch (5877:2): [True: 4.33k, False: 60.3k]
  ------------------
 5878|  4.33k|	{
 5879|  4.33k|		struct sockaddr_in6 *sin6;
 5880|  4.33k|		uint32_t hash_of_addr;
 5881|       |
 5882|  4.33k|		sin6 = (struct sockaddr_in6 *)addr;
 5883|  4.33k|#if !defined(_WIN32) && !(defined(__FreeBSD__) && defined(__Userspace__)) && !defined(__APPLE__)
 5884|  4.33k|		hash_of_addr = (sin6->sin6_addr.s6_addr32[0] +
 5885|  4.33k|				sin6->sin6_addr.s6_addr32[1] +
 5886|  4.33k|				sin6->sin6_addr.s6_addr32[2] +
 5887|  4.33k|				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.33k|		hash_of_addr = (hash_of_addr ^ (hash_of_addr >> 16));
 5895|  4.33k|		return (hash_of_addr);
 5896|      0|	}
 5897|      0|#endif
 5898|      0|#if defined(__Userspace__)
 5899|  22.3k|	case AF_CONN:
  ------------------
  |  | 1014|  22.3k|#define AF_CONN 123
  ------------------
  |  Branch (5899:2): [True: 22.3k, False: 42.4k]
  ------------------
 5900|  22.3k|	{
 5901|  22.3k|		struct sockaddr_conn *sconn;
 5902|  22.3k|		uintptr_t temp;
 5903|       |
 5904|  22.3k|		sconn = (struct sockaddr_conn *)addr;
 5905|  22.3k|		temp = (uintptr_t)sconn->sconn_addr;
 5906|  22.3k|		return ((uint32_t)(temp ^ (temp >> 16)));
 5907|      0|	}
 5908|      0|#endif
 5909|      0|	default:
  ------------------
  |  Branch (5909:2): [True: 0, False: 64.7k]
  ------------------
 5910|      0|		break;
 5911|  64.7k|	}
 5912|      0|	return (0);
 5913|  64.7k|}
sctp_find_ifa_by_addr:
 5917|  64.7k|{
 5918|  64.7k|	struct sctp_ifa *sctp_ifap;
 5919|  64.7k|	struct sctp_vrf *vrf;
 5920|  64.7k|	struct sctp_ifalist *hash_head;
 5921|  64.7k|	uint32_t hash_of_addr;
 5922|       |
 5923|  64.7k|	if (holds_lock == 0) {
  ------------------
  |  Branch (5923:6): [True: 64.7k, False: 3]
  ------------------
 5924|  64.7k|		SCTP_IPI_ADDR_RLOCK();
  ------------------
  |  |  597|  64.7k|	KASSERT(pthread_rwlock_rdlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  64.7k|	do {                         \
  |  |  |  |  113|  64.7k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 64.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|  64.7k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 64.7k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5925|  64.7k|	} else {
 5926|      3|		SCTP_IPI_ADDR_LOCK_ASSERT();
 5927|      3|	}
 5928|       |
 5929|  64.7k|	vrf = sctp_find_vrf(vrf_id);
 5930|  64.7k|	if (vrf == NULL) {
  ------------------
  |  Branch (5930:6): [True: 0, False: 64.7k]
  ------------------
 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|  64.7k|	hash_of_addr = sctp_get_ifa_hash_val(addr);
 5937|       |
 5938|  64.7k|	hash_head = &vrf->vrf_addr_hash[(hash_of_addr & vrf->vrf_addr_hashmark)];
 5939|  64.7k|	if (hash_head == NULL) {
  ------------------
  |  Branch (5939:6): [True: 0, False: 64.7k]
  ------------------
 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|  64.7k|	LIST_FOREACH(sctp_ifap, hash_head, next_bucket) {
  ------------------
  |  Branch (5950:2): [True: 35.5k, False: 42.4k]
  ------------------
 5951|  35.5k|		if (addr->sa_family != sctp_ifap->address.sa.sa_family)
  ------------------
  |  Branch (5951:7): [True: 6.94k, False: 28.5k]
  ------------------
 5952|  6.94k|			continue;
 5953|  28.5k|#ifdef INET
 5954|  28.5k|		if (addr->sa_family == AF_INET) {
  ------------------
  |  Branch (5954:7): [True: 6.25k, False: 22.3k]
  ------------------
 5955|  6.25k|			if (((struct sockaddr_in *)addr)->sin_addr.s_addr ==
  ------------------
  |  Branch (5955:8): [True: 1, False: 6.25k]
  ------------------
 5956|  6.25k|			    sctp_ifap->address.sin.sin_addr.s_addr) {
 5957|       |				/* found him. */
 5958|      1|				break;
 5959|      1|			}
 5960|  6.25k|		}
 5961|  28.5k|#endif
 5962|  28.5k|#ifdef INET6
 5963|  28.5k|		if (addr->sa_family == AF_INET6) {
  ------------------
  |  Branch (5963:7): [True: 0, False: 28.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|  28.5k|#endif
 5971|  28.5k|#if defined(__Userspace__)
 5972|  28.5k|		if (addr->sa_family == AF_CONN) {
  ------------------
  |  | 1014|  28.5k|#define AF_CONN 123
  ------------------
  |  Branch (5972:7): [True: 22.3k, False: 6.25k]
  ------------------
 5973|  22.3k|			if (((struct sockaddr_conn *)addr)->sconn_addr == sctp_ifap->address.sconn.sconn_addr) {
  ------------------
  |  Branch (5973:8): [True: 22.3k, False: 0]
  ------------------
 5974|       |				/* found him. */
 5975|  22.3k|				break;
 5976|  22.3k|			}
 5977|  22.3k|		}
 5978|  28.5k|#endif
 5979|  28.5k|	}
 5980|  64.7k|	if (holds_lock == 0)
  ------------------
  |  Branch (5980:6): [True: 64.7k, False: 3]
  ------------------
 5981|  64.7k|		SCTP_IPI_ADDR_RUNLOCK();
  ------------------
  |  |  599|  64.7k|	KASSERT(pthread_rwlock_unlock(&SCTP_BASE_INFO(ipi_addr_mtx)) == 0, ("%s:%d: ipi_addr_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  64.7k|	do {                         \
  |  |  |  |  113|  64.7k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 64.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|  64.7k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 64.7k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5982|  64.7k|	return (sctp_ifap);
 5983|  64.7k|}
sctp_sorecvmsg:
 6086|   647k|{
 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|   647k|	struct sctp_inpcb *inp = NULL;
 6096|   647k|	ssize_t my_len = 0;
 6097|   647k|	ssize_t cp_len = 0;
 6098|   647k|	int error = 0;
 6099|   647k|	struct sctp_queued_to_read *control = NULL, *ctl = NULL, *nxt = NULL;
 6100|   647k|	struct mbuf *m = NULL;
 6101|   647k|	struct sctp_tcb *stcb = NULL;
 6102|   647k|	int wakeup_read_socket = 0;
 6103|   647k|	int freecnt_applied = 0;
 6104|   647k|	int out_flags = 0, in_flags = 0;
 6105|   647k|	int block_allowed = 1;
 6106|   647k|	uint32_t freed_so_far = 0;
 6107|   647k|	ssize_t copied_so_far = 0;
 6108|   647k|	int in_eeor_mode = 0;
 6109|   647k|	int no_rcv_needed = 0;
 6110|   647k|	uint32_t rwnd_req = 0;
 6111|   647k|	int hold_sblock = 0;
 6112|   647k|	int hold_rlock = 0;
 6113|   647k|	ssize_t slen = 0;
 6114|   647k|	uint32_t held_length = 0;
 6115|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6116|       |	int sockbuf_lock = 0;
 6117|       |#endif
 6118|       |
 6119|   647k|	if (uio == NULL) {
  ------------------
  |  Branch (6119:6): [True: 0, False: 647k]
  ------------------
 6120|      0|		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, EINVAL);
 6121|      0|		return (EINVAL);
 6122|      0|	}
 6123|       |
 6124|   647k|	if (msg_flags) {
  ------------------
  |  Branch (6124:6): [True: 647k, False: 0]
  ------------------
 6125|   647k|		in_flags = *msg_flags;
 6126|   647k|		if (in_flags & MSG_PEEK)
  ------------------
  |  Branch (6126:7): [True: 0, False: 647k]
  ------------------
 6127|   647k|			SCTP_STAT_INCR(sctps_read_peeks);
  ------------------
  |  | 1112|   647k|#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|   647k|	} 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|   647k|	slen = uio->uio_resid;
 6139|   647k|#endif
 6140|       |
 6141|       |	/* Pull in and set up our int flags */
 6142|   647k|	if (in_flags & MSG_OOB) {
  ------------------
  |  Branch (6142:6): [True: 0, False: 647k]
  ------------------
 6143|       |		/* Out of band's NOT supported */
 6144|      0|		return (EOPNOTSUPP);
 6145|      0|	}
 6146|   647k|	if ((in_flags & MSG_PEEK) && (mp != NULL)) {
  ------------------
  |  Branch (6146:6): [True: 0, False: 647k]
  |  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|   647k|	if ((in_flags & (MSG_DONTWAIT
  ------------------
  |  Branch (6150:6): [True: 0, False: 647k]
  ------------------
 6151|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6152|       |			 | MSG_NBIO
 6153|       |#endif
 6154|   647k|		     )) ||
 6155|   647k|	    SCTP_SO_IS_NBIO(so)) {
  ------------------
  |  |  956|   647k|#define SCTP_SO_IS_NBIO(so)	((so)->so_state & SS_NBIO)
  |  |  ------------------
  |  |  |  |  343|   647k|#define	SS_NBIO			0x0100	/* non-blocking ops */
  |  |  ------------------
  |  |  |  Branch (956:29): [True: 647k, False: 0]
  |  |  ------------------
  ------------------
 6156|   647k|		block_allowed = 0;
 6157|   647k|	}
 6158|       |	/* setup the endpoint */
 6159|   647k|	inp = (struct sctp_inpcb *)so->so_pcb;
 6160|   647k|	if (inp == NULL) {
  ------------------
  |  Branch (6160:6): [True: 0, False: 647k]
  ------------------
 6161|      0|		SCTP_LTRACE_ERR_RET(NULL, NULL, NULL, SCTP_FROM_SCTPUTIL, EFAULT);
 6162|      0|		return (EFAULT);
 6163|      0|	}
 6164|   647k|	rwnd_req = (SCTP_SB_LIMIT_RCV(so) >> SCTP_RWND_HIWAT_SHIFT);
  ------------------
  |  |  983|   647k|#define SCTP_SB_LIMIT_RCV(so) so->so_rcv.sb_hiwat
  ------------------
              	rwnd_req = (SCTP_SB_LIMIT_RCV(so) >> SCTP_RWND_HIWAT_SHIFT);
  ------------------
  |  |  282|   647k|#define SCTP_RWND_HIWAT_SHIFT 3
  ------------------
 6165|       |	/* Must be at least a MTU's worth */
 6166|   647k|	if (rwnd_req < SCTP_MIN_RWND)
  ------------------
  |  |  687|   647k|#define SCTP_MIN_RWND	1500
  ------------------
  |  Branch (6166:6): [True: 0, False: 647k]
  ------------------
 6167|      0|		rwnd_req = SCTP_MIN_RWND;
  ------------------
  |  |  687|      0|#define SCTP_MIN_RWND	1500
  ------------------
 6168|   647k|	in_eeor_mode = sctp_is_feature_on(inp, SCTP_PCB_FLAGS_EXPLICIT_EOR);
  ------------------
  |  |   52|   647k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  ------------------
 6169|   647k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_RECV_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|   647k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_RECV_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  653|   647k|#define SCTP_RECV_RWND_LOGGING_ENABLE			0x00001000
  ------------------
  |  Branch (6169:6): [True: 0, False: 647k]
  ------------------
 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|   647k|#if defined(__Userspace__)
 6184|   647k|	SOCKBUF_LOCK(&so->so_rcv);
  ------------------
  |  |  517|   647k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   647k|	do {                         \
  |  |  |  |  113|   647k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 647k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   647k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 647k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6185|   647k|	hold_sblock = 1;
 6186|   647k|#endif
 6187|   647k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) &SCTP_RECV_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|   647k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) &SCTP_RECV_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  653|   647k|#define SCTP_RECV_RWND_LOGGING_ENABLE			0x00001000
  ------------------
  |  Branch (6187:6): [True: 0, False: 647k]
  ------------------
 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|   647k|	if (error) {
  ------------------
  |  Branch (6208:6): [True: 0, False: 647k]
  ------------------
 6209|      0|		goto release_unlocked;
 6210|      0|	}
 6211|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 6212|       |	sockbuf_lock = 1;
 6213|       |#endif
 6214|   647k| restart:
 6215|   647k|#if defined(__Userspace__)
 6216|   647k|	if (hold_sblock == 0) {
  ------------------
  |  Branch (6216:6): [True: 0, False: 647k]
  ------------------
 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|   647k|#endif
 6221|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6222|       |	sbunlock(&so->so_rcv, 1);
 6223|       |#endif
 6224|       |
 6225|   647k| restart_nosblocks:
 6226|   647k|	if (hold_sblock == 0) {
  ------------------
  |  Branch (6226:6): [True: 0, False: 647k]
  ------------------
 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|   647k|	if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
  ------------------
  |  |  546|   647k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (6230:6): [True: 0, False: 647k]
  ------------------
 6231|   647k|	    (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  547|   647k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (6231:6): [True: 0, False: 647k]
  ------------------
 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|   647k|	if ((so->so_state & SS_CANTRCVMORE) && SCTP_SBAVAIL(&so->so_rcv) == 0) {
  ------------------
  |  |   54|   647k|#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: 647k]
  |  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|   647k|	if (SCTP_SBAVAIL(&so->so_rcv) <= held_length) {
  ------------------
  |  |  968|   647k|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
  |  Branch (6252:6): [True: 1.74k, False: 646k]
  ------------------
 6253|  1.74k|		if (so->so_error) {
  ------------------
  |  Branch (6253:7): [True: 1.74k, False: 1]
  ------------------
 6254|  1.74k|			error = so->so_error;
 6255|  1.74k|			if ((in_flags & MSG_PEEK) == 0) {
  ------------------
  |  Branch (6255:8): [True: 1.74k, False: 0]
  ------------------
 6256|  1.74k|				so->so_error = 0;
 6257|  1.74k|			}
 6258|  1.74k|			goto out;
 6259|  1.74k|		}
 6260|      1|		if ((SCTP_SBAVAIL(&so->so_rcv) == 0) &&
  ------------------
  |  |  968|      1|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  ------------------
  |  Branch (6260:7): [True: 1, False: 0]
  ------------------
 6261|      1|		    ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|      1|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (6261:8): [True: 1, False: 0]
  ------------------
 6262|      1|		     (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|      1|			if ((inp->sctp_flags & SCTP_PCB_FLAGS_CONNECTED) == 0) {
  ------------------
  |  |  539|      1|#define SCTP_PCB_FLAGS_CONNECTED	0x00200000
  ------------------
  |  Branch (6263:8): [True: 1, False: 0]
  ------------------
 6264|       |				/* For active open side clear flags for re-use
 6265|       |				 * passive open is blocked by connect.
 6266|       |				 */
 6267|      1|				if (inp->sctp_flags & SCTP_PCB_FLAGS_WAS_ABORTED) {
  ------------------
  |  |  536|      1|#define SCTP_PCB_FLAGS_WAS_ABORTED      0x00100000
  ------------------
  |  Branch (6267:9): [True: 0, False: 1]
  ------------------
 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|      1|				so->so_state &= ~(SS_ISCONNECTING |
  ------------------
  |  |  341|      1|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
 6273|      1|						  SS_ISDISCONNECTING |
  ------------------
  |  |  342|      1|#define	SS_ISDISCONNECTING	0x0008	/* in process of disconnecting */
  ------------------
 6274|      1|#if !(defined(__FreeBSD__) && !defined(__Userspace__))
 6275|      1|						  SS_ISCONFIRMING |
  ------------------
  |  |  345|      1|#define	SS_ISCONFIRMING		0x0400	/* deciding to accept connection req */
  ------------------
 6276|      1|#endif
 6277|      1|						  SS_ISCONNECTED);
  ------------------
  |  |  340|      1|#define	SS_ISCONNECTED		0x0002	/* socket connected to a peer */
  ------------------
 6278|      1|				if (error == 0) {
  ------------------
  |  Branch (6278:9): [True: 1, False: 0]
  ------------------
 6279|      1|					if ((inp->sctp_flags & SCTP_PCB_FLAGS_WAS_CONNECTED) == 0) {
  ------------------
  |  |  535|      1|#define SCTP_PCB_FLAGS_WAS_CONNECTED    0x00080000
  ------------------
  |  Branch (6279:10): [True: 0, False: 1]
  ------------------
 6280|      0|						SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, ENOTCONN);
 6281|      0|						error = ENOTCONN;
 6282|      0|					}
 6283|      1|				}
 6284|      1|				goto out;
 6285|      1|			}
 6286|      1|		}
 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|   646k|	if (hold_sblock == 1) {
  ------------------
  |  Branch (6304:6): [True: 646k, False: 0]
  ------------------
 6305|   646k|		SOCKBUF_UNLOCK(&so->so_rcv);
  ------------------
  |  |  519|   646k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   646k|	do {                         \
  |  |  |  |  113|   646k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 646k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   646k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 646k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6306|   646k|		hold_sblock = 0;
 6307|   646k|	}
 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|   646k|	control = TAILQ_FIRST(&inp->read_queue);
 6314|   646k|	if (control == NULL) {
  ------------------
  |  Branch (6314:6): [True: 0, False: 646k]
  ------------------
 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|   646k|	if ((control->length == 0) &&
  ------------------
  |  Branch (6334:6): [True: 0, False: 646k]
  ------------------
 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|   646k|	if ((control->length == 0) &&
  ------------------
  |  Branch (6372:6): [True: 0, False: 646k]
  ------------------
 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|   646k|	if (control->length == 0) {
  ------------------
  |  Branch (6407:6): [True: 0, False: 646k]
  ------------------
 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|   646k|	control->held_length = 0;
 6459|   646k| 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|   646k|	if (hold_rlock == 0) {
  ------------------
  |  Branch (6464:6): [True: 646k, False: 0]
  ------------------
 6465|   646k|		hold_rlock = 1;
 6466|   646k|		SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|   646k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   646k|	do {                         \
  |  |  |  |  113|   646k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 646k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   646k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 646k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6467|   646k|	}
 6468|   646k|	control->some_taken++;
 6469|   646k|	stcb = control->stcb;
 6470|   646k|	if (stcb) {
  ------------------
  |  Branch (6470:6): [True: 646k, False: 0]
  ------------------
 6471|   646k|		if ((control->do_not_ref_stcb == 0) &&
  ------------------
  |  Branch (6471:7): [True: 507k, False: 138k]
  ------------------
 6472|   507k|		    (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED)) {
  ------------------
  |  |  465|   507k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (6472:7): [True: 0, False: 507k]
  ------------------
 6473|      0|			if (freecnt_applied == 0)
  ------------------
  |  Branch (6473:8): [True: 0, False: 0]
  ------------------
 6474|      0|				stcb = NULL;
 6475|   646k|		} else if (control->do_not_ref_stcb == 0) {
  ------------------
  |  Branch (6475:14): [True: 507k, False: 138k]
  ------------------
 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|   507k|			if (freecnt_applied) {
  ------------------
  |  Branch (6483:8): [True: 0, False: 507k]
  ------------------
 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|   507k|			} else {
 6490|   507k|				atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|   507k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 6491|   507k|				freecnt_applied = 1;
 6492|   507k|			}
 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|   507k|			freed_so_far = (uint32_t)stcb->freed_by_sorcv_sincelast;
 6503|   507k|			stcb->freed_by_sorcv_sincelast = 0;
 6504|   507k|		}
 6505|   646k|	}
 6506|   646k|	if (stcb &&
  ------------------
  |  Branch (6506:6): [True: 646k, False: 0]
  ------------------
 6507|   646k|	    ((control->spec_flags & M_NOTIFICATION) == 0) &&
  ------------------
  |  | 1037|   646k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|   646k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (6507:6): [True: 974, False: 645k]
  ------------------
 6508|    974|	    control->do_not_ref_stcb == 0) {
  ------------------
  |  Branch (6508:6): [True: 803, False: 171]
  ------------------
 6509|    803|		stcb->asoc.strmin[control->sinfo_stream].delivery_started = 1;
 6510|    803|	}
 6511|       |
 6512|       |	/* First lets get off the sinfo and sockaddr info */
 6513|   646k|	if ((sinfo != NULL) && (filling_sinfo != 0)) {
  ------------------
  |  Branch (6513:6): [True: 646k, False: 0]
  |  Branch (6513:25): [True: 646k, False: 0]
  ------------------
 6514|   646k|		sinfo->sinfo_stream = control->sinfo_stream;
 6515|   646k|		sinfo->sinfo_ssn = (uint16_t)control->mid;
 6516|   646k|		sinfo->sinfo_flags = control->sinfo_flags;
 6517|   646k|		sinfo->sinfo_ppid = control->sinfo_ppid;
 6518|   646k|		sinfo->sinfo_context =control->sinfo_context;
 6519|   646k|		sinfo->sinfo_timetolive = control->sinfo_timetolive;
 6520|   646k|		sinfo->sinfo_tsn = control->sinfo_tsn;
 6521|   646k|		sinfo->sinfo_cumtsn = control->sinfo_cumtsn;
 6522|   646k|		sinfo->sinfo_assoc_id = control->sinfo_assoc_id;
 6523|   646k|		nxt = TAILQ_NEXT(control, next);
 6524|   646k|		if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_EXT_RCVINFO) ||
  ------------------
  |  |   52|  1.29M|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 0, False: 646k]
  |  |  ------------------
  ------------------
 6525|   646k|		    sctp_is_feature_on(inp, SCTP_PCB_FLAGS_RECVNXTINFO)) {
  ------------------
  |  |   52|   646k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 646k, False: 0]
  |  |  ------------------
  ------------------
 6526|   646k|			struct sctp_extrcvinfo *s_extra;
 6527|   646k|			s_extra = (struct sctp_extrcvinfo *)sinfo;
 6528|   646k|			if ((nxt) &&
  ------------------
  |  Branch (6528:8): [True: 636k, False: 9.73k]
  ------------------
 6529|   636k|			    (nxt->length)) {
  ------------------
  |  Branch (6529:8): [True: 636k, False: 0]
  ------------------
 6530|   636k|				s_extra->serinfo_next_flags = SCTP_NEXT_MSG_AVAIL;
  ------------------
  |  |  213|   636k|#define SCTP_NEXT_MSG_AVAIL        0x0001
  ------------------
 6531|   636k|				if (nxt->sinfo_flags & SCTP_UNORDERED) {
  ------------------
  |  |  259|   636k|#define SCTP_UNORDERED        0x0400 /* Message is un-ordered */
  ------------------
  |  Branch (6531:9): [True: 415, False: 635k]
  ------------------
 6532|    415|					s_extra->serinfo_next_flags |= SCTP_NEXT_MSG_IS_UNORDERED;
  ------------------
  |  |  215|    415|#define SCTP_NEXT_MSG_IS_UNORDERED 0x0004
  ------------------
 6533|    415|				}
 6534|   636k|				if (nxt->spec_flags & M_NOTIFICATION) {
  ------------------
  |  | 1037|   636k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|   636k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (6534:9): [True: 635k, False: 624]
  ------------------
 6535|   635k|					s_extra->serinfo_next_flags |= SCTP_NEXT_MSG_IS_NOTIFICATION;
  ------------------
  |  |  216|   635k|#define SCTP_NEXT_MSG_IS_NOTIFICATION 0x0008
  ------------------
 6536|   635k|				}
 6537|   636k|				s_extra->serinfo_next_aid = nxt->sinfo_assoc_id;
 6538|   636k|				s_extra->serinfo_next_length = nxt->length;
 6539|   636k|				s_extra->serinfo_next_ppid = nxt->sinfo_ppid;
 6540|   636k|				s_extra->serinfo_next_stream = nxt->sinfo_stream;
 6541|   636k|				if (nxt->tail_mbuf != NULL) {
  ------------------
  |  Branch (6541:9): [True: 636k, False: 0]
  ------------------
 6542|   636k|					if (nxt->end_added) {
  ------------------
  |  Branch (6542:10): [True: 636k, False: 0]
  ------------------
 6543|   636k|						s_extra->serinfo_next_flags |= SCTP_NEXT_MSG_ISCOMPLETE;
  ------------------
  |  |  214|   636k|#define SCTP_NEXT_MSG_ISCOMPLETE   0x0002
  ------------------
 6544|   636k|					}
 6545|   636k|				}
 6546|   636k|			} 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|  9.73k|				nxt = NULL;
 6552|  9.73k|				s_extra->serinfo_next_flags = SCTP_NO_NEXT_MSG;
  ------------------
  |  |  212|  9.73k|#define SCTP_NO_NEXT_MSG           0x0000
  ------------------
 6553|  9.73k|				s_extra->serinfo_next_aid = 0;
 6554|  9.73k|				s_extra->serinfo_next_length = 0;
 6555|  9.73k|				s_extra->serinfo_next_ppid = 0;
 6556|  9.73k|				s_extra->serinfo_next_stream = 0;
 6557|  9.73k|			}
 6558|   646k|		}
 6559|       |		/*
 6560|       |		 * update off the real current cum-ack, if we have an stcb.
 6561|       |		 */
 6562|   646k|		if ((control->do_not_ref_stcb == 0) && stcb)
  ------------------
  |  Branch (6562:7): [True: 507k, False: 138k]
  |  Branch (6562:42): [True: 507k, False: 0]
  ------------------
 6563|   507k|			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|   646k|		sinfo->sinfo_flags &= 0x00ff;
 6569|   646k|		if ((control->sinfo_flags >> 8) & SCTP_DATA_UNORDERED) {
  ------------------
  |  |  515|   646k|#define SCTP_DATA_UNORDERED        0x04
  ------------------
  |  Branch (6569:7): [True: 693, False: 645k]
  ------------------
 6570|    693|			sinfo->sinfo_flags |= SCTP_UNORDERED;
  ------------------
  |  |  259|    693|#define SCTP_UNORDERED        0x0400 /* Message is un-ordered */
  ------------------
 6571|    693|		}
 6572|   646k|	}
 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|   646k|	if ((fromlen > 0) && (from != NULL)) {
  ------------------
  |  Branch (6592:6): [True: 646k, False: 0]
  |  Branch (6592:23): [True: 646k, False: 0]
  ------------------
 6593|   646k|		union sctp_sockstore store;
 6594|   646k|		size_t len;
 6595|       |
 6596|   646k|		switch (control->whoFrom->ro._l_addr.sa.sa_family) {
 6597|      0|#ifdef INET6
 6598|  9.84k|			case AF_INET6:
  ------------------
  |  Branch (6598:4): [True: 9.84k, False: 636k]
  ------------------
 6599|  9.84k|				len = sizeof(struct sockaddr_in6);
 6600|  9.84k|				store.sin6 = control->whoFrom->ro._l_addr.sin6;
 6601|  9.84k|				store.sin6.sin6_port = control->port_from;
 6602|  9.84k|				break;
 6603|      0|#endif
 6604|      0|#ifdef INET
 6605|    277|			case AF_INET:
  ------------------
  |  Branch (6605:4): [True: 277, False: 645k]
  ------------------
 6606|    277|#ifdef INET6
 6607|    277|				if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_NEEDS_MAPPED_V4)) {
  ------------------
  |  |   52|    277|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 0, False: 277]
  |  |  ------------------
  ------------------
 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|    277|				} else {
 6613|    277|					len = sizeof(struct sockaddr_in);
 6614|    277|					store.sin = control->whoFrom->ro._l_addr.sin;
 6615|    277|					store.sin.sin_port = control->port_from;
 6616|    277|				}
 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|    277|				break;
 6623|      0|#endif
 6624|      0|#if defined(__Userspace__)
 6625|   635k|			case AF_CONN:
  ------------------
  |  | 1014|   635k|#define AF_CONN 123
  ------------------
  |  Branch (6625:4): [True: 635k, False: 10.1k]
  ------------------
 6626|   635k|				len = sizeof(struct sockaddr_conn);
 6627|   635k|				store.sconn = control->whoFrom->ro._l_addr.sconn;
 6628|   635k|				store.sconn.sconn_port = control->port_from;
 6629|   635k|				break;
 6630|      0|#endif
 6631|      0|			default:
  ------------------
  |  Branch (6631:4): [True: 0, False: 646k]
  ------------------
 6632|      0|				len = 0;
 6633|      0|				break;
 6634|   646k|		}
 6635|   646k|		memcpy(from, &store, min((size_t)fromlen, len));
  ------------------
  |  |   66|   646k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 646k]
  |  |  ------------------
  ------------------
 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|   646k|	}
 6647|   646k|	if (hold_rlock) {
  ------------------
  |  Branch (6647:6): [True: 646k, False: 0]
  ------------------
 6648|   646k|		SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|   646k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   646k|	do {                         \
  |  |  |  |  113|   646k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 646k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   646k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 646k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6649|   646k|		hold_rlock = 0;
 6650|   646k|	}
 6651|   646k|	if (hold_sblock) {
  ------------------
  |  Branch (6651:6): [True: 0, False: 646k]
  ------------------
 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|   646k|	if (mp == NULL) {
  ------------------
  |  Branch (6656:6): [True: 646k, False: 0]
  ------------------
 6657|       |		/* copy out each mbuf in the chain up to length */
 6658|   646k|	get_more_data:
 6659|   646k|		m = control->data;
 6660|   648k|		while (m) {
  ------------------
  |  Branch (6660:10): [True: 648k, 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|   648k|			cp_len = uio->uio_resid;
 6670|   648k|#endif
 6671|   648k|			my_len = SCTP_BUF_LEN(m);
  ------------------
  |  |  801|   648k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   648k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 6672|   648k|			if (cp_len > my_len) {
  ------------------
  |  Branch (6672:8): [True: 647k, False: 205]
  ------------------
 6673|       |				/* not enough in this buf */
 6674|   647k|				cp_len = my_len;
 6675|   647k|			}
 6676|   648k|			if (hold_rlock) {
  ------------------
  |  Branch (6676:8): [True: 1.92k, False: 646k]
  ------------------
 6677|  1.92k|				SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|  1.92k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.92k|	do {                         \
  |  |  |  |  113|  1.92k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.92k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.92k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.92k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6678|  1.92k|				hold_rlock = 0;
 6679|  1.92k|			}
 6680|       |#if defined(__APPLE__) && !defined(__Userspace__)
 6681|       |			SCTP_SOCKET_UNLOCK(so, 0);
 6682|       |#endif
 6683|   648k|			if (cp_len > 0)
  ------------------
  |  Branch (6683:8): [True: 648k, False: 0]
  ------------------
 6684|   648k|				error = uiomove(mtod(m, char *), (int)cp_len, uio);
  ------------------
  |  |   96|   648k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|   648k|#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|   648k|			if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
  ------------------
  |  |  546|   648k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (6689:8): [True: 0, False: 648k]
  ------------------
 6690|      0|				goto release;
 6691|      0|			}
 6692|       |
 6693|   648k|			if ((control->do_not_ref_stcb == 0) && stcb &&
  ------------------
  |  Branch (6693:8): [True: 508k, False: 139k]
  |  Branch (6693:43): [True: 508k, False: 0]
  ------------------
 6694|   508k|			    stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|   508k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (6694:8): [True: 0, False: 508k]
  ------------------
 6695|      0|				no_rcv_needed = 1;
 6696|      0|			}
 6697|   648k|			if (error) {
  ------------------
  |  Branch (6697:8): [True: 0, False: 648k]
  ------------------
 6698|       |				/* error we are out of here */
 6699|      0|				goto release;
 6700|      0|			}
 6701|   648k|			SCTP_INP_READ_LOCK(inp);
  ------------------
  |  |  346|   648k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   648k|	do {                         \
  |  |  |  |  113|   648k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 648k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   648k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 648k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6702|   648k|			hold_rlock = 1;
 6703|   648k|			if (cp_len == SCTP_BUF_LEN(m)) {
  ------------------
  |  |  801|   648k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   648k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (6703:8): [True: 647k, False: 204]
  ------------------
 6704|   647k|				if ((SCTP_BUF_NEXT(m)== NULL) &&
  ------------------
  |  |  802|   647k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   647k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
  |  Branch (6704:9): [True: 645k, False: 1.92k]
  ------------------
 6705|   645k|				    (control->end_added)) {
  ------------------
  |  Branch (6705:9): [True: 645k, False: 0]
  ------------------
 6706|   645k|					out_flags |= MSG_EOR;
 6707|   645k|					if ((control->do_not_ref_stcb == 0) &&
  ------------------
  |  Branch (6707:10): [True: 507k, False: 138k]
  ------------------
 6708|   507k|					    (control->stcb != NULL) &&
  ------------------
  |  Branch (6708:10): [True: 507k, False: 0]
  ------------------
 6709|   507k|					    ((control->spec_flags & M_NOTIFICATION) == 0))
  ------------------
  |  | 1037|   507k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|   507k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (6709:10): [True: 684, False: 507k]
  ------------------
 6710|    684|						control->stcb->asoc.strmin[control->sinfo_stream].delivery_started = 0;
 6711|   645k|				}
 6712|   647k|				if (control->spec_flags & M_NOTIFICATION) {
  ------------------
  |  | 1037|   647k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|   647k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (6712:9): [True: 646k, False: 1.51k]
  ------------------
 6713|   646k|					out_flags |= MSG_NOTIFICATION;
  ------------------
  |  |   50|   646k|#define MSG_NOTIFICATION 0x2000         /* SCTP notification */
  ------------------
 6714|   646k|				}
 6715|       |				/* we ate up the mbuf */
 6716|   647k|				if (in_flags & MSG_PEEK) {
  ------------------
  |  Branch (6716:9): [True: 0, False: 647k]
  ------------------
 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|   647k|				} else {
 6721|       |					/* dispose of the mbuf */
 6722|   647k|					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|   647k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|   647k|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (6722:10): [True: 0, False: 647k]
  ------------------
 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|  1.29M|					sctp_sbfree(control, stcb, &so->so_rcv, m);
  ------------------
  |  |  247|   647k|#define sctp_sbfree(ctl, stcb, sb, m) { \
  |  |  248|   647k|	SCTP_SB_DECR(sb, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |  973|   647k|#define SCTP_SB_DECR(sb, decr)					\
  |  |  |  |  974|   647k|{								\
  |  |  |  |  975|   647k|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_cc, (int)(decr));	\
  |  |  |  |  ------------------
  |  |  |  |  |  |  117|   647k|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  |  |  118|   647k|{ \
  |  |  |  |  |  |  119|   647k|	int32_t oldval; \
  |  |  |  |  |  |  120|   647k|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  103|   647k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  121|   647k|	if (oldval < val) { \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (121:6): [True: 0, False: 647k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  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|   647k|}
  |  |  |  |  ------------------
  |  |  |  |  976|   647k|}
  |  |  ------------------
  |  |  249|   647k|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_mbcnt, MSIZE); \
  |  |  ------------------
  |  |  |  |  117|   647k|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|   647k|{ \
  |  |  |  |  119|   647k|	int32_t oldval; \
  |  |  |  |  120|   647k|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|   647k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|   647k|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 647k]
  |  |  |  |  ------------------
  |  |  |  |  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|   647k|}
  |  |  ------------------
  |  |  250|   647k|	if (((ctl)->do_not_ref_stcb == 0) && stcb) { \
  |  |  ------------------
  |  |  |  Branch (250:6): [True: 508k, False: 139k]
  |  |  |  Branch (250:39): [True: 508k, False: 0]
  |  |  ------------------
  |  |  251|   508k|		SCTP_SAVE_ATOMIC_DECREMENT(&(stcb)->asoc.sb_cc, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |  117|   508k|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|   508k|{ \
  |  |  |  |  119|   508k|	int32_t oldval; \
  |  |  |  |  120|   508k|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|   508k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|   508k|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 508k]
  |  |  |  |  ------------------
  |  |  |  |  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|   508k|}
  |  |  ------------------
  |  |  252|   508k|		SCTP_SAVE_ATOMIC_DECREMENT(&(stcb)->asoc.my_rwnd_control_len, MSIZE); \
  |  |  ------------------
  |  |  |  |  117|   508k|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|   508k|{ \
  |  |  |  |  119|   508k|	int32_t oldval; \
  |  |  |  |  120|   508k|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|   508k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|   508k|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 508k]
  |  |  |  |  ------------------
  |  |  |  |  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|   508k|}
  |  |  ------------------
  |  |  253|   508k|	} \
  |  |  254|   647k|}
  ------------------
 6727|   647k|					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|   647k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|   647k|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (6727:10): [True: 0, False: 647k]
  ------------------
 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|   647k|					copied_so_far += cp_len;
 6732|   647k|					freed_so_far += (uint32_t)cp_len;
 6733|   647k|					freed_so_far += MSIZE;
  ------------------
  |  |   47|   647k|#define MSIZE 256
  ------------------
 6734|   647k|					atomic_subtract_int(&control->length, (int)cp_len);
  ------------------
  |  |   97|   647k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 6735|   647k|					control->data = sctp_m_free(m);
  ------------------
  |  |   51|   647k|#define sctp_m_free m_free
  ------------------
 6736|   647k|					m = control->data;
 6737|       |					/* been through it all, must hold sb lock ok to null tail */
 6738|   647k|					if (control->data == NULL) {
  ------------------
  |  Branch (6738:10): [True: 645k, False: 1.92k]
  ------------------
 6739|   645k|#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|   645k|#endif
 6752|   645k|						control->tail_mbuf = NULL;
 6753|   645k|#ifdef INVARIANTS
 6754|   645k|						if ((control->end_added) && ((out_flags & MSG_EOR) == 0)) {
  ------------------
  |  Branch (6754:11): [True: 645k, False: 0]
  |  Branch (6754:35): [True: 0, False: 645k]
  ------------------
 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|   645k|#endif
 6758|   645k|					}
 6759|   647k|				}
 6760|   647k|			} else {
 6761|       |				/* Do we need to trim the mbuf? */
 6762|    204|				if (control->spec_flags & M_NOTIFICATION) {
  ------------------
  |  | 1037|    204|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|    204|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
  |  Branch (6762:9): [True: 0, False: 204]
  ------------------
 6763|      0|					out_flags |= MSG_NOTIFICATION;
  ------------------
  |  |   50|      0|#define MSG_NOTIFICATION 0x2000         /* SCTP notification */
  ------------------
 6764|      0|				}
 6765|    204|				if ((in_flags & MSG_PEEK) == 0) {
  ------------------
  |  Branch (6765:9): [True: 204, False: 0]
  ------------------
 6766|    204|					SCTP_BUF_RESV_UF(m, cp_len);
  ------------------
  |  |  804|    204|#define SCTP_BUF_RESV_UF(m, size) m->m_data += size
  |  |  ------------------
  |  |  |  |  219|    204|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 6767|    204|					SCTP_BUF_LEN(m) -= (int)cp_len;
  ------------------
  |  |  801|    204|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    204|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 6768|    204|					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|    204|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|    204|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (6768:10): [True: 0, False: 204]
  ------------------
 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|    204|					SCTP_SB_DECR(&so->so_rcv, cp_len);
  ------------------
  |  |  973|    204|#define SCTP_SB_DECR(sb, decr)					\
  |  |  974|    204|{								\
  |  |  975|    204|	SCTP_SAVE_ATOMIC_DECREMENT(&(sb)->sb_cc, (int)(decr));	\
  |  |  ------------------
  |  |  |  |  117|    204|#define SCTP_SAVE_ATOMIC_DECREMENT(addr, val) \
  |  |  |  |  118|    204|{ \
  |  |  |  |  119|    204|	int32_t oldval; \
  |  |  |  |  120|    204|	oldval = atomic_fetchadd_int(addr, -val); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|    204|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  121|    204|	if (oldval < val) { \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (121:6): [True: 0, False: 204]
  |  |  |  |  ------------------
  |  |  |  |  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|    204|}
  |  |  ------------------
  |  |  976|    204|}
  ------------------
 6772|    204|					if ((control->do_not_ref_stcb == 0) &&
  ------------------
  |  Branch (6772:10): [True: 119, False: 85]
  ------------------
 6773|    119|					    stcb) {
  ------------------
  |  Branch (6773:10): [True: 119, False: 0]
  ------------------
 6774|    119|						atomic_subtract_int(&stcb->asoc.sb_cc, (int)cp_len);
  ------------------
  |  |   97|    119|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 6775|    119|					}
 6776|    204|					copied_so_far += cp_len;
 6777|    204|					freed_so_far += (uint32_t)cp_len;
 6778|    204|					freed_so_far += MSIZE;
  ------------------
  |  |   47|    204|#define MSIZE 256
  ------------------
 6779|    204|					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|    204|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              					if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|    204|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (6779:10): [True: 0, False: 204]
  ------------------
 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|    204|					atomic_subtract_int(&control->length, (int)cp_len);
  ------------------
  |  |   97|    204|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 6784|    204|				} else {
 6785|      0|					copied_so_far += cp_len;
 6786|      0|				}
 6787|    204|			}
 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|   648k|			if ((out_flags & MSG_EOR) || (uio->uio_resid == 0)) {
  ------------------
  |  Branch (6795:8): [True: 645k, False: 2.12k]
  |  Branch (6795:33): [True: 204, False: 1.92k]
  ------------------
 6796|   646k|#endif
 6797|   646k|				break;
 6798|   646k|			}
 6799|  1.92k|			if (((stcb) && (in_flags & MSG_PEEK) == 0) &&
  ------------------
  |  Branch (6799:9): [True: 1.92k, False: 0]
  |  Branch (6799:19): [True: 1.92k, False: 0]
  ------------------
 6800|  1.92k|			    (control->do_not_ref_stcb == 0) &&
  ------------------
  |  Branch (6800:8): [True: 524, False: 1.39k]
  ------------------
 6801|    524|			    (freed_so_far >= rwnd_req)) {
  ------------------
  |  Branch (6801:8): [True: 34, False: 490]
  ------------------
 6802|     34|				sctp_user_rcvd(stcb, &freed_so_far, hold_rlock, rwnd_req);
 6803|     34|			}
 6804|  1.92k|		} /* 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|   646k|		if ((out_flags & MSG_EOR) && ((in_flags & MSG_PEEK) == 0)) {
  ------------------
  |  Branch (6810:7): [True: 645k, False: 204]
  |  Branch (6810:32): [True: 645k, False: 0]
  ------------------
 6811|       |			/* we are done with this control */
 6812|   645k|			if (control->length == 0) {
  ------------------
  |  Branch (6812:8): [True: 645k, False: 0]
  ------------------
 6813|   645k|				if (control->data) {
  ------------------
  |  Branch (6813:9): [True: 0, False: 645k]
  ------------------
 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|   645k|			done_with_control:
 6823|   645k|				if (hold_rlock == 0) {
  ------------------
  |  Branch (6823:9): [True: 0, False: 645k]
  ------------------
 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|   645k|				TAILQ_REMOVE(&inp->read_queue, control, next);
  ------------------
  |  Branch (6827:5): [True: 636k, False: 9.62k]
  |  Branch (6827:5): [Folded, False: 645k]
  ------------------
 6828|       |				/* Add back any hidden data */
 6829|   645k|				if (control->held_length) {
  ------------------
  |  Branch (6829:9): [True: 0, False: 645k]
  ------------------
 6830|      0|					held_length = 0;
 6831|      0|					control->held_length = 0;
 6832|      0|					wakeup_read_socket = 1;
 6833|      0|				}
 6834|   645k|				if (control->aux_data) {
  ------------------
  |  Branch (6834:9): [True: 0, False: 645k]
  ------------------
 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|   645k|				no_rcv_needed = control->do_not_ref_stcb;
 6839|   645k|				sctp_free_remote_addr(control->whoFrom);
  ------------------
  |  |  228|   645k|#define sctp_free_remote_addr(__net) { \
  |  |  229|   645k|	if ((__net)) { \
  |  |  ------------------
  |  |  |  Branch (229:6): [True: 645k, False: 0]
  |  |  ------------------
  |  |  230|   645k|		if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&(__net)->ref_count)) { \
  |  |  ------------------
  |  |  |  |  115|   645k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  103|   645k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (115:49): [True: 2.53k, False: 643k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  231|  2.53k|			if ((__net)->ro.ro_rt) { \
  |  |  ------------------
  |  |  |  Branch (231:8): [True: 2.53k, False: 0]
  |  |  ------------------
  |  |  232|  2.53k|				RTFREE((__net)->ro.ro_rt); \
  |  |  ------------------
  |  |  |  |  126|  2.53k|#define	RTFREE(_rt) do {					\
  |  |  |  |  127|  2.53k|		RT_LOCK(_rt);					\
  |  |  |  |  128|  2.53k|		RTFREE_LOCKED(_rt);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  116|  2.53k|#define	RTFREE_LOCKED(_rt) do {					\
  |  |  |  |  |  |  117|  2.53k|		if ((_rt)->rt_refcnt <= 1) {			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (117:7): [True: 2.53k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  118|  2.53k|			rtfree(_rt);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  884|  2.53k|#define rtfree(arg1) sctp_userspace_rtfree(arg1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  119|  2.53k|		} 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.53k|		/* guard against invalid refs */		\
  |  |  |  |  |  |  124|  2.53k|		_rt = NULL;					\
  |  |  |  |  |  |  125|  2.53k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (125:11): [Folded, False: 2.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  129|  2.53k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (129:10): [Folded, False: 2.53k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  233|  2.53k|				(__net)->ro.ro_rt = NULL; \
  |  |  234|  2.53k|			} \
  |  |  235|  2.53k|			if ((__net)->src_addr_selected) { \
  |  |  ------------------
  |  |  |  Branch (235:8): [True: 0, False: 2.53k]
  |  |  ------------------
  |  |  236|      0|				sctp_free_ifa((__net)->ro._s_addr); \
  |  |  237|      0|				(__net)->ro._s_addr = NULL; \
  |  |  238|      0|			} \
  |  |  239|  2.53k|			(__net)->src_addr_selected = 0; \
  |  |  240|  2.53k|			(__net)->dest_state &=~SCTP_ADDR_REACHABLE; \
  |  |  ------------------
  |  |  |  |  481|  2.53k|#define SCTP_ADDR_REACHABLE		0x001
  |  |  ------------------
  |  |  241|  2.53k|			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_net), (__net)); \
  |  |  ------------------
  |  |  |  |  707|  2.53k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|  2.53k|	free(element);  \
  |  |  |  |  709|  2.53k|}
  |  |  ------------------
  |  |  242|  2.53k|			SCTP_DECR_RADDR_COUNT(); \
  |  |  ------------------
  |  |  |  |  673|  2.53k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_raddr), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|  2.53k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  243|  2.53k|		} \
  |  |  244|   645k|	} \
  |  |  245|   645k|}
  ------------------
 6840|   645k|				control->data = NULL;
 6841|   645k|#ifdef INVARIANTS
 6842|   645k|				if (control->on_strm_q) {
  ------------------
  |  Branch (6842:9): [True: 0, False: 645k]
  ------------------
 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|   645k|#endif
 6847|  1.29M|				sctp_free_a_readq(stcb, control);
  ------------------
  |  |  105|   645k|#define sctp_free_a_readq(_stcb, _readq) { \
  |  |  106|   645k|	if ((_readq)->on_strm_q) \
  |  |  ------------------
  |  |  |  Branch (106:6): [True: 0, False: 645k]
  |  |  ------------------
  |  |  107|   645k|		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|   645k|	SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
  |  |  ------------------
  |  |  |  |  707|   645k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  |  |  708|   645k|	free(element);  \
  |  |  |  |  709|   645k|}
  |  |  ------------------
  |  |  109|   645k|	SCTP_DECR_READQ_COUNT(); \
  |  |  ------------------
  |  |  |  |  685|   645k|	atomic_subtract_int(&SCTP_BASE_INFO(ipi_count_readq), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |   97|   645k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  110|   645k|}
  ------------------
 6848|  1.29M|				control = NULL;
 6849|  1.29M|				if ((freed_so_far >= rwnd_req) &&
  ------------------
  |  Branch (6849:9): [True: 26.3k, False: 619k]
  ------------------
 6850|  26.3k|				    (no_rcv_needed == 0))
  ------------------
  |  Branch (6850:9): [True: 26.3k, False: 0]
  ------------------
 6851|  26.3k|					sctp_user_rcvd(stcb, &freed_so_far, hold_rlock, rwnd_req);
 6852|       |
 6853|  1.29M|			} 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|   645k|		}
 6871|   646k|		if (out_flags & MSG_EOR) {
  ------------------
  |  Branch (6871:7): [True: 645k, False: 204]
  ------------------
 6872|   645k|			goto release;
 6873|   645k|		}
 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|    204|		if ((uio->uio_resid == 0) ||
  ------------------
  |  Branch (6881:7): [True: 204, False: 0]
  ------------------
 6882|      0|#endif
 6883|      0|		    ((in_eeor_mode) &&
  ------------------
  |  Branch (6883:8): [True: 0, False: 0]
  ------------------
 6884|    204|		     (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|    204|			goto release;
 6886|    204|		}
 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|   646k| release:
 7061|   646k|	if (hold_rlock == 1) {
  ------------------
  |  Branch (7061:6): [True: 646k, False: 0]
  ------------------
 7062|   646k|		SCTP_INP_READ_UNLOCK(inp);
  ------------------
  |  |  348|   646k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   646k|	do {                         \
  |  |  |  |  113|   646k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 646k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   646k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 646k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7063|   646k|		hold_rlock = 0;
 7064|   646k|	}
 7065|   646k|#if defined(__Userspace__)
 7066|   646k|	if (hold_sblock == 0) {
  ------------------
  |  Branch (7066:6): [True: 646k, False: 0]
  ------------------
 7067|   646k|		SOCKBUF_LOCK(&so->so_rcv);
  ------------------
  |  |  517|   646k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   646k|	do {                         \
  |  |  |  |  113|   646k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 646k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   646k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 646k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7068|   646k|		hold_sblock = 1;
 7069|   646k|	}
 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|   646k| release_unlocked:
 7086|   646k|	if (hold_sblock) {
  ------------------
  |  Branch (7086:6): [True: 646k, False: 0]
  ------------------
 7087|   646k|		SOCKBUF_UNLOCK(&so->so_rcv);
  ------------------
  |  |  519|   646k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   646k|	do {                         \
  |  |  |  |  113|   646k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 646k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   646k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 646k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7088|   646k|		hold_sblock = 0;
 7089|   646k|	}
 7090|   646k|	if ((stcb) && (in_flags & MSG_PEEK) == 0) {
  ------------------
  |  Branch (7090:6): [True: 646k, False: 0]
  |  Branch (7090:16): [True: 646k, False: 0]
  ------------------
 7091|   646k|		if ((freed_so_far >= rwnd_req) &&
  ------------------
  |  Branch (7091:7): [True: 18.4k, False: 627k]
  ------------------
 7092|  18.4k|		    (control && (control->do_not_ref_stcb == 0)) &&
  ------------------
  |  Branch (7092:8): [True: 9, False: 18.3k]
  |  Branch (7092:19): [True: 9, False: 0]
  ------------------
 7093|      9|		    (no_rcv_needed == 0))
  ------------------
  |  Branch (7093:7): [True: 9, False: 0]
  ------------------
 7094|      9|			sctp_user_rcvd(stcb, &freed_so_far, hold_rlock, rwnd_req);
 7095|   646k|	}
 7096|   647k| out:
 7097|   647k|	if (msg_flags) {
  ------------------
  |  Branch (7097:6): [True: 647k, False: 0]
  ------------------
 7098|   647k|		*msg_flags = out_flags;
 7099|   647k|	}
 7100|   647k|	if (((out_flags & MSG_EOR) == 0) &&
  ------------------
  |  Branch (7100:6): [True: 1.95k, False: 645k]
  ------------------
 7101|  1.95k|	    ((in_flags & MSG_PEEK) == 0) &&
  ------------------
  |  Branch (7101:6): [True: 1.95k, False: 0]
  ------------------
 7102|  1.95k|	    (sinfo) &&
  ------------------
  |  Branch (7102:6): [True: 1.95k, False: 0]
  ------------------
 7103|  1.95k|	    (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_EXT_RCVINFO) ||
  ------------------
  |  |   52|  3.90k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 0, False: 1.95k]
  |  |  ------------------
  ------------------
 7104|  1.95k|	     sctp_is_feature_on(inp, SCTP_PCB_FLAGS_RECVNXTINFO))) {
  ------------------
  |  |   52|  1.95k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 1.95k, False: 0]
  |  |  ------------------
  ------------------
 7105|  1.95k|		struct sctp_extrcvinfo *s_extra;
 7106|  1.95k|		s_extra = (struct sctp_extrcvinfo *)sinfo;
 7107|  1.95k|		s_extra->serinfo_next_flags = SCTP_NO_NEXT_MSG;
  ------------------
  |  |  212|  1.95k|#define SCTP_NO_NEXT_MSG           0x0000
  ------------------
 7108|  1.95k|	}
 7109|   647k|	if (hold_rlock == 1) {
  ------------------
  |  Branch (7109:6): [True: 0, False: 647k]
  ------------------
 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|   647k|	if (hold_sblock) {
  ------------------
  |  Branch (7112:6): [True: 1.74k, False: 646k]
  ------------------
 7113|  1.74k|		SOCKBUF_UNLOCK(&so->so_rcv);
  ------------------
  |  |  519|  1.74k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 7114|  1.74k|	}
 7115|       |#if defined(__FreeBSD__) && !defined(__Userspace__)
 7116|       |	if (sockbuf_lock) {
 7117|       |		SOCK_IO_RECV_UNLOCK(so);
 7118|       |	}
 7119|       |#endif
 7120|       |
 7121|   647k|	if (freecnt_applied) {
  ------------------
  |  Branch (7121:6): [True: 507k, False: 140k]
  ------------------
 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|   507k|		if (stcb == NULL) {
  ------------------
  |  Branch (7128:7): [True: 0, False: 507k]
  ------------------
 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|   507k|		stcb->freed_by_sorcv_sincelast = freed_so_far;
 7138|   507k|		atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|   507k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 7139|   507k|	}
 7140|   647k|	if (SCTP_BASE_SYSCTL(sctp_logging_level) &SCTP_RECV_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  590|   647k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) &SCTP_RECV_RWND_LOGGING_ENABLE) {
  ------------------
  |  |  653|   647k|#define SCTP_RECV_RWND_LOGGING_ENABLE			0x00001000
  ------------------
  |  Branch (7140:6): [True: 0, False: 647k]
  ------------------
 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|   647k| stage_left:
 7172|   647k|	if (wakeup_read_socket) {
  ------------------
  |  Branch (7172:6): [True: 0, False: 647k]
  ------------------
 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|   647k|	return (error);
 7176|   647k|}
sctp_hashinit_flags:
 7391|  22.3k|{
 7392|  22.3k|	long hashsize;
 7393|  22.3k|	LIST_HEAD(generic, generic) *hashtbl;
 7394|  22.3k|	int i;
 7395|       |
 7396|  22.3k|	if (elements <= 0) {
  ------------------
  |  Branch (7396:6): [True: 0, False: 22.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|   189k|	for (hashsize = 1; hashsize <= elements; hashsize <<= 1)
  ------------------
  |  Branch (7404:21): [True: 167k, False: 22.3k]
  ------------------
 7405|   167k|		continue;
 7406|  22.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|  22.3k|	if (flags & HASH_WAITOK)
  ------------------
  |  |  762|  22.3k|#define HASH_WAITOK 0x00000002
  ------------------
  |  Branch (7409:6): [True: 0, False: 22.3k]
  ------------------
 7410|      0|		hashtbl = malloc((u_long)hashsize * sizeof(*hashtbl));
 7411|  22.3k|	else if (flags & HASH_NOWAIT)
  ------------------
  |  |  761|  22.3k|#define HASH_NOWAIT 0x00000001
  ------------------
  |  Branch (7411:11): [True: 22.3k, False: 0]
  ------------------
 7412|  22.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|  22.3k|	if (hashtbl == NULL)
  ------------------
  |  Branch (7421:6): [True: 0, False: 22.3k]
  ------------------
 7422|      0|		return (NULL);
 7423|       |
 7424|  3.25M|	for (i = 0; i < hashsize; i++)
  ------------------
  |  Branch (7424:14): [True: 3.23M, False: 22.3k]
  ------------------
 7425|       |		LIST_INIT(&hashtbl[i]);
  ------------------
  |  Branch (7425:3): [Folded, False: 3.23M]
  ------------------
 7426|  22.3k|	*hashmask = hashsize - 1;
 7427|  22.3k|	return (hashtbl);
 7428|  22.3k|}
sctp_hashdestroy:
 7432|  22.3k|{
 7433|  22.3k|	LIST_HEAD(generic, generic) *hashtbl, *hp;
 7434|       |
 7435|  22.3k|	hashtbl = vhashtbl;
 7436|  3.23M|	for (hp = hashtbl; hp <= &hashtbl[hashmask]; hp++)
  ------------------
  |  Branch (7436:21): [True: 3.21M, False: 22.3k]
  ------------------
 7437|  3.21M|		if (!LIST_EMPTY(hp)) {
  ------------------
  |  Branch (7437:7): [True: 0, False: 3.21M]
  ------------------
 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|  22.3k|	FREE(hashtbl, type);
  ------------------
  |  |  191|  22.3k|#define	FREE(addr, type) free((addr))
  ------------------
 7442|  22.3k|}
sctp_set_state:
 8685|  37.0k|{
 8686|       |#if defined(KDTRACE_HOOKS)
 8687|       |	int old_state = stcb->asoc.state;
 8688|       |#endif
 8689|       |
 8690|  37.0k|	KASSERT((new_state & ~SCTP_STATE_MASK) == 0,
  ------------------
  |  |  112|  37.0k|	do {                         \
  |  |  113|  37.0k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 37.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|  37.0k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 37.0k]
  |  |  ------------------
  ------------------
 8691|  37.0k|	        ("sctp_set_state: Can't set substate (new_state = %x)",
 8692|  37.0k|	        new_state));
 8693|  37.0k|	stcb->asoc.state = (stcb->asoc.state & ~SCTP_STATE_MASK) | new_state;
  ------------------
  |  |  469|  37.0k|#define SCTP_STATE_MASK			0x007f
  ------------------
 8694|  37.0k|	if ((new_state == SCTP_STATE_SHUTDOWN_RECEIVED) ||
  ------------------
  |  |  461|  37.0k|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (8694:6): [True: 110, False: 36.9k]
  ------------------
 8695|  36.9k|	    (new_state == SCTP_STATE_SHUTDOWN_SENT) ||
  ------------------
  |  |  460|  36.9k|#define SCTP_STATE_SHUTDOWN_SENT	0x0010
  ------------------
  |  Branch (8695:6): [True: 0, False: 36.9k]
  ------------------
 8696|  36.9k|	    (new_state == SCTP_STATE_SHUTDOWN_ACK_SENT)) {
  ------------------
  |  |  462|  36.9k|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (8696:6): [True: 58, False: 36.9k]
  ------------------
 8697|    168|		SCTP_CLEAR_SUBSTATE(stcb, SCTP_STATE_SHUTDOWN_PENDING);
  ------------------
  |  |  476|    168|	(_stcb)->asoc.state &= ~(_substate)
  ------------------
 8698|    168|	}
 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|  37.0k|}
sctp_add_substate:
 8710|  22.3k|{
 8711|       |#if defined(KDTRACE_HOOKS)
 8712|       |	int old_state = stcb->asoc.state;
 8713|       |#endif
 8714|       |
 8715|  22.3k|	KASSERT((substate & SCTP_STATE_MASK) == 0,
  ------------------
  |  |  112|  22.3k|	do {                         \
  |  |  113|  22.3k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 22.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|  22.3k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 22.3k]
  |  |  ------------------
  ------------------
 8716|  22.3k|	        ("sctp_add_substate: Can't set state (substate = %x)",
 8717|  22.3k|	        substate));
 8718|  22.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|  22.3k|}
sctputil.c:sctp_notify_assoc_change:
 3245|  7.38k|{
 3246|  7.38k|	struct mbuf *m_notify;
 3247|  7.38k|	struct sctp_assoc_change *sac;
 3248|  7.38k|	struct sctp_queued_to_read *control;
 3249|  7.38k|	struct sctp_inpcb *inp;
 3250|  7.38k|	unsigned int notif_len;
 3251|  7.38k|	unsigned int i;
 3252|  7.38k|	uint16_t abort_len;
 3253|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3254|       |	struct socket *so;
 3255|       |#endif
 3256|       |
 3257|  7.38k|	KASSERT(abort == NULL || from_peer,
  ------------------
  |  |  112|  7.38k|	do {                         \
  |  |  113|  7.48k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 7.29k, False: 93]
  |  |  |  Branch (113:9): [True: 93, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.38k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 7.38k]
  |  |  ------------------
  ------------------
 3258|  7.38k|	        ("sctp_notify_assoc_change: ABORT chunk provided for local termination"));
 3259|  7.38k|	KASSERT(!from_peer || !timedout,
  ------------------
  |  |  112|  7.38k|	do {                         \
  |  |  113|  7.48k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 7.29k, False: 93]
  |  |  |  Branch (113:9): [True: 93, False: 0]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.38k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 7.38k]
  |  |  ------------------
  ------------------
 3260|  7.38k|	        ("sctp_notify_assoc_change: timeouts can only be local"));
 3261|  7.38k|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|  7.38k|	do {                         \
  |  |  113|  7.38k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 7.38k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.38k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 7.38k]
  |  |  ------------------
  ------------------
 3262|  7.38k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  7.38k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  7.38k|	do {                         \
  |  |  |  |  113|  7.38k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 7.38k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.38k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 7.38k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3263|  7.38k|	inp = stcb->sctp_ep;
 3264|  7.38k|	SCTP_INP_READ_LOCK_ASSERT(inp);
  ------------------
  |  |  356|  7.38k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  7.38k|	do {                         \
  |  |  |  |  113|  7.38k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 7.38k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.38k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 7.38k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3265|       |
 3266|  7.38k|	if (sctp_stcb_is_feature_on(inp, stcb, SCTP_PCB_FLAGS_RECVASSOCEVNT)) {
  ------------------
  |  |   70|  7.38k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 7.38k, False: 0]
  |  |  ------------------
  |  |   71|  7.38k|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 7.38k, False: 0]
  |  |  ------------------
  |  |   72|  7.38k|	 ((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|  7.38k|		notif_len = (unsigned int)sizeof(struct sctp_assoc_change);
 3268|  7.38k|		if (abort != NULL) {
  ------------------
  |  Branch (3268:7): [True: 93, False: 7.29k]
  ------------------
 3269|     93|			abort_len = ntohs(abort->ch.chunk_length);
 3270|       |			/*
 3271|       |			 * Only SCTP_CHUNK_BUFFER_SIZE are guaranteed to be
 3272|       |			 * contiguous.
 3273|       |			 */
 3274|     93|			if (abort_len > SCTP_CHUNK_BUFFER_SIZE) {
  ------------------
  |  |  689|     93|#define SCTP_CHUNK_BUFFER_SIZE	512
  ------------------
  |  Branch (3274:8): [True: 4, False: 89]
  ------------------
 3275|      4|				abort_len = SCTP_CHUNK_BUFFER_SIZE;
  ------------------
  |  |  689|      4|#define SCTP_CHUNK_BUFFER_SIZE	512
  ------------------
 3276|      4|			}
 3277|  7.29k|		} else {
 3278|  7.29k|			abort_len = 0;
 3279|  7.29k|		}
 3280|  7.38k|		if ((state == SCTP_COMM_UP) || (state == SCTP_RESTART)) {
  ------------------
  |  |  327|  7.38k|#define SCTP_COMM_UP            0x0001
  ------------------
              		if ((state == SCTP_COMM_UP) || (state == SCTP_RESTART)) {
  ------------------
  |  |  329|  1.74k|#define SCTP_RESTART            0x0003
  ------------------
  |  Branch (3280:7): [True: 5.64k, False: 1.74k]
  |  Branch (3280:34): [True: 0, False: 1.74k]
  ------------------
 3281|  5.64k|			notif_len += SCTP_ASSOC_SUPPORTS_MAX;
  ------------------
  |  |  340|  5.64k|#define SCTP_ASSOC_SUPPORTS_MAX			0x06
  ------------------
 3282|  5.64k|		} else if ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC)) {
  ------------------
  |  |  328|  1.74k|#define SCTP_COMM_LOST          0x0002
  ------------------
              		} else if ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC)) {
  ------------------
  |  |  331|    723|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
  |  Branch (3282:14): [True: 1.02k, False: 723]
  |  Branch (3282:43): [True: 722, False: 1]
  ------------------
 3283|  1.74k|			notif_len += abort_len;
 3284|  1.74k|		}
 3285|  7.38k|		m_notify = sctp_get_mbuf_for_msg(notif_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  7.38k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              		m_notify = sctp_get_mbuf_for_msg(notif_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|  7.38k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3286|  7.38k|		if (m_notify == NULL) {
  ------------------
  |  Branch (3286:7): [True: 0, False: 7.38k]
  ------------------
 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|  7.38k|		SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|  7.38k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  7.38k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3295|  7.38k|		sac = mtod(m_notify, struct sctp_assoc_change *);
  ------------------
  |  |   96|  7.38k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  7.38k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3296|  7.38k|		memset(sac, 0, notif_len);
 3297|  7.38k|		sac->sac_type = SCTP_ASSOC_CHANGE;
  ------------------
  |  |  553|  7.38k|#define SCTP_ASSOC_CHANGE                       0x0001
  ------------------
 3298|  7.38k|		sac->sac_flags = 0;
 3299|  7.38k|		sac->sac_length = sizeof(struct sctp_assoc_change);
 3300|  7.38k|		sac->sac_state = state;
 3301|  7.38k|		sac->sac_error = error;
 3302|  7.38k|		if (state == SCTP_CANT_STR_ASSOC) {
  ------------------
  |  |  331|  7.38k|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
  |  Branch (3302:7): [True: 722, False: 6.66k]
  ------------------
 3303|    722|			sac->sac_outbound_streams = 0;
 3304|    722|			sac->sac_inbound_streams = 0;
 3305|  6.66k|		} else {
 3306|  6.66k|			sac->sac_outbound_streams = stcb->asoc.streamoutcnt;
 3307|  6.66k|			sac->sac_inbound_streams = stcb->asoc.streamincnt;
 3308|  6.66k|		}
 3309|  7.38k|		sac->sac_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|  7.38k|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3310|  7.38k|		if (notif_len > sizeof(struct sctp_assoc_change)) {
  ------------------
  |  Branch (3310:7): [True: 5.73k, False: 1.65k]
  ------------------
 3311|  5.73k|			if ((state == SCTP_COMM_UP) || (state == SCTP_RESTART)) {
  ------------------
  |  |  327|  5.73k|#define SCTP_COMM_UP            0x0001
  ------------------
              			if ((state == SCTP_COMM_UP) || (state == SCTP_RESTART)) {
  ------------------
  |  |  329|     93|#define SCTP_RESTART            0x0003
  ------------------
  |  Branch (3311:8): [True: 5.64k, False: 93]
  |  Branch (3311:35): [True: 0, False: 93]
  ------------------
 3312|  5.64k|				i = 0;
 3313|  5.64k|				if (stcb->asoc.prsctp_supported == 1) {
  ------------------
  |  Branch (3313:9): [True: 5.61k, False: 22]
  ------------------
 3314|  5.61k|					sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_PR;
  ------------------
  |  |  334|  5.61k|#define SCTP_ASSOC_SUPPORTS_PR			0x01
  ------------------
 3315|  5.61k|				}
 3316|  5.64k|				if (stcb->asoc.auth_supported == 1) {
  ------------------
  |  Branch (3316:9): [True: 5.64k, False: 0]
  ------------------
 3317|  5.64k|					sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_AUTH;
  ------------------
  |  |  335|  5.64k|#define SCTP_ASSOC_SUPPORTS_AUTH		0x02
  ------------------
 3318|  5.64k|				}
 3319|  5.64k|				if (stcb->asoc.asconf_supported == 1) {
  ------------------
  |  Branch (3319:9): [True: 5.63k, False: 5]
  ------------------
 3320|  5.63k|					sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_ASCONF;
  ------------------
  |  |  336|  5.63k|#define SCTP_ASSOC_SUPPORTS_ASCONF		0x03
  ------------------
 3321|  5.63k|				}
 3322|  5.64k|				if (stcb->asoc.idata_supported == 1) {
  ------------------
  |  Branch (3322:9): [True: 2.87k, False: 2.76k]
  ------------------
 3323|  2.87k|					sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_INTERLEAVING;
  ------------------
  |  |  339|  2.87k|#define SCTP_ASSOC_SUPPORTS_INTERLEAVING	0x06
  ------------------
 3324|  2.87k|				}
 3325|  5.64k|				sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_MULTIBUF;
  ------------------
  |  |  337|  5.64k|#define SCTP_ASSOC_SUPPORTS_MULTIBUF		0x04
  ------------------
 3326|  5.64k|				if (stcb->asoc.reconfig_supported == 1) {
  ------------------
  |  Branch (3326:9): [True: 5.64k, False: 0]
  ------------------
 3327|  5.64k|					sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_RE_CONFIG;
  ------------------
  |  |  338|  5.64k|#define SCTP_ASSOC_SUPPORTS_RE_CONFIG		0x05
  ------------------
 3328|  5.64k|				}
 3329|  5.64k|				sac->sac_length += i;
 3330|  5.64k|			} else if ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC)) {
  ------------------
  |  |  328|     93|#define SCTP_COMM_LOST          0x0002
  ------------------
              			} else if ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC)) {
  ------------------
  |  |  331|     66|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
  |  Branch (3330:15): [True: 27, False: 66]
  |  Branch (3330:44): [True: 66, False: 0]
  ------------------
 3331|     93|				memcpy(sac->sac_info, abort, abort_len);
 3332|     93|				sac->sac_length += abort_len;
 3333|     93|			}
 3334|  5.73k|		}
 3335|  7.38k|		SCTP_BUF_LEN(m_notify) = sac->sac_length;
  ------------------
  |  |  801|  7.38k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  7.38k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3336|  7.38k|		control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3337|  7.38k|		                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3338|  7.38k|		                                 m_notify);
 3339|  7.38k|		if (control != NULL) {
  ------------------
  |  Branch (3339:7): [True: 7.38k, False: 0]
  ------------------
 3340|  7.38k|			control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|  7.38k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  7.38k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3341|  7.38k|			control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|  7.38k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|  7.38k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3342|       |			/* not that we need this */
 3343|  7.38k|			control->tail_mbuf = m_notify;
 3344|  7.38k|			sctp_add_to_readq(inp, stcb, control,
 3345|  7.38k|			                  &stcb->sctp_socket->so_rcv, 1,
 3346|  7.38k|			                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|  7.38k|#define SCTP_READ_LOCK_HELD 1
  ------------------
 3347|  7.38k|		} else {
 3348|      0|			sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3349|      0|		}
 3350|  7.38k|	}
 3351|       |	/*
 3352|       |	 * For 1-to-1 style sockets, we send up and error when an ABORT
 3353|       |	 * comes in.
 3354|       |	 */
 3355|  7.38k|set_error:
 3356|  7.38k|	if (((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|  7.38k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (3356:7): [True: 7.38k, 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|  7.38k|	    ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC))) {
  ------------------
  |  |  328|  7.38k|#define SCTP_COMM_LOST          0x0002
  ------------------
              	    ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC))) {
  ------------------
  |  |  331|  6.36k|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
  |  Branch (3358:7): [True: 1.02k, False: 6.36k]
  |  Branch (3358:36): [True: 722, False: 5.64k]
  ------------------
 3359|  1.74k|		SOCK_LOCK(stcb->sctp_socket);
  ------------------
  |  |  527|  1.74k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3360|  1.74k|		if (from_peer) {
  ------------------
  |  Branch (3360:7): [True: 93, False: 1.65k]
  ------------------
 3361|     93|			if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  472|     93|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|     93|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              			if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_WAIT) {
  ------------------
  |  |  457|     93|#define SCTP_STATE_COOKIE_WAIT		0x0002
  ------------------
  |  Branch (3361:8): [True: 55, False: 38]
  ------------------
 3362|     55|				SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, ECONNREFUSED);
 3363|     55|				stcb->sctp_socket->so_error = ECONNREFUSED;
 3364|     55|			} else {
 3365|     38|				SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, ECONNRESET);
 3366|     38|				stcb->sctp_socket->so_error = ECONNRESET;
 3367|     38|			}
 3368|  1.65k|		} else {
 3369|  1.65k|			if (timedout) {
  ------------------
  |  Branch (3369:8): [True: 0, False: 1.65k]
  ------------------
 3370|      0|				SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, ETIMEDOUT);
 3371|      0|				stcb->sctp_socket->so_error = ETIMEDOUT;
 3372|  1.65k|			} else {
 3373|  1.65k|				SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, ECONNABORTED);
 3374|  1.65k|				stcb->sctp_socket->so_error = ECONNABORTED;
 3375|  1.65k|			}
 3376|  1.65k|		}
 3377|  1.74k|		SOCK_UNLOCK(stcb->sctp_socket);
  ------------------
  |  |  529|  1.74k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  1.74k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx 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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3378|  1.74k|	}
 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|  7.38k|	if (((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|  7.38k|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (3394:7): [True: 7.38k, 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|  7.38k|	    ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC))) {
  ------------------
  |  |  328|  7.38k|#define SCTP_COMM_LOST          0x0002
  ------------------
              	    ((state == SCTP_COMM_LOST) || (state == SCTP_CANT_STR_ASSOC))) {
  ------------------
  |  |  331|  6.36k|#define SCTP_CANT_STR_ASSOC     0x0005
  ------------------
  |  Branch (3396:7): [True: 1.02k, False: 6.36k]
  |  Branch (3396:36): [True: 722, False: 5.64k]
  ------------------
 3397|  1.74k|		socantrcvmore(stcb->sctp_socket);
 3398|  1.74k|	}
 3399|  7.38k|	sorwakeup(stcb->sctp_socket);
  ------------------
  |  |  519|  7.38k|#define	sorwakeup(so) do {						\
  |  |  520|  7.38k|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  ------------------
  |  |  |  |  517|  7.38k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  7.38k|	do {                         \
  |  |  |  |  |  |  113|  7.38k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 7.38k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.38k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 7.38k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  521|  7.38k|	sorwakeup_locked(so);						\
  |  |  ------------------
  |  |  |  |  511|  7.38k|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  512|  7.38k|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  7.38k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  7.38k|	do {                         \
  |  |  |  |  |  |  |  |  113|  7.38k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 7.38k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.38k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 7.38k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  513|  7.38k|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  499|  7.38k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  203|  7.38k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  204|  7.38k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  205|  7.38k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (499:23): [True: 7.38k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  500|  7.38k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  206|  7.38k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  208|  7.38k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  209|  7.38k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  514|  7.38k|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  515|  7.38k|	else								\
  |  |  |  |  516|  7.38k|		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|  7.38k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (517:10): [Folded, False: 7.38k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  522|  7.38k|} while (0)
  |  |  ------------------
  |  |  |  Branch (522:10): [Folded, False: 7.38k]
  |  |  ------------------
  ------------------
 3400|  7.38k|	sowwakeup(stcb->sctp_socket);
  ------------------
  |  |  532|  7.38k|#define	sowwakeup(so) do {						\
  |  |  533|  7.38k|	SOCKBUF_LOCK(&(so)->so_snd);					\
  |  |  ------------------
  |  |  |  |  517|  7.38k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  7.38k|	do {                         \
  |  |  |  |  |  |  113|  7.38k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 7.38k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.38k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 7.38k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  534|  7.38k|	sowwakeup_locked(so);						\
  |  |  ------------------
  |  |  |  |  524|  7.38k|#define	sowwakeup_locked(so) do {					\
  |  |  |  |  525|  7.38k|	SOCKBUF_LOCK_ASSERT(&(so)->so_snd);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  7.38k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  7.38k|	do {                         \
  |  |  |  |  |  |  |  |  113|  7.38k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 7.38k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.38k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 7.38k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  526|  7.38k|	if (sb_notify(&(so)->so_snd))					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  499|  7.38k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  203|  7.38k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  204|  7.38k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  205|  7.38k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (499:23): [True: 7.38k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  500|  7.38k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  206|  7.38k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  208|  7.38k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  209|  7.38k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  527|  7.38k|		sowakeup((so), &(so)->so_snd); 				\
  |  |  |  |  528|  7.38k|	else								\
  |  |  |  |  529|  7.38k|		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|  7.38k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (530:10): [Folded, False: 7.38k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  535|  7.38k|} while (0)
  |  |  ------------------
  |  |  |  Branch (535:10): [Folded, False: 7.38k]
  |  |  ------------------
  ------------------
 3401|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3402|       |	if (!so_locked) {
 3403|       |		SCTP_SOCKET_UNLOCK(so, 1);
 3404|       |	}
 3405|       |#endif
 3406|  7.38k|}
sctputil.c:sctp_notify_adaptation_layer:
 3745|  5.64k|{
 3746|  5.64k|	struct mbuf *m_notify;
 3747|  5.64k|	struct sctp_adaptation_event *sai;
 3748|  5.64k|	struct sctp_queued_to_read *control;
 3749|       |
 3750|  5.64k|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|  5.64k|	do {                         \
  |  |  113|  5.64k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.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|  5.64k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.64k]
  |  |  ------------------
  ------------------
 3751|  5.64k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  5.64k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.64k|	do {                         \
  |  |  |  |  113|  5.64k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.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|  5.64k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.64k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3752|  5.64k|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|  5.64k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  5.64k|	do {                         \
  |  |  |  |  113|  5.64k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.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|  5.64k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.64k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3753|       |
 3754|  5.64k|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_ADAPTATIONEVNT)) {
  ------------------
  |  |   75|  5.64k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 5.64k, False: 0]
  |  |  ------------------
  |  |   76|  5.64k|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 5.64k]
  |  |  ------------------
  |  |   77|  5.64k|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 5.64k]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|  5.64k|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|  5.64k|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 5.64k]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3755|       |		/* event not enabled */
 3756|      0|		return;
 3757|      0|	}
 3758|       |
 3759|  5.64k|	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_adaption_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  5.64k|#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.64k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3760|  5.64k|	if (m_notify == NULL)
  ------------------
  |  Branch (3760:6): [True: 0, False: 5.64k]
  ------------------
 3761|       |		/* no space left */
 3762|      0|		return;
 3763|  5.64k|	SCTP_BUF_LEN(m_notify) = 0;
  ------------------
  |  |  801|  5.64k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  5.64k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3764|  5.64k|	sai = mtod(m_notify, struct sctp_adaptation_event *);
  ------------------
  |  |   96|  5.64k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  5.64k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3765|  5.64k|	memset(sai, 0, sizeof(struct sctp_adaptation_event));
 3766|  5.64k|	sai->sai_type = SCTP_ADAPTATION_INDICATION;
  ------------------
  |  |  558|  5.64k|#define SCTP_ADAPTATION_INDICATION              0x0006
  ------------------
 3767|  5.64k|	sai->sai_flags = 0;
 3768|  5.64k|	sai->sai_length = sizeof(struct sctp_adaptation_event);
 3769|  5.64k|	sai->sai_adaptation_ind = stcb->asoc.peers_adaptation;
 3770|  5.64k|	sai->sai_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|  5.64k|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3771|       |
 3772|  5.64k|	SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_adaptation_event);
  ------------------
  |  |  801|  5.64k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  5.64k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3773|  5.64k|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|  5.64k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  5.64k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3774|       |
 3775|       |	/* append to socket */
 3776|  5.64k|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3777|  5.64k|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3778|  5.64k|	                                 m_notify);
 3779|  5.64k|	if (control == NULL) {
  ------------------
  |  Branch (3779:6): [True: 0, False: 5.64k]
  ------------------
 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.64k|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|  5.64k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  5.64k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3785|  5.64k|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|  5.64k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|  5.64k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3786|       |	/* not that we need this */
 3787|  5.64k|	control->tail_mbuf = m_notify;
 3788|  5.64k|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 3789|  5.64k|	                  &stcb->sctp_socket->so_rcv, 1,
 3790|  5.64k|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|  5.64k|#define SCTP_READ_LOCK_HELD 1
  ------------------
 3791|  5.64k|}
sctputil.c:sctp_notify_peer_addr_change:
 3411|  88.3k|{
 3412|  88.3k|	struct mbuf *m_notify;
 3413|  88.3k|	struct sctp_paddr_change *spc;
 3414|  88.3k|	struct sctp_queued_to_read *control;
 3415|       |
 3416|  88.3k|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|  88.3k|	do {                         \
  |  |  113|  88.3k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 88.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|  88.3k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 88.3k]
  |  |  ------------------
  ------------------
 3417|  88.3k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|  88.3k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  88.3k|	do {                         \
  |  |  |  |  113|  88.3k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 88.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|  88.3k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 88.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3418|  88.3k|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|  88.3k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  88.3k|	do {                         \
  |  |  |  |  113|  88.3k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 88.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|  88.3k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 88.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3419|       |
 3420|  88.3k|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVPADDREVNT)) {
  ------------------
  |  |   75|  88.3k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 88.3k, False: 0]
  |  |  ------------------
  |  |   76|  88.3k|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 88.3k]
  |  |  ------------------
  |  |   77|  88.3k|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 88.3k]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|  88.3k|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|  88.3k|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 88.3k]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3421|       |		/* event not enabled */
 3422|      0|		return;
 3423|      0|	}
 3424|       |
 3425|  88.3k|	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_paddr_change), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|  88.3k|#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|  88.3k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3426|  88.3k|	if (m_notify == NULL)
  ------------------
  |  Branch (3426:6): [True: 0, False: 88.3k]
  ------------------
 3427|      0|		return;
 3428|  88.3k|	SCTP_BUF_LEN(m_notify) = 0;
  ------------------
  |  |  801|  88.3k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  88.3k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3429|  88.3k|	spc = mtod(m_notify, struct sctp_paddr_change *);
  ------------------
  |  |   96|  88.3k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  88.3k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3430|  88.3k|	memset(spc, 0, sizeof(struct sctp_paddr_change));
 3431|  88.3k|	spc->spc_type = SCTP_PEER_ADDR_CHANGE;
  ------------------
  |  |  554|  88.3k|#define SCTP_PEER_ADDR_CHANGE                   0x0002
  ------------------
 3432|  88.3k|	spc->spc_flags = 0;
 3433|  88.3k|	spc->spc_length = sizeof(struct sctp_paddr_change);
 3434|  88.3k|	switch (sa->sa_family) {
 3435|      0|#ifdef INET
 3436|  80.4k|	case AF_INET:
  ------------------
  |  Branch (3436:2): [True: 80.4k, False: 7.93k]
  ------------------
 3437|  80.4k|#ifdef INET6
 3438|  80.4k|		if (sctp_is_feature_on(stcb->sctp_ep, SCTP_PCB_FLAGS_NEEDS_MAPPED_V4)) {
  ------------------
  |  |   52|  80.4k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 0, False: 80.4k]
  |  |  ------------------
  ------------------
 3439|      0|			in6_sin_2_v4mapsin6((struct sockaddr_in *)sa,
 3440|      0|			                    (struct sockaddr_in6 *)&spc->spc_aaddr);
 3441|  80.4k|		} else {
 3442|  80.4k|			memcpy(&spc->spc_aaddr, sa, sizeof(struct sockaddr_in));
 3443|  80.4k|		}
 3444|       |#else
 3445|       |		memcpy(&spc->spc_aaddr, sa, sizeof(struct sockaddr_in));
 3446|       |#endif
 3447|  80.4k|		break;
 3448|      0|#endif
 3449|      0|#ifdef INET6
 3450|  7.42k|	case AF_INET6:
  ------------------
  |  Branch (3450:2): [True: 7.42k, False: 80.9k]
  ------------------
 3451|  7.42k|	{
 3452|       |#ifdef SCTP_EMBEDDED_V6_SCOPE
 3453|       |		struct sockaddr_in6 *sin6;
 3454|       |#endif /* SCTP_EMBEDDED_V6_SCOPE */
 3455|  7.42k|		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|  7.42k|		break;
 3475|      0|	}
 3476|      0|#endif
 3477|      0|#if defined(__Userspace__)
 3478|    504|	case AF_CONN:
  ------------------
  |  | 1014|    504|#define AF_CONN 123
  ------------------
  |  Branch (3478:2): [True: 504, False: 87.8k]
  ------------------
 3479|    504|		memcpy(&spc->spc_aaddr, sa, sizeof(struct sockaddr_conn));
 3480|    504|		break;
 3481|      0|#endif
 3482|      0|	default:
  ------------------
  |  Branch (3482:2): [True: 0, False: 88.3k]
  ------------------
 3483|       |		/* TSNH */
 3484|      0|		break;
 3485|  88.3k|	}
 3486|  88.3k|	spc->spc_state = state;
 3487|  88.3k|	spc->spc_error = error;
 3488|  88.3k|	spc->spc_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|  88.3k|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3489|       |
 3490|  88.3k|	SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_paddr_change);
  ------------------
  |  |  801|  88.3k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  88.3k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3491|  88.3k|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|  88.3k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|  88.3k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3492|       |
 3493|       |	/* append to socket */
 3494|  88.3k|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3495|  88.3k|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3496|  88.3k|	                                 m_notify);
 3497|  88.3k|	if (control == NULL) {
  ------------------
  |  Branch (3497:6): [True: 0, False: 88.3k]
  ------------------
 3498|       |		/* no memory */
 3499|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3500|      0|		return;
 3501|      0|	}
 3502|  88.3k|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|  88.3k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  88.3k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3503|  88.3k|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|  88.3k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|  88.3k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3504|       |	/* not that we need this */
 3505|  88.3k|	control->tail_mbuf = m_notify;
 3506|  88.3k|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 3507|  88.3k|	                  &stcb->sctp_socket->so_rcv, 1,
 3508|  88.3k|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|  88.3k|#define SCTP_READ_LOCK_HELD 1
  ------------------
 3509|  88.3k|}
sctputil.c:sctp_notify_send_failed2:
 3646|    535|{
 3647|    535|	struct mbuf *m_notify;
 3648|    535|	struct sctp_send_failed *ssf;
 3649|    535|	struct sctp_send_failed_event *ssfe;
 3650|    535|	struct sctp_queued_to_read *control;
 3651|    535|	int notifhdr_len;
 3652|       |
 3653|    535|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|    535|	do {                         \
  |  |  113|    535|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 535]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|    535|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 535]
  |  |  ------------------
  ------------------
 3654|    535|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    535|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    535|	do {                         \
  |  |  |  |  113|    535|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 535]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    535|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 535]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3655|    535|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|    535|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    535|	do {                         \
  |  |  |  |  113|    535|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 535]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    535|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 535]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3656|       |
 3657|    535|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVSENDFAILEVNT) &&
  ------------------
  |  |   75|  1.07k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 535, False: 0]
  |  |  ------------------
  |  |   76|    535|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 535]
  |  |  ------------------
  |  |   77|    535|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 535]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|    535|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|  1.07k|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 535]
  |  |  |  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|    535|	if (sctp_stcb_is_feature_on(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVNSENDFAILEVNT)) {
  ------------------
  |  |   70|    535|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 535, False: 0]
  |  |  ------------------
  |  |   71|    535|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 535, False: 0]
  |  |  ------------------
  |  |   72|    535|	 ((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|    535|		notifhdr_len = sizeof(struct sctp_send_failed_event);
 3665|    535|	} else {
 3666|      0|		notifhdr_len = sizeof(struct sctp_send_failed);
 3667|      0|	}
 3668|    535|	m_notify = sctp_get_mbuf_for_msg(notifhdr_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    535|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(notifhdr_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    535|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3669|    535|	if (m_notify == NULL) {
  ------------------
  |  Branch (3669:6): [True: 0, False: 535]
  ------------------
 3670|       |		/* no space left */
 3671|      0|		return;
 3672|      0|	}
 3673|    535|	SCTP_BUF_LEN(m_notify) = notifhdr_len;
  ------------------
  |  |  801|    535|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    535|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3674|    535|	if (sctp_stcb_is_feature_on(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVNSENDFAILEVNT)) {
  ------------------
  |  |   70|    535|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 535, False: 0]
  |  |  ------------------
  |  |   71|    535|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 535, False: 0]
  |  |  ------------------
  |  |   72|    535|	 ((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|    535|		ssfe = mtod(m_notify, struct sctp_send_failed_event *);
  ------------------
  |  |   96|    535|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    535|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3676|    535|		memset(ssfe, 0, notifhdr_len);
 3677|    535|		ssfe->ssfe_type = SCTP_SEND_FAILED_EVENT;
  ------------------
  |  |  568|    535|#define SCTP_SEND_FAILED_EVENT                  0x000e
  ------------------
 3678|    535|		ssfe->ssfe_flags = SCTP_DATA_UNSENT;
  ------------------
  |  |  400|    535|#define SCTP_DATA_UNSENT	0x0001	/* inqueue never on wire */
  ------------------
 3679|    535|		ssfe->ssfe_length = (uint32_t)(notifhdr_len + sp->length);
 3680|    535|		ssfe->ssfe_error = error;
 3681|       |		/* not exactly what the user sent in, but should be close :) */
 3682|    535|		ssfe->ssfe_info.snd_sid = sp->sid;
 3683|    535|		if (sp->some_taken) {
  ------------------
  |  Branch (3683:7): [True: 0, False: 535]
  ------------------
 3684|      0|			ssfe->ssfe_info.snd_flags = SCTP_DATA_LAST_FRAG;
  ------------------
  |  |  512|      0|#define SCTP_DATA_LAST_FRAG        0x01
  ------------------
 3685|    535|		} else {
 3686|    535|			ssfe->ssfe_info.snd_flags = SCTP_DATA_NOT_FRAG;
  ------------------
  |  |  514|    535|#define SCTP_DATA_NOT_FRAG         0x03
  ------------------
 3687|    535|		}
 3688|    535|		ssfe->ssfe_info.snd_ppid = sp->ppid;
 3689|    535|		ssfe->ssfe_info.snd_context = sp->context;
 3690|    535|		ssfe->ssfe_info.snd_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|    535|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3691|    535|		ssfe->ssfe_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|    535|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3692|    535|	} 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|    535|	SCTP_BUF_NEXT(m_notify) = sp->data;
  ------------------
  |  |  802|    535|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    535|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3713|       |
 3714|       |	/* Steal off the mbuf */
 3715|    535|	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|    535|	if (sctp_sbspace_failedmsgs(&stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |   91|    535|#define	sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > SCTP_SBAVAIL(sb)) ? (sctp_maxspace(sb) - SCTP_SBAVAIL(sb)) : 0))
  |  |  ------------------
  |  |  |  |   87|    535|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    535|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 535, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > SCTP_SBAVAIL(sb)) ? (sctp_maxspace(sb) - SCTP_SBAVAIL(sb)) : 0))
  |  |  ------------------
  |  |  |  |  968|    535|#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|    532|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    532|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 532, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > SCTP_SBAVAIL(sb)) ? (sctp_maxspace(sb) - SCTP_SBAVAIL(sb)) : 0))
  |  |  ------------------
  |  |  |  |  968|    532|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  |  |  ------------------
  |  |  |  Branch (91:46): [True: 532, False: 3]
  |  |  ------------------
  ------------------
              	if (sctp_sbspace_failedmsgs(&stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |  801|    535|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    535|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (3721:6): [True: 5, False: 530]
  ------------------
 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|    530|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3727|    530|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3728|    530|	                                 m_notify);
 3729|    530|	if (control == NULL) {
  ------------------
  |  Branch (3729:6): [True: 0, False: 530]
  ------------------
 3730|       |		/* no memory */
 3731|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3732|      0|		return;
 3733|      0|	}
 3734|    530|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|    530|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    530|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3735|    530|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|    530|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|    530|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3736|       |	/* not that we need this */
 3737|    530|	control->tail_mbuf = m_notify;
 3738|    530|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 3739|    530|	                  &stcb->sctp_socket->so_rcv, 1,
 3740|    530|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|    530|#define SCTP_READ_LOCK_HELD 1
  ------------------
 3741|    530|}
sctputil.c:sctp_notify_send_failed:
 3514|    658|{
 3515|    658|	struct mbuf *m_notify;
 3516|    658|	struct sctp_send_failed *ssf;
 3517|    658|	struct sctp_send_failed_event *ssfe;
 3518|    658|	struct sctp_queued_to_read *control;
 3519|    658|	struct sctp_chunkhdr *chkhdr;
 3520|    658|	int notifhdr_len, chk_len, chkhdr_len, padding_len, payload_len;
 3521|       |
 3522|    658|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|    658|	do {                         \
  |  |  113|    658|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 658]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|    658|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 658]
  |  |  ------------------
  ------------------
 3523|    658|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    658|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    658|	do {                         \
  |  |  |  |  113|    658|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 658]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    658|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 658]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3524|    658|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|    658|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    658|	do {                         \
  |  |  |  |  113|    658|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 658]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    658|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 658]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3525|       |
 3526|    658|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVSENDFAILEVNT) &&
  ------------------
  |  |   75|  1.31k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 658, False: 0]
  |  |  ------------------
  |  |   76|    658|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 658]
  |  |  ------------------
  |  |   77|    658|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 658]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|    658|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|  1.31k|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 658]
  |  |  |  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|    658|	if (sctp_stcb_is_feature_on(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVNSENDFAILEVNT)) {
  ------------------
  |  |   70|    658|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 658, False: 0]
  |  |  ------------------
  |  |   71|    658|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 658, False: 0]
  |  |  ------------------
  |  |   72|    658|	 ((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|    658|		notifhdr_len = sizeof(struct sctp_send_failed_event);
 3534|    658|	} else {
 3535|      0|		notifhdr_len = sizeof(struct sctp_send_failed);
 3536|      0|	}
 3537|    658|	m_notify = sctp_get_mbuf_for_msg(notifhdr_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    658|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(notifhdr_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    658|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3538|    658|	if (m_notify == NULL)
  ------------------
  |  Branch (3538:6): [True: 0, False: 658]
  ------------------
 3539|       |		/* no space left */
 3540|      0|		return;
 3541|    658|	SCTP_BUF_LEN(m_notify) = notifhdr_len;
  ------------------
  |  |  801|    658|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    658|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3542|    658|	if (stcb->asoc.idata_supported) {
  ------------------
  |  Branch (3542:6): [True: 519, False: 139]
  ------------------
 3543|    519|		chkhdr_len = sizeof(struct sctp_idata_chunk);
 3544|    519|	} else {
 3545|    139|		chkhdr_len = sizeof(struct sctp_data_chunk);
 3546|    139|	}
 3547|       |	/* Use some defaults in case we can't access the chunk header */
 3548|    658|	if (chk->send_size >= chkhdr_len) {
  ------------------
  |  Branch (3548:6): [True: 658, False: 0]
  ------------------
 3549|    658|		payload_len = chk->send_size - chkhdr_len;
 3550|    658|	} else {
 3551|      0|		payload_len = 0;
 3552|      0|	}
 3553|    658|	padding_len = 0;
 3554|    658|	if (chk->data != NULL) {
  ------------------
  |  Branch (3554:6): [True: 658, False: 0]
  ------------------
 3555|    658|		chkhdr = mtod(chk->data, struct sctp_chunkhdr *);
  ------------------
  |  |   96|    658|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    658|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3556|    658|		if (chkhdr != NULL) {
  ------------------
  |  Branch (3556:7): [True: 658, False: 0]
  ------------------
 3557|    658|			chk_len = ntohs(chkhdr->chunk_length);
 3558|    658|			if ((chk_len >= chkhdr_len) &&
  ------------------
  |  Branch (3558:8): [True: 658, False: 0]
  ------------------
 3559|    658|			    (chk->send_size >= chk_len) &&
  ------------------
  |  Branch (3559:8): [True: 658, False: 0]
  ------------------
 3560|    658|			    (chk->send_size - chk_len < 4)) {
  ------------------
  |  Branch (3560:8): [True: 658, False: 0]
  ------------------
 3561|    658|				padding_len = chk->send_size - chk_len;
 3562|    658|				payload_len = chk->send_size - chkhdr_len - padding_len;
 3563|    658|			}
 3564|    658|		}
 3565|    658|	}
 3566|    658|	if (sctp_stcb_is_feature_on(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVNSENDFAILEVNT)) {
  ------------------
  |  |   70|    658|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 658, False: 0]
  |  |  ------------------
  |  |   71|    658|	  ((stcb->asoc.sctp_features & feature) == feature)) || \
  |  |  ------------------
  |  |  |  Branch (71:4): [True: 658, False: 0]
  |  |  ------------------
  |  |   72|    658|	 ((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|    658|		ssfe = mtod(m_notify, struct sctp_send_failed_event *);
  ------------------
  |  |   96|    658|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    658|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3568|    658|		memset(ssfe, 0, notifhdr_len);
 3569|    658|		ssfe->ssfe_type = SCTP_SEND_FAILED_EVENT;
  ------------------
  |  |  568|    658|#define SCTP_SEND_FAILED_EVENT                  0x000e
  ------------------
 3570|    658|		if (sent) {
  ------------------
  |  Branch (3570:7): [True: 631, False: 27]
  ------------------
 3571|    631|			ssfe->ssfe_flags = SCTP_DATA_SENT;
  ------------------
  |  |  401|    631|#define SCTP_DATA_SENT		0x0002	/* on wire at failure */
  ------------------
 3572|    631|		} else {
 3573|     27|			ssfe->ssfe_flags = SCTP_DATA_UNSENT;
  ------------------
  |  |  400|     27|#define SCTP_DATA_UNSENT	0x0001	/* inqueue never on wire */
  ------------------
 3574|     27|		}
 3575|    658|		ssfe->ssfe_length = (uint32_t)(notifhdr_len + payload_len);
 3576|    658|		ssfe->ssfe_error = error;
 3577|       |		/* not exactly what the user sent in, but should be close :) */
 3578|    658|		ssfe->ssfe_info.snd_sid = chk->rec.data.sid;
 3579|    658|		ssfe->ssfe_info.snd_flags = chk->rec.data.rcv_flags;
 3580|    658|		ssfe->ssfe_info.snd_ppid = chk->rec.data.ppid;
 3581|    658|		ssfe->ssfe_info.snd_context = chk->rec.data.context;
 3582|    658|		ssfe->ssfe_info.snd_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|    658|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3583|    658|		ssfe->ssfe_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|    658|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3584|    658|	} 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|    658|	if (chk->data != NULL) {
  ------------------
  |  Branch (3604:6): [True: 658, False: 0]
  ------------------
 3605|       |		/* Trim off the sctp chunk header (it should be there) */
 3606|    658|		if (chk->send_size == chkhdr_len + payload_len + padding_len) {
  ------------------
  |  Branch (3606:7): [True: 658, False: 0]
  ------------------
 3607|    658|			m_adj(chk->data, chkhdr_len);
 3608|    658|			m_adj(chk->data, -padding_len);
 3609|    658|			sctp_mbuf_crush(chk->data);
  ------------------
  |  |  278|    658|#define sctp_mbuf_crush(data) do { \
  |  |  279|    658|	struct mbuf *_m; \
  |  |  280|    658|	_m = (data); \
  |  |  281|    658|	while (_m && (SCTP_BUF_LEN(_m) == 0)) { \
  |  |  ------------------
  |  |  |  |  801|    658|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  |  |  ------------------
  |  |  |  |  |  |  218|    658|#define	m_len		m_hdr.mh_len
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (281:9): [True: 658, False: 0]
  |  |  |  Branch (281:15): [True: 0, False: 658]
  |  |  ------------------
  |  |  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|    658|} while (0)
  |  |  ------------------
  |  |  |  Branch (287:10): [Folded, False: 658]
  |  |  ------------------
  ------------------
 3610|    658|			chk->send_size -= (chkhdr_len + padding_len);
 3611|    658|		}
 3612|    658|	}
 3613|    658|	SCTP_BUF_NEXT(m_notify) = chk->data;
  ------------------
  |  |  802|    658|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    658|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3614|       |	/* Steal off the mbuf */
 3615|    658|	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|    658|	if (sctp_sbspace_failedmsgs(&stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |   91|    658|#define	sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > SCTP_SBAVAIL(sb)) ? (sctp_maxspace(sb) - SCTP_SBAVAIL(sb)) : 0))
  |  |  ------------------
  |  |  |  |   87|    658|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    658|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 658, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > SCTP_SBAVAIL(sb)) ? (sctp_maxspace(sb) - SCTP_SBAVAIL(sb)) : 0))
  |  |  ------------------
  |  |  |  |  968|    658|#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|    651|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    651|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 651, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace_failedmsgs(sb) ((long) ((sctp_maxspace(sb) > SCTP_SBAVAIL(sb)) ? (sctp_maxspace(sb) - SCTP_SBAVAIL(sb)) : 0))
  |  |  ------------------
  |  |  |  |  968|    651|#define SCTP_SBAVAIL(sb)	(sb)->sb_cc
  |  |  ------------------
  |  |  |  Branch (91:46): [True: 651, False: 7]
  |  |  ------------------
  ------------------
              	if (sctp_sbspace_failedmsgs(&stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |  801|    658|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    658|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (3621:6): [True: 11, False: 647]
  ------------------
 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|    647|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3627|    647|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3628|    647|	                                 m_notify);
 3629|    647|	if (control == NULL) {
  ------------------
  |  Branch (3629:6): [True: 0, False: 647]
  ------------------
 3630|       |		/* no memory */
 3631|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3632|      0|		return;
 3633|      0|	}
 3634|    647|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|    647|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    647|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3635|    647|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|    647|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|    647|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3636|       |	/* not that we need this */
 3637|    647|	control->tail_mbuf = m_notify;
 3638|    647|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 3639|    647|	                  &stcb->sctp_socket->so_rcv, 1,
 3640|    647|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|    647|#define SCTP_READ_LOCK_HELD 1
  ------------------
 3641|    647|}
sctputil.c:sctp_notify_partial_delivery_indication:
 3797|    885|{
 3798|    885|	struct mbuf *m_notify;
 3799|    885|	struct sctp_pdapi_event *pdapi;
 3800|    885|	struct sctp_queued_to_read *control;
 3801|    885|	struct sockbuf *sb;
 3802|       |
 3803|    885|	KASSERT(aborted_control != NULL, ("aborted_control is NULL"));
  ------------------
  |  |  112|    885|	do {                         \
  |  |  113|    885|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 885]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|    885|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 885]
  |  |  ------------------
  ------------------
 3804|    885|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|    885|	do {                         \
  |  |  113|    885|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 885]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|    885|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 885]
  |  |  ------------------
  ------------------
 3805|    885|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    885|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    885|	do {                         \
  |  |  |  |  113|    885|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 885]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    885|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 885]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3806|    885|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|    885|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    885|	do {                         \
  |  |  |  |  113|    885|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 885]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    885|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 885]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3807|       |
 3808|    885|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_PDAPIEVNT)) {
  ------------------
  |  |   75|    885|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 885, False: 0]
  |  |  ------------------
  |  |   76|    885|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 885]
  |  |  ------------------
  |  |   77|    885|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 885]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|    885|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|    885|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 885]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3809|       |		/* event not enabled */
 3810|      0|		return;
 3811|      0|	}
 3812|       |
 3813|    885|	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_pdapi_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    885|#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|    885|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3814|    885|	if (m_notify == NULL)
  ------------------
  |  Branch (3814:6): [True: 0, False: 885]
  ------------------
 3815|       |		/* no space left */
 3816|      0|		return;
 3817|    885|	SCTP_BUF_LEN(m_notify) = 0;
  ------------------
  |  |  801|    885|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    885|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3818|    885|	pdapi = mtod(m_notify, struct sctp_pdapi_event *);
  ------------------
  |  |   96|    885|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    885|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3819|    885|	memset(pdapi, 0, sizeof(struct sctp_pdapi_event));
 3820|    885|	pdapi->pdapi_type = SCTP_PARTIAL_DELIVERY_EVENT;
  ------------------
  |  |  561|    885|#define SCTP_PARTIAL_DELIVERY_EVENT             0x0007
  ------------------
 3821|    885|	pdapi->pdapi_flags = 0;
 3822|    885|	pdapi->pdapi_length = sizeof(struct sctp_pdapi_event);
 3823|    885|	pdapi->pdapi_indication = error;
 3824|    885|	pdapi->pdapi_stream = aborted_control->sinfo_stream;
 3825|    885|	pdapi->pdapi_seq = (uint16_t)aborted_control->mid;
 3826|    885|	pdapi->pdapi_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|    885|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3827|       |
 3828|    885|	SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_pdapi_event);
  ------------------
  |  |  801|    885|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    885|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3829|    885|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|    885|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    885|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3830|    885|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3831|    885|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3832|    885|	                                 m_notify);
 3833|    885|	if (control == NULL) {
  ------------------
  |  Branch (3833:6): [True: 0, False: 885]
  ------------------
 3834|       |		/* no memory */
 3835|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3836|      0|		return;
 3837|      0|	}
 3838|    885|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|    885|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    885|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3839|    885|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|    885|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|    885|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3840|       |	/* not that we need this */
 3841|    885|	control->tail_mbuf = m_notify;
 3842|    885|	sb = &stcb->sctp_socket->so_rcv;
 3843|    885|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|    885|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|    885|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (3843:6): [True: 0, False: 885]
  ------------------
 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|    885|	sctp_sballoc(stcb, sb, m_notify);
  ------------------
  |  |  256|    885|#define sctp_sballoc(stcb, sb, m) { \
  |  |  257|    885|	SCTP_SB_INCR(sb, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |  969|    885|#define SCTP_SB_INCR(sb, incr)			\
  |  |  |  |  970|    885|{						\
  |  |  |  |  971|    885|	atomic_add_int(&(sb)->sb_cc, incr);	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|    885|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  |  |  972|    885|}
  |  |  ------------------
  |  |  258|    885|	atomic_add_int(&(sb)->sb_mbcnt, MSIZE); \
  |  |  ------------------
  |  |  |  |   94|    885|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  259|    885|	if (stcb) { \
  |  |  ------------------
  |  |  |  Branch (259:6): [True: 885, False: 0]
  |  |  ------------------
  |  |  260|    885|		atomic_add_int(&(stcb)->asoc.sb_cc, SCTP_BUF_LEN((m))); \
  |  |  ------------------
  |  |  |  |   94|    885|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  261|    885|		atomic_add_int(&(stcb)->asoc.my_rwnd_control_len, MSIZE); \
  |  |  ------------------
  |  |  |  |   94|    885|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  |  |  262|    885|	} \
  |  |  263|    885|}
  ------------------
 3847|    885|	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  590|    885|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
              	if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
  ------------------
  |  |  657|    885|#define SCTP_SB_LOGGING_ENABLE				0x00010000
  ------------------
  |  Branch (3847:6): [True: 0, False: 885]
  ------------------
 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|    885|	control->end_added = 1;
 3851|    885|	TAILQ_INSERT_AFTER(&stcb->sctp_ep->read_queue, aborted_control, control, next);
  ------------------
  |  Branch (3851:2): [True: 845, False: 40]
  |  Branch (3851:2): [Folded, False: 885]
  ------------------
 3852|    885|	if (stcb->sctp_ep && stcb->sctp_socket) {
  ------------------
  |  Branch (3852:6): [True: 885, False: 0]
  |  Branch (3852:23): [True: 885, 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|    885|		sctp_sorwakeup(stcb->sctp_ep, stcb->sctp_socket);
  ------------------
  |  | 1032|    885|#define sctp_sorwakeup(inp, so) \
  |  | 1033|    885|do { \
  |  | 1034|    885|	if (inp->sctp_flags & SCTP_PCB_FLAGS_DONT_WAKE) { \
  |  |  ------------------
  |  |  |  |  541|  1.77k|#define SCTP_PCB_FLAGS_DONT_WAKE	0x00800000
  |  |  ------------------
  |  |  |  Branch (1034:6): [True: 0, False: 885]
  |  |  ------------------
  |  | 1035|      0|		sctp_pcb_add_flags(inp, SCTP_PCB_FLAGS_WAKEINPUT); \
  |  |  ------------------
  |  |  |  |  543|      0|#define SCTP_PCB_FLAGS_WAKEINPUT	0x02000000
  |  |  ------------------
  |  | 1036|    885|	} else { \
  |  | 1037|    885|		sorwakeup(so); \
  |  |  ------------------
  |  |  |  |  519|    885|#define	sorwakeup(so) do {						\
  |  |  |  |  520|    885|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  517|    885|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|    885|	do {                         \
  |  |  |  |  |  |  |  |  113|    885|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 885]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  116|    885|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 885]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  521|    885|	sorwakeup_locked(so);						\
  |  |  |  |  ------------------
  |  |  |  |  |  |  511|    885|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  |  |  512|    885|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  514|    885|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  112|    885|	do {                         \
  |  |  |  |  |  |  |  |  |  |  113|    885|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 885]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  |  |  |  |  116|    885|	} while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 885]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  513|    885|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  499|    885|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|    885|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  204|    885|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  205|    885|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (499:23): [True: 885, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  500|    885|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|    885|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  208|    885|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|    885|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  514|    885|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  |  |  515|    885|	else								\
  |  |  |  |  |  |  516|    885|		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|    885|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (517:10): [Folded, False: 885]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  522|    885|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (522:10): [Folded, False: 885]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1038|    885|	} \
  |  | 1039|    885|} while (0)
  |  |  ------------------
  |  |  |  Branch (1039:10): [Folded, False: 885]
  |  |  ------------------
  ------------------
 3871|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3872|       |		if (!so_locked) {
 3873|       |			SCTP_SOCKET_UNLOCK(so, 1);
 3874|       |		}
 3875|       |#endif
 3876|    885|	}
 3877|    885|}
sctputil.c:sctp_notify_stream_reset:
 4121|    556|{
 4122|    556|	struct mbuf *m_notify;
 4123|    556|	struct sctp_queued_to_read *control;
 4124|    556|	struct sctp_stream_reset_event *strreset;
 4125|    556|	int len;
 4126|       |
 4127|    556|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|    556|	do {                         \
  |  |  113|    556|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 556]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|    556|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 556]
  |  |  ------------------
  ------------------
 4128|    556|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    556|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    556|	do {                         \
  |  |  |  |  113|    556|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 556]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    556|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 556]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4129|    556|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|    556|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    556|	do {                         \
  |  |  |  |  113|    556|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 556]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    556|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 556]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4130|       |
 4131|    556|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_STREAM_RESETEVNT)) {
  ------------------
  |  |   75|    556|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 556, False: 0]
  |  |  ------------------
  |  |   76|    556|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 556]
  |  |  ------------------
  |  |   77|    556|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 556]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|    556|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|    556|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 556]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4132|       |		/* event not enabled */
 4133|      0|		return;
 4134|      0|	}
 4135|       |
 4136|    556|	m_notify = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   51|    556|#define MCLBYTES 2048
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    556|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|    556|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 4137|    556|	if (m_notify == NULL)
  ------------------
  |  Branch (4137:6): [True: 0, False: 556]
  ------------------
 4138|       |		/* no space left */
 4139|      0|		return;
 4140|    556|	SCTP_BUF_LEN(m_notify) = 0;
  ------------------
  |  |  801|    556|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    556|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4141|    556|	len = sizeof(struct sctp_stream_reset_event) + (number_entries * sizeof(uint16_t));
 4142|    556|	if (len > M_TRAILINGSPACE(m_notify)) {
  ------------------
  |  |  355|    556|	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  221|    556|#define	m_flags		m_hdr.mh_flags
  |  |  ------------------
  |  |               	(((m)->m_flags & M_EXT) ?					\
  |  |  ------------------
  |  |  |  |  233|    556|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  ------------------
  |  |  |  Branch (355:3): [True: 556, False: 0]
  |  |  ------------------
  |  |  356|    556|	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  326|    556|#define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|    556|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               #define	M_WRITABLE(m)	(!((m)->m_flags & M_RDONLY) &&			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  236|    556|#define	M_RDONLY	0x0008	/* associated data is marked read-only */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (326:24): [True: 556, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  327|    556|			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|    556|#define	m_flags		m_hdr.mh_flags
  |  |  |  |  ------------------
  |  |  |  |               			 (!(((m)->m_flags & M_EXT)) ||			\
  |  |  |  |  ------------------
  |  |  |  |  |  |  233|    556|#define	M_EXT		0x0001	/* has associated external storage */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (327:6): [True: 0, False: 556]
  |  |  |  |  ------------------
  |  |  |  |  328|    556|			 (*((m)->m_ext.ref_cnt) == 1)) )		\
  |  |  |  |  ------------------
  |  |  |  |  |  |  225|    556|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (328:5): [True: 556, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|    556|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |               	    (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size	\
  |  |  ------------------
  |  |  |  |  225|    556|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  |  |  ------------------
  |  |  357|    556|		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  219|    556|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               		- ((m)->m_data + (m)->m_len) : 0) :			\
  |  |  ------------------
  |  |  |  |  218|    556|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  |  |  358|    556|	    &(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: 556]
  ------------------
 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|    556|	strreset = mtod(m_notify, struct sctp_stream_reset_event *);
  ------------------
  |  |   96|    556|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    556|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4148|    556|	memset(strreset, 0, len);
 4149|    556|	strreset->strreset_type = SCTP_STREAM_RESET_EVENT;
  ------------------
  |  |  563|    556|#define SCTP_STREAM_RESET_EVENT                 0x0009
  ------------------
 4150|    556|	strreset->strreset_flags = flag;
 4151|    556|	strreset->strreset_length = len;
 4152|    556|	strreset->strreset_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|    556|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 4153|    556|	if (number_entries) {
  ------------------
  |  Branch (4153:6): [True: 204, False: 352]
  ------------------
 4154|    204|		int i;
 4155|       |
 4156|  4.01k|		for (i = 0; i < number_entries; i++) {
  ------------------
  |  Branch (4156:15): [True: 3.80k, False: 204]
  ------------------
 4157|  3.80k|			strreset->strreset_stream_list[i] = ntohs(list[i]);
 4158|  3.80k|		}
 4159|    204|	}
 4160|    556|	SCTP_BUF_LEN(m_notify) = len;
  ------------------
  |  |  801|    556|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    556|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4161|    556|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|    556|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    556|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 4162|    556|	if (sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |   89|    556|#define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|    556|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    556|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 556, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|    532|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|    532|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 532, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (89:41): [True: 532, False: 24]
  |  |  ------------------
  ------------------
              	if (sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |  801|    556|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    556|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (4162:6): [True: 41, False: 515]
  ------------------
 4163|       |		/* no space */
 4164|     41|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|     41|#define sctp_m_freem m_freem
  ------------------
 4165|     41|		return;
 4166|     41|	}
 4167|       |	/* append to socket */
 4168|    515|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 4169|    515|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 4170|    515|	                                 m_notify);
 4171|    515|	if (control == NULL) {
  ------------------
  |  Branch (4171:6): [True: 0, False: 515]
  ------------------
 4172|       |		/* no memory */
 4173|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4174|      0|		return;
 4175|      0|	}
 4176|    515|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|    515|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    515|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4177|    515|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|    515|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|    515|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 4178|       |	/* not that we need this */
 4179|    515|	control->tail_mbuf = m_notify;
 4180|    515|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 4181|    515|	                  &stcb->sctp_socket->so_rcv, 1,
 4182|    515|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|    515|#define SCTP_READ_LOCK_HELD 1
  ------------------
 4183|    515|}
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: 6, False: 51]
  ------------------
 4042|       |		/* no space */
 4043|      6|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      6|#define sctp_m_freem m_freem
  ------------------
 4044|      6|		return;
 4045|      6|	}
 4046|       |	/* append to socket */
 4047|     51|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 4048|     51|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 4049|     51|	                                 m_notify);
 4050|     51|	if (control == NULL) {
  ------------------
  |  Branch (4050:6): [True: 0, False: 51]
  ------------------
 4051|       |		/* no memory */
 4052|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4053|      0|		return;
 4054|      0|	}
 4055|     51|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|     51|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     51|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4056|     51|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|     51|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|     51|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 4057|       |	/* not that we need this */
 4058|     51|	control->tail_mbuf = m_notify;
 4059|     51|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 4060|     51|	                  &stcb->sctp_socket->so_rcv, 1,
 4061|     51|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|     51|#define SCTP_READ_LOCK_HELD 1
  ------------------
 4062|     51|}
sctputil.c:sctp_notify_stream_reset_tsn:
 4066|     64|{
 4067|     64|	struct mbuf *m_notify;
 4068|     64|	struct sctp_queued_to_read *control;
 4069|     64|	struct sctp_assoc_reset_event *strasoc;
 4070|       |
 4071|     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]
  |  |  ------------------
  ------------------
 4072|     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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4073|     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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4074|       |
 4075|     64|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_ASSOC_RESETEVNT)) {
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 4076|       |		/* event not enabled */
 4077|      0|		return;
 4078|      0|	}
 4079|       |
 4080|     64|	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_assoc_reset_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_assoc_reset_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|     64|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 4081|     64|	if (m_notify == NULL)
  ------------------
  |  Branch (4081:6): [True: 0, False: 64]
  ------------------
 4082|       |		/* no space left */
 4083|      0|		return;
 4084|     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
  |  |  ------------------
  ------------------
 4085|     64|	strasoc = mtod(m_notify, struct sctp_assoc_reset_event  *);
  ------------------
  |  |   96|     64|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|     64|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4086|     64|	memset(strasoc, 0, sizeof(struct sctp_assoc_reset_event));
 4087|     64|	strasoc->assocreset_type = SCTP_ASSOC_RESET_EVENT;
  ------------------
  |  |  566|     64|#define SCTP_ASSOC_RESET_EVENT                  0x000c
  ------------------
 4088|     64|	strasoc->assocreset_flags = flag;
 4089|     64|	strasoc->assocreset_length = sizeof(struct sctp_assoc_reset_event);
 4090|     64|	strasoc->assocreset_assoc_id= sctp_get_associd(stcb);
  ------------------
  |  |   60|     64|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 4091|     64|	strasoc->assocreset_local_tsn = stcb->asoc.sending_seq;
 4092|     64|	strasoc->assocreset_remote_tsn = stcb->asoc.mapping_array_base_tsn + 1;
 4093|     64|	SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_assoc_reset_event);
  ------------------
  |  |  801|     64|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     64|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4094|     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
  |  |  ------------------
  ------------------
 4095|     64|	if (sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |   89|     64|#define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|     64|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|     64|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 64, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |               #define	sctp_sbspace(asoc, sb) ((long) ((sctp_maxspace(sb) > (asoc)->sb_cc) ? (sctp_maxspace(sb) - (asoc)->sb_cc) : 0))
  |  |  ------------------
  |  |  |  |   87|     51|#define sctp_maxspace(sb) (max((sb)->sb_hiwat,SCTP_MINIMAL_RWND))
  |  |  |  |  ------------------
  |  |  |  |  |  |   67|     51|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (67:19): [True: 51, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (89:41): [True: 51, False: 13]
  |  |  ------------------
  ------------------
              	if (sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv) < SCTP_BUF_LEN(m_notify)) {
  ------------------
  |  |  801|     64|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     64|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (4095:6): [True: 28, False: 36]
  ------------------
 4096|       |		/* no space */
 4097|     28|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|     28|#define sctp_m_freem m_freem
  ------------------
 4098|     28|		return;
 4099|     28|	}
 4100|       |	/* append to socket */
 4101|     36|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 4102|     36|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 4103|     36|	                                 m_notify);
 4104|     36|	if (control == NULL) {
  ------------------
  |  Branch (4104:6): [True: 0, False: 36]
  ------------------
 4105|       |		/* no memory */
 4106|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4107|      0|		return;
 4108|      0|	}
 4109|     36|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|     36|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|     36|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4110|     36|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|     36|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|     36|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 4111|       |	/* not that we need this */
 4112|     36|	control->tail_mbuf = m_notify;
 4113|     36|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 4114|     36|	                  &stcb->sctp_socket->so_rcv, 1,
 4115|     36|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|     36|#define SCTP_READ_LOCK_HELD 1
  ------------------
 4116|     36|}
sctputil.c:sctp_notify_shutdown_event:
 3881|    110|{
 3882|    110|	struct mbuf *m_notify;
 3883|    110|	struct sctp_shutdown_event *sse;
 3884|    110|	struct sctp_queued_to_read *control;
 3885|       |
 3886|    110|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|    110|	do {                         \
  |  |  113|    110|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 110]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|    110|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 110]
  |  |  ------------------
  ------------------
 3887|    110|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    110|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    110|	do {                         \
  |  |  |  |  113|    110|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 110]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    110|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 110]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3888|    110|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|    110|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    110|	do {                         \
  |  |  |  |  113|    110|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 110]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    110|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 110]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3889|       |
 3890|       |	/*
 3891|       |	 * For TCP model AND UDP connected sockets we will send an error up
 3892|       |	 * when an SHUTDOWN completes
 3893|       |	 */
 3894|    110|	if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
  ------------------
  |  |  529|    110|#define SCTP_PCB_FLAGS_TCPTYPE		0x00000002
  ------------------
  |  Branch (3894:6): [True: 110, False: 0]
  ------------------
 3895|    110|	    (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|    110|		socantsendmore(stcb->sctp_socket);
 3912|       |#if defined(__APPLE__) && !defined(__Userspace__)
 3913|       |		SCTP_SOCKET_UNLOCK(so, 1);
 3914|       |#endif
 3915|    110|	}
 3916|       |
 3917|    110|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVSHUTDOWNEVNT)) {
  ------------------
  |  |   75|    110|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 110, False: 0]
  |  |  ------------------
  |  |   76|    110|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 110]
  |  |  ------------------
  |  |   77|    110|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 110]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|    110|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|    110|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 110]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3918|       |		/* event not enabled */
 3919|      0|		return;
 3920|      0|	}
 3921|       |
 3922|    110|	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_shutdown_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    110|#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|    110|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3923|    110|	if (m_notify == NULL)
  ------------------
  |  Branch (3923:6): [True: 0, False: 110]
  ------------------
 3924|       |		/* no space left */
 3925|      0|		return;
 3926|    110|	sse = mtod(m_notify, struct sctp_shutdown_event *);
  ------------------
  |  |   96|    110|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    110|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3927|    110|	memset(sse, 0, sizeof(struct sctp_shutdown_event));
 3928|    110|	sse->sse_type = SCTP_SHUTDOWN_EVENT;
  ------------------
  |  |  557|    110|#define SCTP_SHUTDOWN_EVENT                     0x0005
  ------------------
 3929|    110|	sse->sse_flags = 0;
 3930|    110|	sse->sse_length = sizeof(struct sctp_shutdown_event);
 3931|    110|	sse->sse_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|    110|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3932|       |
 3933|    110|	SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_shutdown_event);
  ------------------
  |  |  801|    110|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    110|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3934|    110|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|    110|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    110|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3935|       |
 3936|       |	/* append to socket */
 3937|    110|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3938|    110|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3939|    110|	                                 m_notify);
 3940|    110|	if (control == NULL) {
  ------------------
  |  Branch (3940:6): [True: 0, False: 110]
  ------------------
 3941|       |		/* no memory */
 3942|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3943|      0|		return;
 3944|      0|	}
 3945|    110|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|    110|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    110|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3946|    110|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|    110|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|    110|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3947|       |	/* not that we need this */
 3948|    110|	control->tail_mbuf = m_notify;
 3949|    110|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 3950|    110|	                  &stcb->sctp_socket->so_rcv, 1,
 3951|    110|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|    110|#define SCTP_READ_LOCK_HELD 1
  ------------------
 3952|    110|}
sctputil.c:sctp_notify_sender_dry_event:
 3956|    327|{
 3957|    327|	struct mbuf *m_notify;
 3958|    327|	struct sctp_sender_dry_event *event;
 3959|    327|	struct sctp_queued_to_read *control;
 3960|       |
 3961|    327|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|    327|	do {                         \
  |  |  113|    327|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 327]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|    327|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 327]
  |  |  ------------------
  ------------------
 3962|    327|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|    327|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    327|	do {                         \
  |  |  |  |  113|    327|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 327]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    327|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 327]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3963|    327|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|    327|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|    327|	do {                         \
  |  |  |  |  113|    327|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 327]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|    327|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 327]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3964|       |
 3965|    327|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_DRYEVNT)) {
  ------------------
  |  |   75|    327|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 327, False: 0]
  |  |  ------------------
  |  |   76|    327|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 327]
  |  |  ------------------
  |  |   77|    327|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 327]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|    327|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|    327|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 327]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 3966|       |		/* event not enabled */
 3967|      0|		return;
 3968|      0|	}
 3969|       |
 3970|    327|	m_notify = sctp_get_mbuf_for_msg(sizeof(struct sctp_sender_dry_event), 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|    327|#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|    327|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 3971|    327|	if (m_notify == NULL) {
  ------------------
  |  Branch (3971:6): [True: 0, False: 327]
  ------------------
 3972|       |		/* no space left */
 3973|      0|		return;
 3974|      0|	}
 3975|    327|	SCTP_BUF_LEN(m_notify) = 0;
  ------------------
  |  |  801|    327|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    327|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3976|    327|	event = mtod(m_notify, struct sctp_sender_dry_event *);
  ------------------
  |  |   96|    327|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|    327|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3977|    327|	memset(event, 0, sizeof(struct sctp_sender_dry_event));
 3978|    327|	event->sender_dry_type = SCTP_SENDER_DRY_EVENT;
  ------------------
  |  |  564|    327|#define SCTP_SENDER_DRY_EVENT                   0x000a
  ------------------
 3979|    327|	event->sender_dry_flags = 0;
 3980|    327|	event->sender_dry_length = sizeof(struct sctp_sender_dry_event);
 3981|    327|	event->sender_dry_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|    327|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 3982|       |
 3983|    327|	SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_sender_dry_event);
  ------------------
  |  |  801|    327|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    327|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3984|    327|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|    327|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|    327|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 3985|       |
 3986|       |	/* append to socket */
 3987|    327|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 3988|    327|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 3989|    327|	                                 m_notify);
 3990|    327|	if (control == NULL) {
  ------------------
  |  Branch (3990:6): [True: 0, False: 327]
  ------------------
 3991|       |		/* no memory */
 3992|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 3993|      0|		return;
 3994|      0|	}
 3995|    327|	control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|    327|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|    327|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 3996|    327|	control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|    327|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|    327|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 3997|       |	/* not that we need this */
 3998|    327|	control->tail_mbuf = m_notify;
 3999|    327|	sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 4000|    327|	                  &stcb->sctp_socket->so_rcv, 1,
 4001|    327|	                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|    327|#define SCTP_READ_LOCK_HELD 1
  ------------------
 4002|    327|}
sctputil.c:sctp_notify_remote_error:
 4188|   540k|{
 4189|   540k|	struct mbuf *m_notify;
 4190|   540k|	struct sctp_remote_error *sre;
 4191|   540k|	struct sctp_queued_to_read *control;
 4192|   540k|	unsigned int notif_len;
 4193|   540k|	uint16_t chunk_len;
 4194|       |
 4195|   540k|	KASSERT(stcb != NULL, ("stcb == NULL"));
  ------------------
  |  |  112|   540k|	do {                         \
  |  |  113|   540k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 540k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   540k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 540k]
  |  |  ------------------
  ------------------
 4196|   540k|	SCTP_TCB_LOCK_ASSERT(stcb);
  ------------------
  |  |  484|   540k|	KASSERT(pthread_mutex_trylock(&(_tcb)->tcb_mtx) == EBUSY, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   540k|	do {                         \
  |  |  |  |  113|   540k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 540k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   540k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 540k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4197|   540k|	SCTP_INP_READ_LOCK_ASSERT(stcb->sctp_ep);
  ------------------
  |  |  356|   540k|	KASSERT(pthread_mutex_trylock(&(_inp)->inp_rdata_mtx) == EBUSY, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   540k|	do {                         \
  |  |  |  |  113|   540k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 540k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   540k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 540k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4198|       |
 4199|   540k|	if (sctp_stcb_is_feature_off(stcb->sctp_ep, stcb, SCTP_PCB_FLAGS_RECVPEERERR)) {
  ------------------
  |  |   75|   540k|	(((stcb != NULL) && \
  |  |  ------------------
  |  |  |  Branch (75:4): [True: 540k, False: 0]
  |  |  ------------------
  |  |   76|   540k|	  ((stcb->asoc.sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (76:4): [True: 0, False: 540k]
  |  |  ------------------
  |  |   77|   540k|	 ((stcb == NULL) && (inp != NULL) && \
  |  |  ------------------
  |  |  |  Branch (77:4): [True: 0, False: 540k]
  |  |  |  Branch (77:22): [True: 0, False: 0]
  |  |  ------------------
  |  |   78|   540k|	  ((inp->sctp_features & feature) == 0)) || \
  |  |  ------------------
  |  |  |  Branch (78:4): [True: 0, False: 0]
  |  |  ------------------
  |  |   79|   540k|	 ((stcb == NULL) && (inp == NULL)))
  |  |  ------------------
  |  |  |  Branch (79:4): [True: 0, False: 540k]
  |  |  |  Branch (79:22): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4200|      0|		return;
 4201|      0|	}
 4202|       |
 4203|   540k|	if (chunk != NULL) {
  ------------------
  |  Branch (4203:6): [True: 540k, False: 0]
  ------------------
 4204|   540k|		chunk_len = ntohs(chunk->ch.chunk_length);
 4205|       |		/*
 4206|       |		 * Only SCTP_CHUNK_BUFFER_SIZE are guaranteed to be
 4207|       |		 * contiguous.
 4208|       |		 */
 4209|   540k|		if (chunk_len > SCTP_CHUNK_BUFFER_SIZE) {
  ------------------
  |  |  689|   540k|#define SCTP_CHUNK_BUFFER_SIZE	512
  ------------------
  |  Branch (4209:7): [True: 149, False: 540k]
  ------------------
 4210|    149|			chunk_len = SCTP_CHUNK_BUFFER_SIZE;
  ------------------
  |  |  689|    149|#define SCTP_CHUNK_BUFFER_SIZE	512
  ------------------
 4211|    149|		}
 4212|   540k|	} else {
 4213|      0|		chunk_len = 0;
 4214|      0|	}
 4215|   540k|	notif_len = (unsigned int)(sizeof(struct sctp_remote_error) + chunk_len);
 4216|   540k|	m_notify = sctp_get_mbuf_for_msg(notif_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |   60|   540k|#define	M_NOWAIT	0x0001		/* do not block */
  ------------------
              	m_notify = sctp_get_mbuf_for_msg(notif_len, 0, M_NOWAIT, 1, MT_DATA);
  ------------------
  |  |  287|   540k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
 4217|   540k|	if (m_notify == NULL) {
  ------------------
  |  Branch (4217:6): [True: 0, False: 540k]
  ------------------
 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|   540k|	SCTP_BUF_NEXT(m_notify) = NULL;
  ------------------
  |  |  802|   540k|#define SCTP_BUF_NEXT(m) (m->m_next)
  |  |  ------------------
  |  |  |  |  217|   540k|#define	m_next		m_hdr.mh_next
  |  |  ------------------
  ------------------
 4226|   540k|	sre = mtod(m_notify, struct sctp_remote_error *);
  ------------------
  |  |   96|   540k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|   540k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 4227|   540k|	memset(sre, 0, notif_len);
 4228|   540k|	sre->sre_type = SCTP_REMOTE_ERROR;
  ------------------
  |  |  555|   540k|#define SCTP_REMOTE_ERROR                       0x0003
  ------------------
 4229|   540k|	sre->sre_flags = 0;
 4230|   540k|	sre->sre_length = sizeof(struct sctp_remote_error);
 4231|   540k|	sre->sre_error = error;
 4232|   540k|	sre->sre_assoc_id = sctp_get_associd(stcb);
  ------------------
  |  |   60|   540k|#define sctp_get_associd(stcb) ((sctp_assoc_t)stcb->asoc.assoc_id)
  ------------------
 4233|   540k|	if (notif_len > sizeof(struct sctp_remote_error)) {
  ------------------
  |  Branch (4233:6): [True: 540k, False: 0]
  ------------------
 4234|   540k|		memcpy(sre->sre_data, chunk, chunk_len);
 4235|   540k|		sre->sre_length += chunk_len;
 4236|   540k|	}
 4237|   540k|	SCTP_BUF_LEN(m_notify) = sre->sre_length;
  ------------------
  |  |  801|   540k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   540k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4238|   540k|	control = sctp_build_readq_entry(stcb, stcb->asoc.primary_destination,
 4239|   540k|	                                 0, 0, stcb->asoc.context, 0, 0, 0,
 4240|   540k|	                                 m_notify);
 4241|   540k|	if (control != NULL) {
  ------------------
  |  Branch (4241:6): [True: 540k, False: 0]
  ------------------
 4242|   540k|		control->length = SCTP_BUF_LEN(m_notify);
  ------------------
  |  |  801|   540k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|   540k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
 4243|   540k|		control->spec_flags = M_NOTIFICATION;
  ------------------
  |  | 1037|   540k|#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
  |  |  ------------------
  |  |  |  |  241|   540k|#define	M_PROTO5	0x0100	/* protocol-specific */
  |  |  ------------------
  ------------------
 4244|       |		/* not that we need this */
 4245|   540k|		control->tail_mbuf = m_notify;
 4246|   540k|		sctp_add_to_readq(stcb->sctp_ep, stcb, control,
 4247|   540k|		                  &stcb->sctp_socket->so_rcv, 1,
 4248|   540k|		                  SCTP_READ_LOCK_HELD, so_locked);
  ------------------
  |  |   40|   540k|#define SCTP_READ_LOCK_HELD 1
  ------------------
 4249|   540k|	} else {
 4250|      0|		sctp_m_freem(m_notify);
  ------------------
  |  |   52|      0|#define sctp_m_freem m_freem
  ------------------
 4251|      0|	}
 4252|   540k|}
sctputil.c:sctp_user_rcvd:
 5988|  26.3k|{
 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|  26.3k|	int r_unlocked = 0;
 5994|  26.3k|	uint32_t dif, rwnd;
 5995|  26.3k|	struct socket *so = NULL;
 5996|       |
 5997|  26.3k|	if (stcb == NULL)
  ------------------
  |  Branch (5997:6): [True: 0, False: 26.3k]
  ------------------
 5998|      0|		return;
 5999|       |
 6000|  26.3k|	atomic_add_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   94|  26.3k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 6001|       |
 6002|  26.3k|	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_ACK_SENT) ||
  ------------------
  |  |  472|  26.3k|	((_stcb)->asoc.state & SCTP_STATE_MASK)
  |  |  ------------------
  |  |  |  |  469|  26.3k|#define SCTP_STATE_MASK			0x007f
  |  |  ------------------
  ------------------
              	if ((SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_ACK_SENT) ||
  ------------------
  |  |  462|  26.3k|#define SCTP_STATE_SHUTDOWN_ACK_SENT	0x0040
  ------------------
  |  Branch (6002:6): [True: 2.54k, False: 23.8k]
  ------------------
 6003|  23.8k|	    (stcb->asoc.state & (SCTP_STATE_ABOUT_TO_BE_FREED | SCTP_STATE_SHUTDOWN_RECEIVED))) {
  ------------------
  |  |  465|  23.8k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
              	    (stcb->asoc.state & (SCTP_STATE_ABOUT_TO_BE_FREED | SCTP_STATE_SHUTDOWN_RECEIVED))) {
  ------------------
  |  |  461|  23.8k|#define SCTP_STATE_SHUTDOWN_RECEIVED	0x0020
  ------------------
  |  Branch (6003:6): [True: 15.8k, False: 7.99k]
  ------------------
 6004|       |		/* Pre-check If we are freeing no update */
 6005|  18.3k|		goto no_lock;
 6006|  18.3k|	}
 6007|  7.99k|	SCTP_INP_INCR_REF(stcb->sctp_ep);
  ------------------
  |  |  411|  7.99k|#define SCTP_INP_INCR_REF(_inp) atomic_add_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   94|  7.99k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  ------------------
  ------------------
 6008|  7.99k|	if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
  ------------------
  |  |  546|  7.99k|#define SCTP_PCB_FLAGS_SOCKET_GONE	0x10000000
  ------------------
  |  Branch (6008:6): [True: 0, False: 7.99k]
  ------------------
 6009|  7.99k|	    (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE)) {
  ------------------
  |  |  547|  7.99k|#define SCTP_PCB_FLAGS_SOCKET_ALLGONE	0x20000000
  ------------------
  |  Branch (6009:6): [True: 0, False: 7.99k]
  ------------------
 6010|      0|		goto out;
 6011|      0|	}
 6012|  7.99k|	so = stcb->sctp_socket;
 6013|  7.99k|	if (so == NULL) {
  ------------------
  |  Branch (6013:6): [True: 0, False: 7.99k]
  ------------------
 6014|      0|		goto out;
 6015|      0|	}
 6016|  7.99k|	atomic_add_int(&stcb->freed_by_sorcv_sincelast, *freed_so_far);
  ------------------
  |  |   94|  7.99k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 6017|       |	/* Have you have freed enough to look */
 6018|  7.99k|	*freed_so_far = 0;
 6019|       |	/* Yep, its worth a look and the lock overhead */
 6020|       |
 6021|       |	/* Figure out what the rwnd would be */
 6022|  7.99k|	rwnd = sctp_calc_rwnd(stcb, &stcb->asoc);
 6023|  7.99k|	if (rwnd >= stcb->asoc.my_last_reported_rwnd) {
  ------------------
  |  Branch (6023:6): [True: 7.22k, False: 775]
  ------------------
 6024|  7.22k|		dif = rwnd - stcb->asoc.my_last_reported_rwnd;
 6025|  7.22k|	} else {
 6026|    775|		dif = 0;
 6027|    775|	}
 6028|  7.99k|	if (dif >= rwnd_req) {
  ------------------
  |  Branch (6028:6): [True: 1.35k, False: 6.64k]
  ------------------
 6029|  1.35k|		if (hold_rlock) {
  ------------------
  |  Branch (6029:7): [True: 1.35k, False: 2]
  ------------------
 6030|  1.35k|			SCTP_INP_READ_UNLOCK(stcb->sctp_ep);
  ------------------
  |  |  348|  1.35k|	KASSERT(pthread_mutex_unlock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.35k|	do {                         \
  |  |  |  |  113|  1.35k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.35k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.35k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.35k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6031|  1.35k|			r_unlocked = 1;
 6032|  1.35k|		}
 6033|  1.35k|		if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|  1.35k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (6033:7): [True: 0, False: 1.35k]
  ------------------
 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.35k|		SCTP_TCB_LOCK(stcb);
  ------------------
  |  |  466|  1.35k|	KASSERT(pthread_mutex_lock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.35k|	do {                         \
  |  |  |  |  113|  1.35k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.35k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.35k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.35k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6042|  1.35k|		if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
  ------------------
  |  |  465|  1.35k|#define SCTP_STATE_ABOUT_TO_BE_FREED    0x0200
  ------------------
  |  Branch (6042:7): [True: 0, False: 1.35k]
  ------------------
 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.35k|		SCTP_STAT_INCR(sctps_wu_sacks_sent);
  ------------------
  |  | 1112|  1.35k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  1.35k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  1.35k|#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.35k|		sctp_send_sack(stcb, SCTP_SO_LOCKED);
  ------------------
  |  |  959|  1.35k|#define SCTP_SO_LOCKED		1
  ------------------
 6052|       |
 6053|  1.35k|		sctp_chunk_output(stcb->sctp_ep, stcb,
 6054|  1.35k|				  SCTP_OUTPUT_FROM_USR_RCVD, SCTP_SO_LOCKED);
  ------------------
  |  |  374|  1.35k|#define SCTP_OUTPUT_FROM_USR_RCVD       13
  ------------------
              				  SCTP_OUTPUT_FROM_USR_RCVD, SCTP_SO_LOCKED);
  ------------------
  |  |  959|  1.35k|#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.35k|		sctp_timer_stop(SCTP_TIMER_TYPE_RECV, stcb->sctp_ep, stcb, NULL,
  ------------------
  |  |  534|  1.35k|#define SCTP_TIMER_TYPE_RECV		3
  ------------------
 6060|  1.35k|		                SCTP_FROM_SCTPUTIL + SCTP_LOC_6);
  ------------------
  |  |  760|  1.35k|#define SCTP_FROM_SCTPUTIL          0x60000000
  ------------------
              		                SCTP_FROM_SCTPUTIL + SCTP_LOC_6);
  ------------------
  |  |  774|  1.35k|#define SCTP_LOC_6  0x00000006
  ------------------
 6061|  1.35k|		SCTP_TCB_UNLOCK(stcb);
  ------------------
  |  |  469|  1.35k|	KASSERT(pthread_mutex_unlock(&(_tcb)->tcb_mtx) == 0, ("%s:%d: tcb_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.35k|	do {                         \
  |  |  |  |  113|  1.35k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.35k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.35k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.35k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6062|  6.64k|	} else {
 6063|       |		/* Update how much we have pending */
 6064|  6.64k|		stcb->freed_by_sorcv_sincelast = dif;
 6065|  6.64k|	}
 6066|  7.99k| out:
 6067|  7.99k|	if (so && r_unlocked && hold_rlock) {
  ------------------
  |  Branch (6067:6): [True: 7.99k, False: 0]
  |  Branch (6067:12): [True: 1.35k, False: 6.64k]
  |  Branch (6067:26): [True: 1.35k, False: 0]
  ------------------
 6068|  1.35k|		SCTP_INP_READ_LOCK(stcb->sctp_ep);
  ------------------
  |  |  346|  1.35k|	KASSERT(pthread_mutex_lock(&(_inp)->inp_rdata_mtx) == 0, ("%s:%d: inp_rdata_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.35k|	do {                         \
  |  |  |  |  113|  1.35k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.35k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.35k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.35k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 6069|  1.35k|	}
 6070|       |
 6071|  7.99k|	SCTP_INP_DECR_REF(stcb->sctp_ep);
  ------------------
  |  |  412|  7.99k|#define SCTP_INP_DECR_REF(_inp) atomic_subtract_int(&((_inp)->refcount), 1)
  |  |  ------------------
  |  |  |  |   97|  7.99k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  |  |  ------------------
  ------------------
 6072|  26.3k| no_lock:
 6073|  26.3k|	atomic_subtract_int(&stcb->asoc.refcnt, 1);
  ------------------
  |  |   97|  26.3k|#define atomic_subtract_int(P, V) (void) __sync_fetch_and_sub(P, V)
  ------------------
 6074|  26.3k|	return;
 6075|  7.99k|}

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|  22.3k|{
   84|  22.3k|	memset(buf, 'A', size);
   85|  22.3k|	return;
   86|  22.3k|}

m_get:
  112|  1.37M|{
  113|  1.37M|	struct mbuf *mret;
  114|  1.37M|#if defined(SCTP_SIMPLE_ALLOCATOR)
  115|  1.37M|	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.37M|	mbuf_mb_args.flags = 0;
  122|  1.37M|	mbuf_mb_args.type = type;
  123|  1.37M|#endif
  124|       |	/* Mbuf master zone, zone_mbuf, has already been
  125|       |	 * created in mbuf_initialize() */
  126|  1.37M|	mret = SCTP_ZONE_GET(zone_mbuf, struct mbuf);
  ------------------
  |  |  703|  1.37M|        (type *)malloc(zone);
  ------------------
  127|  1.37M|#if defined(SCTP_SIMPLE_ALLOCATOR)
  128|  1.37M|	mb_ctor_mbuf(mret, &mbuf_mb_args, 0);
  129|  1.37M|#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.37M|	if (mret) {
  ------------------
  |  Branch (137:6): [True: 1.37M, 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.37M|		mbuf_constructor_dup(mret, 0, type);
  144|  1.37M|#endif
  145|       |
  146|  1.37M|	}
  147|  1.37M|	return mret;
  148|  1.37M|}
m_gethdr:
  154|   152k|{
  155|   152k|	struct mbuf *mret;
  156|   152k|#if defined(SCTP_SIMPLE_ALLOCATOR)
  157|   152k|	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|   152k|	mbuf_mb_args.flags = M_PKTHDR;
  ------------------
  |  |  234|   152k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  164|   152k|	mbuf_mb_args.type = type;
  165|   152k|#endif
  166|   152k|	mret = SCTP_ZONE_GET(zone_mbuf, struct mbuf);
  ------------------
  |  |  703|   152k|        (type *)malloc(zone);
  ------------------
  167|   152k|#if defined(SCTP_SIMPLE_ALLOCATOR)
  168|   152k|	mb_ctor_mbuf(mret, &mbuf_mb_args, 0);
  169|   152k|#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|   152k|	if (mret) {
  ------------------
  |  Branch (176:6): [True: 152k, 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|   152k|		mbuf_constructor_dup(mret, M_PKTHDR, type);
  ------------------
  |  |  234|   152k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  183|   152k|#endif
  184|   152k|	}
  185|   152k|	return mret;
  186|   152k|}
m_free:
  191|  1.53M|{
  192|       |
  193|  1.53M|	struct mbuf *n = m->m_next;
  ------------------
  |  |  217|  1.53M|#define	m_next		m_hdr.mh_next
  ------------------
  194|       |
  195|  1.53M|	if (m->m_flags & M_EXT)
  ------------------
  |  |  221|  1.53M|#define	m_flags		m_hdr.mh_flags
  ------------------
              	if (m->m_flags & M_EXT)
  ------------------
  |  |  233|  1.53M|#define	M_EXT		0x0001	/* has associated external storage */
  ------------------
  |  Branch (195:6): [True: 257k, False: 1.27M]
  ------------------
  196|   257k|		mb_free_ext(m);
  197|  1.27M|	else if ((m->m_flags & M_NOFREE) == 0) {
  ------------------
  |  |  221|  1.27M|#define	m_flags		m_hdr.mh_flags
  ------------------
              	else if ((m->m_flags & M_NOFREE) == 0) {
  ------------------
  |  |  264|  1.27M|#define	M_NOFREE	0x40000	/* do not free mbuf - it is embedded in the cluster */
  ------------------
  |  Branch (197:11): [True: 1.27M, False: 1]
  ------------------
  198|  1.27M|#if defined(SCTP_SIMPLE_ALLOCATOR)
  199|  1.27M|		mb_dtor_mbuf(m, NULL);
  200|  1.27M|#endif
  201|  1.27M|		SCTP_ZONE_FREE(zone_mbuf, m);
  ------------------
  |  |  707|  1.27M|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  1.27M|	free(element);  \
  |  |  709|  1.27M|}
  ------------------
  202|  1.27M|	}
  203|       |		/*umem_cache_free(zone_mbuf, m);*/
  204|  1.53M|	return (n);
  205|  1.53M|}
m_clget:
  246|  74.4k|{
  247|  74.4k|	caddr_t mclust_ret;
  248|  74.4k|#if defined(SCTP_SIMPLE_ALLOCATOR)
  249|  74.4k|	struct clust_args clust_mb_args_l;
  250|  74.4k|#endif
  251|  74.4k|	if (m->m_flags & M_EXT) {
  ------------------
  |  |  221|  74.4k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	if (m->m_flags & M_EXT) {
  ------------------
  |  |  233|  74.4k|#define	M_EXT		0x0001	/* has associated external storage */
  ------------------
  |  Branch (251:6): [True: 0, False: 74.4k]
  ------------------
  252|      0|		SCTPDBG(SCTP_DEBUG_USR, "%s: %p mbuf already has cluster\n", __func__, (void *)m);
  253|      0|	}
  254|  74.4k|	m->m_ext.ext_buf = (char *)NULL;
  ------------------
  |  |  225|  74.4k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  255|  74.4k|#if defined(SCTP_SIMPLE_ALLOCATOR)
  256|  74.4k|	clust_mb_args_l.parent_mbuf = m;
  257|  74.4k|#endif
  258|  74.4k|	mclust_ret = SCTP_ZONE_GET(zone_clust, char);
  ------------------
  |  |  703|  74.4k|        (type *)malloc(zone);
  ------------------
  259|  74.4k|#if defined(SCTP_SIMPLE_ALLOCATOR)
  260|  74.4k|	mb_ctor_clust(mclust_ret, &clust_mb_args_l, 0);
  261|  74.4k|#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|  74.4k|	if (mclust_ret == NULL) {
  ------------------
  |  Branch (267:6): [True: 0, False: 74.4k]
  ------------------
  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|  74.4k|	clust_constructor_dup(mclust_ret, m);
  287|  74.4k|#endif
  288|  74.4k|}
m_getm2:
  292|  1.10M|{
  293|  1.10M|	struct mbuf *mb, *nm = NULL, *mtail = NULL;
  294|  1.10M|	int size, mbuf_threshold, space_needed = len;
  295|       |
  296|  1.10M|	KASSERT(len >= 0, ("%s: len is < 0", __func__));
  ------------------
  |  |  112|  1.10M|	do {                         \
  |  |  113|  1.10M|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 1.10M]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.10M|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 1.10M]
  |  |  ------------------
  ------------------
  297|       |
  298|       |	/* Validate flags. */
  299|  1.10M|	flags &= (M_PKTHDR | M_EOR);
  ------------------
  |  |  234|  1.10M|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
              	flags &= (M_PKTHDR | M_EOR);
  ------------------
  |  |  235|  1.10M|#define	M_EOR		0x0004	/* end of record */
  ------------------
  300|       |
  301|       |	/* Packet header mbuf must be first in chain. */
  302|  1.10M|	if ((flags & M_PKTHDR) && m != NULL) {
  ------------------
  |  |  234|  1.10M|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (302:6): [True: 97.5k, False: 1.00M]
  |  Branch (302:28): [True: 0, False: 97.5k]
  ------------------
  303|      0|		flags &= ~M_PKTHDR;
  ------------------
  |  |  234|      0|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  304|      0|	}
  305|       |
  306|  1.10M|	if (allonebuf == 0)
  ------------------
  |  Branch (306:6): [True: 32.3k, False: 1.06M]
  ------------------
  307|  32.3k|		mbuf_threshold = SCTP_BASE_SYSCTL(sctp_mbuf_threshold_count);
  ------------------
  |  |  590|  32.3k|#define SCTP_BASE_SYSCTL(__m) system_base_info.sctpsysctl.__m
  ------------------
  308|  1.06M|	else
  309|  1.06M|		mbuf_threshold = 1;
  310|       |
  311|       |	/* Loop and append maximum sized mbufs to the chain tail. */
  312|  2.23M|	while (len > 0) {
  ------------------
  |  Branch (312:9): [True: 1.13M, False: 1.10M]
  ------------------
  313|  1.13M|		if ((!allonebuf && len >= MCLBYTES) || (len > (int)(((mbuf_threshold - 1) * MLEN) + MHLEN))) {
  ------------------
  |  |   51|  60.9k|#define MCLBYTES 2048
  ------------------
              		if ((!allonebuf && len >= MCLBYTES) || (len > (int)(((mbuf_threshold - 1) * MLEN) + MHLEN))) {
  ------------------
  |  |  138|  1.12M|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|  1.12M|#define MSIZE 256
  |  |  ------------------
  ------------------
              		if ((!allonebuf && len >= MCLBYTES) || (len > (int)(((mbuf_threshold - 1) * MLEN) + MHLEN))) {
  ------------------
  |  |  139|  1.12M|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  ------------------
  |  |  |  |  138|  1.12M|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.12M|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (313:8): [True: 60.9k, False: 1.06M]
  |  Branch (313:22): [True: 6.56k, False: 54.3k]
  |  Branch (313:42): [True: 67.8k, False: 1.05M]
  ------------------
  314|  74.4k|			mb = m_gethdr(how, type);
  315|  74.4k|			MCLGET(mb, how);
  ------------------
  |  |   69|  74.4k|#define	MCLGET(m, how)		m_clget((m), (how))
  ------------------
  316|  74.4k|			size = MCLBYTES;
  ------------------
  |  |   51|  74.4k|#define MCLBYTES 2048
  ------------------
  317|       |			/* SCTP_BUF_LEN(mb) = MCLBYTES; */
  318|  1.05M|		} else if (flags & M_PKTHDR) {
  ------------------
  |  |  234|  1.05M|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (318:14): [True: 78.4k, False: 977k]
  ------------------
  319|  78.4k|			mb = m_gethdr(how, type);
  320|  78.4k|			if (len < MHLEN) {
  ------------------
  |  |  139|  78.4k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  ------------------
  |  |  |  |  138|  78.4k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  78.4k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (320:8): [True: 66.6k, False: 11.7k]
  ------------------
  321|  66.6k|				size = len;
  322|  66.6k|			} else {
  323|  11.7k|				size = MHLEN;
  ------------------
  |  |  139|  11.7k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  ------------------
  |  |  |  |  138|  11.7k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  11.7k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  324|  11.7k|			}
  325|   977k|		} else {
  326|   977k|			mb = m_get(how, type);
  327|   977k|			if (len < MLEN) {
  ------------------
  |  |  138|   977k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|   977k|#define MSIZE 256
  |  |  ------------------
  ------------------
  |  Branch (327:8): [True: 966k, False: 10.2k]
  ------------------
  328|   966k|				size = len;
  329|   966k|			} else {
  330|  10.2k|				size = MLEN;
  ------------------
  |  |  138|  10.2k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|  10.2k|#define MSIZE 256
  |  |  ------------------
  ------------------
  331|  10.2k|			}
  332|   977k|		}
  333|       |
  334|       |		/* Fail the whole operation if one mbuf can't be allocated. */
  335|  1.13M|		if (mb == NULL) {
  ------------------
  |  Branch (335:7): [True: 0, False: 1.13M]
  ------------------
  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|  1.13M|		if (allonebuf != 0 && size < space_needed) {
  ------------------
  |  Branch (341:7): [True: 1.06M, False: 60.9k]
  |  Branch (341:25): [True: 0, False: 1.06M]
  ------------------
  342|      0|			m_freem(mb);
  343|      0|			return (NULL);
  344|      0|		}
  345|       |
  346|       |		/* Book keeping. */
  347|  1.13M|		len -= size;
  348|  1.13M|		if (mtail != NULL)
  ------------------
  |  Branch (348:7): [True: 28.5k, False: 1.10M]
  ------------------
  349|  28.5k|			mtail->m_next = mb;
  ------------------
  |  |  217|  28.5k|#define	m_next		m_hdr.mh_next
  ------------------
  350|  1.10M|		else
  351|  1.10M|			nm = mb;
  352|  1.13M|		mtail = mb;
  353|  1.13M|		flags &= ~M_PKTHDR;     /* Only valid on the first mbuf. */
  ------------------
  |  |  234|  1.13M|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  354|  1.13M|	}
  355|  1.10M|	if (flags & M_EOR) {
  ------------------
  |  |  235|  1.10M|#define	M_EOR		0x0004	/* end of record */
  ------------------
  |  Branch (355:6): [True: 0, False: 1.10M]
  ------------------
  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|  1.10M|	if (m != NULL) {
  ------------------
  |  Branch (360:6): [True: 0, False: 1.10M]
  ------------------
  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|  1.10M|	} else {
  365|  1.10M|		m = nm;
  366|  1.10M|	}
  367|       |
  368|  1.10M|	return (m);
  369|  1.10M|}
m_uiotombuf:
  376|  5.96k|{
  377|  5.96k|	struct mbuf *m, *mb;
  378|  5.96k|	int error, length;
  379|  5.96k|	ssize_t total;
  380|  5.96k|	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.96k|	if (len > 0)
  ------------------
  |  Branch (386:6): [True: 5.96k, False: 0]
  ------------------
  387|  5.96k|		total = min(uio->uio_resid, len);
  ------------------
  |  |   66|  5.96k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 5.96k]
  |  |  ------------------
  ------------------
  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.96k|	if (align >= MHLEN)
  ------------------
  |  |  139|  5.96k|#define	MHLEN		((int)(MLEN - sizeof(struct pkthdr)))	/* data len w/pkthdr */
  |  |  ------------------
  |  |  |  |  138|  5.96k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  5.96k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (394:6): [True: 0, False: 5.96k]
  ------------------
  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.96k|	m = m_getm2(NULL, (int)max(total + align, 1), how, MT_DATA, flags, 0);
  ------------------
  |  |   67|  5.96k|#define max(a,b) (((a)>(b))?(a):(b))
  |  |  ------------------
  |  |  |  Branch (67:19): [True: 5.96k, False: 0]
  |  |  ------------------
  ------------------
              	m = m_getm2(NULL, (int)max(total + align, 1), how, MT_DATA, flags, 0);
  ------------------
  |  |  287|  5.96k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
  401|  5.96k|	if (m == NULL)
  ------------------
  |  Branch (401:6): [True: 0, False: 5.96k]
  ------------------
  402|      0|		return (NULL);
  403|  5.96k|	m->m_data += align;
  ------------------
  |  |  219|  5.96k|#define	m_data		m_hdr.mh_data
  ------------------
  404|       |
  405|       |	/* Fill all mbufs with uio data and update header information. */
  406|  11.9k|	for (mb = m; mb != NULL; mb = mb->m_next) {
  ------------------
  |  |  217|  5.96k|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (406:15): [True: 5.96k, False: 5.96k]
  ------------------
  407|  5.96k|		length = (int)min(M_TRAILINGSPACE(mb), total - progress);
  ------------------
  |  |   66|  11.9k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 5.96k, 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.96k]
  |  |  |  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.96k|		error = uiomove(mtod(mb, void *), length, uio);
  ------------------
  |  |   96|  5.96k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  5.96k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
  409|  5.96k|		if (error) {
  ------------------
  |  Branch (409:7): [True: 0, False: 5.96k]
  ------------------
  410|      0|			m_freem(m);
  411|      0|			return (NULL);
  412|      0|		}
  413|       |
  414|  5.96k|		mb->m_len = length;
  ------------------
  |  |  218|  5.96k|#define	m_len		m_hdr.mh_len
  ------------------
  415|  5.96k|		progress += length;
  416|  5.96k|		if (flags & M_PKTHDR)
  ------------------
  |  |  234|  5.96k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (416:7): [True: 0, False: 5.96k]
  ------------------
  417|      0|			m->m_pkthdr.len += length;
  ------------------
  |  |  224|      0|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
  418|  5.96k|	}
  419|  5.96k|	KASSERT(progress == total, ("%s: progress != total", __func__));
  ------------------
  |  |  112|  5.96k|	do {                         \
  |  |  113|  5.96k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 5.96k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.96k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 5.96k]
  |  |  ------------------
  ------------------
  420|       |
  421|  5.96k|	return (m);
  422|  5.96k|}
m_last:
  443|  5.96k|{
  444|  5.96k|	while (m->m_next) {
  ------------------
  |  |  217|  5.96k|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (444:9): [True: 0, False: 5.96k]
  ------------------
  445|      0|		m = m->m_next;
  ------------------
  |  |  217|      0|#define	m_next		m_hdr.mh_next
  ------------------
  446|      0|	}
  447|  5.96k|	return (m);
  448|  5.96k|}
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|   152k|{
  704|       |
  705|   152k|	struct m_tag *p, *q;
  706|       |
  707|   152k|	KASSERT(m, ("m_tag_delete_chain: null mbuf"));
  ------------------
  |  |  112|   152k|	do {                         \
  |  |  113|   152k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 152k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   152k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 152k]
  |  |  ------------------
  ------------------
  708|   152k|	if (t != NULL)
  ------------------
  |  Branch (708:6): [True: 0, False: 152k]
  ------------------
  709|      0|		p = t;
  710|   152k|	else
  711|   152k|		p = SLIST_FIRST(&m->m_pkthdr.tags);
  712|   152k|	if (p == NULL)
  ------------------
  |  Branch (712:6): [True: 152k, False: 0]
  ------------------
  713|   152k|		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|   315k|{
  739|  1.19M|	while (mb != NULL)
  ------------------
  |  Branch (739:9): [True: 881k, False: 315k]
  ------------------
  740|   881k|		mb = m_free(mb);
  741|   315k|}
mb_free_ext:
  750|   257k|{
  751|       |
  752|   257k|	int skipmbuf;
  753|       |
  754|   257k|	KASSERT((m->m_flags & M_EXT) == M_EXT, ("%s: M_EXT not set", __func__));
  ------------------
  |  |  112|   257k|	do {                         \
  |  |  113|   257k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 257k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   257k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 257k]
  |  |  ------------------
  ------------------
  755|   257k|	KASSERT(m->m_ext.ref_cnt != NULL, ("%s: ref_cnt not set", __func__));
  ------------------
  |  |  112|   257k|	do {                         \
  |  |  113|   257k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 257k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   257k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 257k]
  |  |  ------------------
  ------------------
  756|       |
  757|       |	/*
  758|       |	 * check if the header is embedded in the cluster
  759|       |	 */
  760|   257k|	skipmbuf = (m->m_flags & M_NOFREE);
  ------------------
  |  |  221|   257k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	skipmbuf = (m->m_flags & M_NOFREE);
  ------------------
  |  |  264|   257k|#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|   257k|	if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(m->m_ext.ref_cnt))
  ------------------
  |  |  115|   257k|#define SCTP_DECREMENT_AND_CHECK_REFCOUNT(addr) (atomic_fetchadd_int(addr, -1) == 1)
  |  |  ------------------
  |  |  |  |  103|   257k|#define atomic_fetchadd_int(p, v) __sync_fetch_and_add(p, v)
  |  |  ------------------
  |  |  |  Branch (115:49): [True: 74.1k, False: 183k]
  |  |  ------------------
  ------------------
  776|  74.1k|#endif
  777|  74.1k|	{
  778|  74.1k|		if (m->m_ext.ext_type == EXT_CLUSTER){
  ------------------
  |  |  225|  74.1k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
              		if (m->m_ext.ext_type == EXT_CLUSTER){
  ------------------
  |  |  270|  74.1k|#define	EXT_CLUSTER	1	/* mbuf cluster */
  ------------------
  |  Branch (778:7): [True: 74.1k, False: 0]
  ------------------
  779|  74.1k|#if defined(SCTP_SIMPLE_ALLOCATOR)
  780|  74.1k|			mb_dtor_clust(m->m_ext.ext_buf, &clust_mb_args);
  ------------------
  |  |  225|  74.1k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  781|  74.1k|#endif
  782|  74.1k|			SCTP_ZONE_FREE(zone_clust, m->m_ext.ext_buf);
  ------------------
  |  |  707|  74.1k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  74.1k|	free(element);  \
  |  |  709|  74.1k|}
  ------------------
  783|  74.1k|			SCTP_ZONE_FREE(zone_ext_refcnt, (u_int*)m->m_ext.ref_cnt);
  ------------------
  |  |  707|  74.1k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|  74.1k|	free(element);  \
  |  |  709|  74.1k|}
  ------------------
  784|  74.1k|			m->m_ext.ref_cnt = NULL;
  ------------------
  |  |  225|  74.1k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  785|  74.1k|		}
  786|  74.1k|	}
  787|       |
  788|   257k|	if (skipmbuf)
  ------------------
  |  Branch (788:6): [True: 0, False: 257k]
  ------------------
  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|   257k|	m->m_ext.ext_buf = NULL;
  ------------------
  |  |  225|   257k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  797|   257k|	m->m_ext.ext_free = NULL;
  ------------------
  |  |  225|   257k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  798|   257k|	m->m_ext.ext_args = NULL;
  ------------------
  |  |  225|   257k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  799|   257k|	m->m_ext.ref_cnt = NULL;
  ------------------
  |  |  225|   257k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  800|   257k|	m->m_ext.ext_size = 0;
  ------------------
  |  |  225|   257k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  801|   257k|	m->m_ext.ext_type = 0;
  ------------------
  |  |  225|   257k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  802|   257k|	m->m_flags &= ~M_EXT;
  ------------------
  |  |  221|   257k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	m->m_flags &= ~M_EXT;
  ------------------
  |  |  233|   257k|#define	M_EXT		0x0001	/* has associated external storage */
  ------------------
  803|   257k|#if defined(SCTP_SIMPLE_ALLOCATOR)
  804|   257k|	mb_dtor_mbuf(m, NULL);
  805|   257k|#endif
  806|   257k|	SCTP_ZONE_FREE(zone_mbuf, m);
  ------------------
  |  |  707|   257k|#define SCTP_ZONE_FREE(zone, element) { \
  |  |  708|   257k|	free(element);  \
  |  |  709|   257k|}
  ------------------
  807|       |
  808|       |	/*umem_cache_free(zone_mbuf, m);*/
  809|   257k|}
m_copym:
 1113|   211k|{
 1114|   211k|	struct mbuf *n, **np;
 1115|   211k|	int off = off0;
 1116|   211k|	struct mbuf *top;
 1117|   211k|	int copyhdr = 0;
 1118|       |
 1119|   211k|	KASSERT(off >= 0, ("m_copym, negative off %d", off));
  ------------------
  |  |  112|   211k|	do {                         \
  |  |  113|   211k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 211k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   211k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 211k]
  |  |  ------------------
  ------------------
 1120|   211k|	KASSERT(len >= 0, ("m_copym, negative len %d", len));
  ------------------
  |  |  112|   211k|	do {                         \
  |  |  113|   211k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 211k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   211k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 211k]
  |  |  ------------------
  ------------------
 1121|   211k|	KASSERT(m != NULL, ("m_copym, m is NULL"));
  ------------------
  |  |  112|   211k|	do {                         \
  |  |  113|   211k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 211k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   211k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 211k]
  |  |  ------------------
  ------------------
 1122|       |
 1123|       |#if !defined(INVARIANTS)
 1124|       |	if (m == NULL) {
 1125|       |		return (NULL);
 1126|       |	}
 1127|       |#endif
 1128|   211k|	if (off == 0 && m->m_flags & M_PKTHDR)
  ------------------
  |  |  221|    990|#define	m_flags		m_hdr.mh_flags
  ------------------
              	if (off == 0 && m->m_flags & M_PKTHDR)
  ------------------
  |  |  234|    990|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (1128:6): [True: 990, False: 210k]
  |  Branch (1128:18): [True: 0, False: 990]
  ------------------
 1129|      0|		copyhdr = 1;
 1130|  1.87M|	while (off > 0) {
  ------------------
  |  Branch (1130:9): [True: 1.87M, False: 1.62k]
  ------------------
 1131|  1.87M|		KASSERT(m != NULL, ("m_copym, offset > size of mbuf chain"));
  ------------------
  |  |  112|  1.87M|	do {                         \
  |  |  113|  1.87M|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 1.87M]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.87M|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 1.87M]
  |  |  ------------------
  ------------------
 1132|  1.87M|		if (off < m->m_len)
  ------------------
  |  |  218|  1.87M|#define	m_len		m_hdr.mh_len
  ------------------
  |  Branch (1132:7): [True: 209k, False: 1.66M]
  ------------------
 1133|   209k|			break;
 1134|  1.66M|		off -= m->m_len;
  ------------------
  |  |  218|  1.66M|#define	m_len		m_hdr.mh_len
  ------------------
 1135|  1.66M|		m = m->m_next;
  ------------------
  |  |  217|  1.66M|#define	m_next		m_hdr.mh_next
  ------------------
 1136|  1.66M|	}
 1137|   211k|	np = &top;
 1138|   211k|	top = 0;
 1139|   460k|	while (len > 0) {
  ------------------
  |  Branch (1139:9): [True: 250k, False: 210k]
  ------------------
 1140|   250k|		if (m == NULL) {
  ------------------
  |  Branch (1140:7): [True: 990, False: 249k]
  ------------------
 1141|    990|			KASSERT(len == M_COPYALL, ("m_copym, length > size of mbuf chain"));
  ------------------
  |  |  112|    990|	do {                         \
  |  |  113|    990|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 990]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|    990|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 990]
  |  |  ------------------
  ------------------
 1142|    990|			break;
 1143|    990|		}
 1144|   249k|		if (copyhdr)
  ------------------
  |  Branch (1144:7): [True: 0, False: 249k]
  ------------------
 1145|      0|			MGETHDR(n, wait, m->m_type);
  ------------------
  |  |   68|      0|#define	MGETHDR(m, how, type)	((m) = m_gethdr((how), (type)))
  ------------------
 1146|   249k|		else
 1147|   249k|			MGET(n, wait, m->m_type);
  ------------------
  |  |   67|   249k|#define	MGET(m, how, type)	((m) = m_get((how), (type)))
  ------------------
 1148|   249k|		*np = n;
 1149|   249k|		if (n == NULL)
  ------------------
  |  Branch (1149:7): [True: 0, False: 249k]
  ------------------
 1150|      0|			goto nospace;
 1151|   249k|		if (copyhdr) {
  ------------------
  |  Branch (1151:7): [True: 0, False: 249k]
  ------------------
 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|   249k|		n->m_len = min(len, m->m_len - off);
  ------------------
  |  |  218|   249k|#define	m_len		m_hdr.mh_len
  ------------------
              		n->m_len = min(len, m->m_len - off);
  ------------------
  |  |   66|   249k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 39.5k, False: 210k]
  |  |  ------------------
  ------------------
 1161|   249k|		if (m->m_flags & M_EXT) {
  ------------------
  |  |  221|   249k|#define	m_flags		m_hdr.mh_flags
  ------------------
              		if (m->m_flags & M_EXT) {
  ------------------
  |  |  233|   249k|#define	M_EXT		0x0001	/* has associated external storage */
  ------------------
  |  Branch (1161:7): [True: 183k, False: 65.9k]
  ------------------
 1162|   183k|			n->m_data = m->m_data + off;
  ------------------
  |  |  219|   183k|#define	m_data		m_hdr.mh_data
  ------------------
              			n->m_data = m->m_data + off;
  ------------------
  |  |  219|   183k|#define	m_data		m_hdr.mh_data
  ------------------
 1163|   183k|			mb_dupcl(n, m);
 1164|   183k|		} else
 1165|  65.9k|			memcpy(mtod(n, caddr_t), mtod(m, caddr_t) + off, (u_int)n->m_len);
  ------------------
  |  |   96|  65.9k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  65.9k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
              			memcpy(mtod(n, caddr_t), mtod(m, caddr_t) + off, (u_int)n->m_len);
  ------------------
  |  |   96|  65.9k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  65.9k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
              			memcpy(mtod(n, caddr_t), mtod(m, caddr_t) + off, (u_int)n->m_len);
  ------------------
  |  |  218|  65.9k|#define	m_len		m_hdr.mh_len
  ------------------
 1166|   249k|		if (len != M_COPYALL)
  ------------------
  |  |   75|   249k|#define	M_COPYALL	1000000000
  ------------------
  |  Branch (1166:7): [True: 228k, False: 21.6k]
  ------------------
 1167|   228k|			len -= n->m_len;
  ------------------
  |  |  218|   228k|#define	m_len		m_hdr.mh_len
  ------------------
 1168|   249k|		off = 0;
 1169|   249k|		m = m->m_next;
  ------------------
  |  |  217|   249k|#define	m_next		m_hdr.mh_next
  ------------------
 1170|   249k|		np = &n->m_next;
  ------------------
  |  |  217|   249k|#define	m_next		m_hdr.mh_next
  ------------------
 1171|   249k|	}
 1172|       |
 1173|   211k|	return (top);
 1174|      0|nospace:
 1175|      0|	m_freem(top);
 1176|       |	return (NULL);
 1177|   211k|}
m_copyback:
 1265|  26.3k|{
 1266|  26.3k|	int mlen;
 1267|  26.3k|	struct mbuf *m = m0, *n;
 1268|  26.3k|	int totlen = 0;
 1269|       |
 1270|  26.3k|	if (m0 == NULL)
  ------------------
  |  Branch (1270:6): [True: 0, False: 26.3k]
  ------------------
 1271|      0|		return;
 1272|  26.3k|	while (off > (mlen = m->m_len)) {
  ------------------
  |  |  218|  26.3k|#define	m_len		m_hdr.mh_len
  ------------------
  |  Branch (1272:9): [True: 0, False: 26.3k]
  ------------------
 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|  54.9k|	while (len > 0) {
  ------------------
  |  Branch (1285:9): [True: 54.9k, False: 0]
  ------------------
 1286|  54.9k|		mlen = min (m->m_len - off, len);
  ------------------
  |  |   66|  54.9k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 0, False: 54.9k]
  |  |  ------------------
  ------------------
 1287|  54.9k|		memcpy(off + mtod(m, caddr_t), cp, (u_int)mlen);
  ------------------
  |  |   96|  54.9k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  54.9k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 1288|  54.9k|		cp += mlen;
 1289|  54.9k|		len -= mlen;
 1290|  54.9k|		mlen += off;
 1291|  54.9k|		off = 0;
 1292|  54.9k|		totlen += mlen;
 1293|  54.9k|		if (len == 0)
  ------------------
  |  Branch (1293:7): [True: 26.3k, False: 28.5k]
  ------------------
 1294|  26.3k|			break;
 1295|  28.5k|		if (m->m_next == NULL) {
  ------------------
  |  |  217|  28.5k|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (1295:7): [True: 0, False: 28.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|  28.5k|		m = m->m_next;
  ------------------
  |  |  217|  28.5k|#define	m_next		m_hdr.mh_next
  ------------------
 1303|  28.5k|	}
 1304|  26.3k|out:	if (((m = m0)->m_flags & M_PKTHDR) && (m->m_pkthdr.len < totlen))
  ------------------
  |  |  221|  26.3k|#define	m_flags		m_hdr.mh_flags
  ------------------
              out:	if (((m = m0)->m_flags & M_PKTHDR) && (m->m_pkthdr.len < totlen))
  ------------------
  |  |  234|  26.3k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
              out:	if (((m = m0)->m_flags & M_PKTHDR) && (m->m_pkthdr.len < totlen))
  ------------------
  |  |  224|  26.3k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
  |  Branch (1304:10): [True: 26.3k, False: 0]
  |  Branch (1304:44): [True: 0, False: 26.3k]
  ------------------
 1305|      0|		m->m_pkthdr.len = totlen;
  ------------------
  |  |  224|      0|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
 1306|  26.3k|}
m_prepend:
 1348|   151k|{
 1349|   151k|	struct mbuf *mn;
 1350|       |
 1351|   151k|	if (m->m_flags & M_PKTHDR)
  ------------------
  |  |  221|   151k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	if (m->m_flags & M_PKTHDR)
  ------------------
  |  |  234|   151k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (1351:6): [True: 0, False: 151k]
  ------------------
 1352|      0|		MGETHDR(mn, how, m->m_type);
  ------------------
  |  |   68|      0|#define	MGETHDR(m, how, type)	((m) = m_gethdr((how), (type)))
  ------------------
 1353|   151k|	else
 1354|   151k|		MGET(mn, how, m->m_type);
  ------------------
  |  |   67|   151k|#define	MGET(m, how, type)	((m) = m_get((how), (type)))
  ------------------
 1355|   151k|	if (mn == NULL) {
  ------------------
  |  Branch (1355:6): [True: 0, False: 151k]
  ------------------
 1356|      0|		m_freem(m);
 1357|      0|		return (NULL);
 1358|      0|	}
 1359|   151k|	if (m->m_flags & M_PKTHDR)
  ------------------
  |  |  221|   151k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	if (m->m_flags & M_PKTHDR)
  ------------------
  |  |  234|   151k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (1359:6): [True: 0, False: 151k]
  ------------------
 1360|      0|		M_MOVE_PKTHDR(mn, m);
  ------------------
  |  |   66|      0|#define	M_MOVE_PKTHDR(to, from)	m_move_pkthdr((to), (from))
  ------------------
 1361|   151k|	mn->m_next = m;
  ------------------
  |  |  217|   151k|#define	m_next		m_hdr.mh_next
  ------------------
 1362|   151k|	m = mn;
 1363|   151k|	if (m->m_flags & M_PKTHDR) {
  ------------------
  |  |  221|   151k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	if (m->m_flags & M_PKTHDR) {
  ------------------
  |  |  234|   151k|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (1363:6): [True: 0, False: 151k]
  ------------------
 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|   151k|	} else {
 1367|   151k|		if (len < MLEN)
  ------------------
  |  |  138|   151k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  ------------------
  |  |  |  |   47|   151k|#define MSIZE 256
  |  |  ------------------
  ------------------
  |  Branch (1367:7): [True: 151k, False: 0]
  ------------------
 1368|   151k|			M_ALIGN(m, len);
  ------------------
  |  |  387|   151k|#define	M_ALIGN(m, len) do {						\
  |  |  388|   151k|        KASSERT(!((m)->m_flags & (M_PKTHDR|M_EXT)),                     \
  |  |  ------------------
  |  |  |  |  112|   151k|	do {                         \
  |  |  |  |  113|   151k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 151k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   151k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 151k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  389|   151k|                ("%s: M_ALIGN not normal mbuf", __func__));             \
  |  |  390|   151k|        KASSERT((m)->m_data == (m)->m_dat,                              \
  |  |  ------------------
  |  |  |  |  112|   151k|	do {                         \
  |  |  |  |  113|   151k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 151k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   151k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 151k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  391|   151k|                ("%s: M_ALIGN not a virgin mbuf", __func__));           \
  |  |  392|   151k|	(m)->m_data += (MLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  ------------------
  |  |  |  |  219|   151k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  |  |               	(m)->m_data += (MLEN - (len)) & ~(sizeof(long) - 1);		\
  |  |  ------------------
  |  |  |  |  138|   151k|#define	MLEN		((int)(MSIZE - sizeof(struct m_hdr)))	/* normal data len */
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|   151k|#define MSIZE 256
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  393|   151k|} while (0)
  |  |  ------------------
  |  |  |  Branch (393:10): [Folded, False: 151k]
  |  |  ------------------
  ------------------
 1369|   151k|	}
 1370|   151k|	m->m_len = len;
  ------------------
  |  |  218|   151k|#define	m_len		m_hdr.mh_len
  ------------------
 1371|   151k|	return (m);
 1372|   151k|}
m_copydata:
 1380|   196k|{
 1381|   196k|	u_int count;
 1382|       |
 1383|   196k|	KASSERT(off >= 0, ("m_copydata, negative off %d", off));
  ------------------
  |  |  112|   196k|	do {                         \
  |  |  113|   196k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 196k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   196k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 196k]
  |  |  ------------------
  ------------------
 1384|   196k|	KASSERT(len >= 0, ("m_copydata, negative len %d", len));
  ------------------
  |  |  112|   196k|	do {                         \
  |  |  113|   196k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 196k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   196k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 196k]
  |  |  ------------------
  ------------------
 1385|   197k|	while (off > 0) {
  ------------------
  |  Branch (1385:9): [True: 1.68k, False: 195k]
  ------------------
 1386|  1.68k|		KASSERT(m != NULL, ("m_copydata, offset > size of mbuf chain"));
  ------------------
  |  |  112|  1.68k|	do {                         \
  |  |  113|  1.68k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 1.68k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.68k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 1.68k]
  |  |  ------------------
  ------------------
 1387|  1.68k|		if (off < m->m_len)
  ------------------
  |  |  218|  1.68k|#define	m_len		m_hdr.mh_len
  ------------------
  |  Branch (1387:7): [True: 849, False: 839]
  ------------------
 1388|    849|			break;
 1389|    839|		off -= m->m_len;
  ------------------
  |  |  218|    839|#define	m_len		m_hdr.mh_len
  ------------------
 1390|    839|		m = m->m_next;
  ------------------
  |  |  217|    839|#define	m_next		m_hdr.mh_next
  ------------------
 1391|    839|	}
 1392|   778k|	while (len > 0) {
  ------------------
  |  Branch (1392:9): [True: 582k, False: 196k]
  ------------------
 1393|   582k|		KASSERT(m != NULL, ("m_copydata, length > size of mbuf chain"));
  ------------------
  |  |  112|   582k|	do {                         \
  |  |  113|   582k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 582k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   582k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 582k]
  |  |  ------------------
  ------------------
 1394|   582k|		count = min(m->m_len - off, len);
  ------------------
  |  |   66|   582k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 1.09k, False: 581k]
  |  |  ------------------
  ------------------
 1395|   582k|		memcpy(cp, mtod(m, caddr_t) + off, count);
  ------------------
  |  |   96|   582k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|   582k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 1396|   582k|		len -= count;
 1397|   582k|		cp += count;
 1398|   582k|		off = 0;
 1399|   582k|		m = m->m_next;
  ------------------
  |  |  217|   582k|#define	m_next		m_hdr.mh_next
  ------------------
 1400|   582k|	}
 1401|   196k|}
m_adj:
 1431|  1.59k|{
 1432|  1.59k|	int len = req_len;
 1433|  1.59k|	struct mbuf *m;
 1434|  1.59k|	int count;
 1435|       |
 1436|  1.59k|	if ((m = mp) == NULL)
  ------------------
  |  Branch (1436:6): [True: 0, False: 1.59k]
  ------------------
 1437|      0|		return;
 1438|  1.59k|	if (len >= 0) {
  ------------------
  |  Branch (1438:6): [True: 827, False: 771]
  ------------------
 1439|       |		/*
 1440|       |		 * Trim from head.
 1441|       |		 */
 1442|  2.45k|		while (m != NULL && len > 0) {
  ------------------
  |  Branch (1442:10): [True: 2.45k, False: 0]
  |  Branch (1442:23): [True: 1.62k, False: 827]
  ------------------
 1443|  1.62k|			if (m->m_len <= len) {
  ------------------
  |  |  218|  1.62k|#define	m_len		m_hdr.mh_len
  ------------------
  |  Branch (1443:8): [True: 839, False: 789]
  ------------------
 1444|    839|				len -= m->m_len;
  ------------------
  |  |  218|    839|#define	m_len		m_hdr.mh_len
  ------------------
 1445|    839|				m->m_len = 0;
  ------------------
  |  |  218|    839|#define	m_len		m_hdr.mh_len
  ------------------
 1446|    839|				m = m->m_next;
  ------------------
  |  |  217|    839|#define	m_next		m_hdr.mh_next
  ------------------
 1447|    839|			} else {
 1448|    789|				m->m_len -= len;
  ------------------
  |  |  218|    789|#define	m_len		m_hdr.mh_len
  ------------------
 1449|    789|				m->m_data += len;
  ------------------
  |  |  219|    789|#define	m_data		m_hdr.mh_data
  ------------------
 1450|    789|				len = 0;
 1451|    789|			}
 1452|  1.62k|		}
 1453|    827|		m = mp;
 1454|    827|		if (mp->m_flags & M_PKTHDR)
  ------------------
  |  |  221|    827|#define	m_flags		m_hdr.mh_flags
  ------------------
              		if (mp->m_flags & M_PKTHDR)
  ------------------
  |  |  234|    827|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (1454:7): [True: 128, False: 699]
  ------------------
 1455|    128|			m->m_pkthdr.len -= (req_len - len);
  ------------------
  |  |  224|    128|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
 1456|    827|	} 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|    771|		len = -len;
 1465|    771|		count = 0;
 1466|  1.39k|		for (;;) {
 1467|  1.39k|			count += m->m_len;
  ------------------
  |  |  218|  1.39k|#define	m_len		m_hdr.mh_len
  ------------------
 1468|  1.39k|			if (m->m_next == (struct mbuf *)0)
  ------------------
  |  |  217|  1.39k|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (1468:8): [True: 771, False: 626]
  ------------------
 1469|    771|				break;
 1470|    626|			m = m->m_next;
  ------------------
  |  |  217|    626|#define	m_next		m_hdr.mh_next
  ------------------
 1471|    626|		}
 1472|    771|		if (m->m_len >= len) {
  ------------------
  |  |  218|    771|#define	m_len		m_hdr.mh_len
  ------------------
  |  Branch (1472:7): [True: 771, False: 0]
  ------------------
 1473|    771|			m->m_len -= len;
  ------------------
  |  |  218|    771|#define	m_len		m_hdr.mh_len
  ------------------
 1474|    771|			if (mp->m_flags & M_PKTHDR)
  ------------------
  |  |  221|    771|#define	m_flags		m_hdr.mh_flags
  ------------------
              			if (mp->m_flags & M_PKTHDR)
  ------------------
  |  |  234|    771|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (1474:8): [True: 80, False: 691]
  ------------------
 1475|     80|				mp->m_pkthdr.len -= len;
  ------------------
  |  |  224|     80|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
 1476|    771|			return;
 1477|    771|		}
 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.59k|}
user_mbuf.c:mbuf_constructor_dup:
   85|  1.53M|{
   86|  1.53M|	int flags = pkthdr;
   87|       |
   88|  1.53M|	m->m_next = NULL;
  ------------------
  |  |  217|  1.53M|#define	m_next		m_hdr.mh_next
  ------------------
   89|  1.53M|	m->m_nextpkt = NULL;
  ------------------
  |  |  222|  1.53M|#define	m_nextpkt	m_hdr.mh_nextpkt
  ------------------
   90|  1.53M|	m->m_len = 0;
  ------------------
  |  |  218|  1.53M|#define	m_len		m_hdr.mh_len
  ------------------
   91|  1.53M|	m->m_flags = flags;
  ------------------
  |  |  221|  1.53M|#define	m_flags		m_hdr.mh_flags
  ------------------
   92|  1.53M|	m->m_type = type;
  ------------------
  |  |  220|  1.53M|#define	m_type		m_hdr.mh_type
  ------------------
   93|  1.53M|	if (flags & M_PKTHDR) {
  ------------------
  |  |  234|  1.53M|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (93:6): [True: 152k, False: 1.37M]
  ------------------
   94|   152k|		m->m_data = m->m_pktdat;
  ------------------
  |  |  219|   152k|#define	m_data		m_hdr.mh_data
  ------------------
              		m->m_data = m->m_pktdat;
  ------------------
  |  |  226|   152k|#define	m_pktdat	M_dat.MH.MH_dat.MH_databuf
  ------------------
   95|   152k|		m->m_pkthdr.rcvif = NULL;
  ------------------
  |  |  224|   152k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
   96|   152k|		m->m_pkthdr.len = 0;
  ------------------
  |  |  224|   152k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
   97|   152k|		m->m_pkthdr.header = NULL;
  ------------------
  |  |  224|   152k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
   98|   152k|		m->m_pkthdr.csum_flags = 0;
  ------------------
  |  |  224|   152k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
   99|   152k|		m->m_pkthdr.csum_data = 0;
  ------------------
  |  |  224|   152k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
  100|   152k|		m->m_pkthdr.tso_segsz = 0;
  ------------------
  |  |  224|   152k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
  101|   152k|		m->m_pkthdr.ether_vtag = 0;
  ------------------
  |  |  224|   152k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
  102|   152k|		SLIST_INIT(&m->m_pkthdr.tags);
  ------------------
  |  Branch (102:3): [Folded, False: 152k]
  ------------------
  103|   152k|	} else
  104|  1.37M|		m->m_data = m->m_dat;
  ------------------
  |  |  219|  1.37M|#define	m_data		m_hdr.mh_data
  ------------------
              		m->m_data = m->m_dat;
  ------------------
  |  |  227|  1.37M|#define	m_dat		M_dat.M_databuf
  ------------------
  105|       |
  106|  1.53M|	return (0);
  107|  1.53M|}
user_mbuf.c:clust_constructor_dup:
  210|  74.4k|{
  211|  74.4k|	u_int *refcnt;
  212|  74.4k|	int type, size;
  213|       |
  214|  74.4k|	if (m == NULL) {
  ------------------
  |  Branch (214:6): [True: 0, False: 74.4k]
  ------------------
  215|      0|		return;
  216|      0|	}
  217|       |	/* Assigning cluster of MCLBYTES. TODO: Add jumbo frame functionality */
  218|  74.4k|	type = EXT_CLUSTER;
  ------------------
  |  |  270|  74.4k|#define	EXT_CLUSTER	1	/* mbuf cluster */
  ------------------
  219|  74.4k|	size = MCLBYTES;
  ------------------
  |  |   51|  74.4k|#define MCLBYTES 2048
  ------------------
  220|       |
  221|  74.4k|	refcnt = SCTP_ZONE_GET(zone_ext_refcnt, u_int);
  ------------------
  |  |  703|  74.4k|        (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|  74.4k|	*refcnt = 1;
  231|  74.4k|	m->m_ext.ext_buf = (caddr_t)m_clust;
  ------------------
  |  |  225|  74.4k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  232|  74.4k|	m->m_data = m->m_ext.ext_buf;
  ------------------
  |  |  219|  74.4k|#define	m_data		m_hdr.mh_data
  ------------------
              	m->m_data = m->m_ext.ext_buf;
  ------------------
  |  |  225|  74.4k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  233|  74.4k|	m->m_flags |= M_EXT;
  ------------------
  |  |  221|  74.4k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	m->m_flags |= M_EXT;
  ------------------
  |  |  233|  74.4k|#define	M_EXT		0x0001	/* has associated external storage */
  ------------------
  234|  74.4k|	m->m_ext.ext_free = NULL;
  ------------------
  |  |  225|  74.4k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  235|  74.4k|	m->m_ext.ext_args = NULL;
  ------------------
  |  |  225|  74.4k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  236|  74.4k|	m->m_ext.ext_size = size;
  ------------------
  |  |  225|  74.4k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  237|  74.4k|	m->m_ext.ext_type = type;
  ------------------
  |  |  225|  74.4k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  238|  74.4k|	m->m_ext.ref_cnt = refcnt;
  ------------------
  |  |  225|  74.4k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  239|  74.4k|	return;
  240|  74.4k|}
user_mbuf.c:mb_ctor_mbuf:
  569|  1.53M|{
  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.53M|	return (0);
  601|  1.53M|}
user_mbuf.c:mb_dtor_mbuf:
  614|  1.53M|{
  615|  1.53M|	struct mbuf *m;
  616|       |
  617|  1.53M|	m = (struct mbuf *)mem;
  618|  1.53M|	if ((m->m_flags & M_PKTHDR) != 0) {
  ------------------
  |  |  221|  1.53M|#define	m_flags		m_hdr.mh_flags
  ------------------
              	if ((m->m_flags & M_PKTHDR) != 0) {
  ------------------
  |  |  234|  1.53M|#define	M_PKTHDR	0x0002	/* start of record */
  ------------------
  |  Branch (618:6): [True: 152k, False: 1.37M]
  ------------------
  619|       |		m_tag_delete_chain(m, NULL);
  620|   152k|	}
  621|  1.53M|}
user_mbuf.c:mb_ctor_clust:
  634|  74.4k|{
  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|  74.4k|	return (0);
  667|  74.4k|}
user_mbuf.c:mb_dtor_clust:
  672|  74.1k|{
  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.1k|}
user_mbuf.c:mb_dupcl:
 1084|   183k|{
 1085|   183k|	KASSERT((m->m_flags & M_EXT) == M_EXT, ("%s: M_EXT not set", __func__));
  ------------------
  |  |  112|   183k|	do {                         \
  |  |  113|   183k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 183k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   183k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 183k]
  |  |  ------------------
  ------------------
 1086|   183k|	KASSERT(m->m_ext.ref_cnt != NULL, ("%s: ref_cnt not set", __func__));
  ------------------
  |  |  112|   183k|	do {                         \
  |  |  113|   183k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 183k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   183k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 183k]
  |  |  ------------------
  ------------------
 1087|   183k|	KASSERT((n->m_flags & M_EXT) == 0, ("%s: M_EXT set", __func__));
  ------------------
  |  |  112|   183k|	do {                         \
  |  |  113|   183k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 183k]
  |  |  ------------------
  |  |  114|      0|			panic args ; \
  |  |  ------------------
  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  ------------------
  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  109|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      0|		}                    \
  |  |  116|   183k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 183k]
  |  |  ------------------
  ------------------
 1088|       |
 1089|   183k|	if (*(m->m_ext.ref_cnt) == 1)
  ------------------
  |  |  225|   183k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
  |  Branch (1089:6): [True: 3.46k, False: 180k]
  ------------------
 1090|  3.46k|		*(m->m_ext.ref_cnt) += 1;
  ------------------
  |  |  225|  3.46k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
 1091|   180k|	else
 1092|   180k|		atomic_add_int(m->m_ext.ref_cnt, 1);
  ------------------
  |  |   94|   180k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  ------------------
 1093|   183k|	n->m_ext.ext_buf = m->m_ext.ext_buf;
  ------------------
  |  |  225|   183k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
              	n->m_ext.ext_buf = m->m_ext.ext_buf;
  ------------------
  |  |  225|   183k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
 1094|   183k|	n->m_ext.ext_free = m->m_ext.ext_free;
  ------------------
  |  |  225|   183k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
              	n->m_ext.ext_free = m->m_ext.ext_free;
  ------------------
  |  |  225|   183k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
 1095|   183k|	n->m_ext.ext_args = m->m_ext.ext_args;
  ------------------
  |  |  225|   183k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
              	n->m_ext.ext_args = m->m_ext.ext_args;
  ------------------
  |  |  225|   183k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
 1096|   183k|	n->m_ext.ext_size = m->m_ext.ext_size;
  ------------------
  |  |  225|   183k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
              	n->m_ext.ext_size = m->m_ext.ext_size;
  ------------------
  |  |  225|   183k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
 1097|   183k|	n->m_ext.ref_cnt = m->m_ext.ref_cnt;
  ------------------
  |  |  225|   183k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
              	n->m_ext.ref_cnt = m->m_ext.ref_cnt;
  ------------------
  |  |  225|   183k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
 1098|   183k|	n->m_ext.ext_type = m->m_ext.ext_type;
  ------------------
  |  |  225|   183k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
              	n->m_ext.ext_type = m->m_ext.ext_type;
  ------------------
  |  |  225|   183k|#define	m_ext		M_dat.MH.MH_dat.MH_ext
  ------------------
 1099|   183k|	n->m_flags |= M_EXT;
  ------------------
  |  |  221|   183k|#define	m_flags		m_hdr.mh_flags
  ------------------
              	n->m_flags |= M_EXT;
  ------------------
  |  |  233|   183k|#define	M_EXT		0x0001	/* has associated external storage */
  ------------------
 1100|   183k|}

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|     62|	while (1) {
  ------------------
  |  Branch (310:9): [True: 61, Folded]
  ------------------
  311|    189|		for (i = 0; i < to_fill; i++) {
  ------------------
  |  Branch (311:15): [True: 128, False: 61]
  ------------------
  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|     61|		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|     61|		memset(&msg, 0, sizeof(struct msghdr));
  343|     61|		msg.msg_name = NULL;
  344|     61|		msg.msg_namelen = 0;
  345|     61|		msg.msg_iov = recv_iovec;
  346|     61|		msg.msg_iovlen = MAXLEN_MBUF_CHAIN;
  ------------------
  |  |   75|     61|#define MAXLEN_MBUF_CHAIN 128
  ------------------
  347|     61|		msg.msg_control = NULL;
  348|     61|		msg.msg_controllen = 0;
  349|     61|		res = recvmsg(SCTP_BASE_VAR(userspace_rawsctp), &msg, 0);
  ------------------
  |  |  591|     61|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  350|     61|		if (res < 0) {
  ------------------
  |  Branch (350:7): [True: 60, False: 1]
  ------------------
  351|     60|			if (errno == EAGAIN || errno == EINTR) {
  ------------------
  |  Branch (351:8): [True: 60, False: 0]
  |  Branch (351:27): [True: 0, False: 0]
  ------------------
  352|     60|				continue;
  353|     60|			} else {
  354|      0|				break;
  355|      0|			}
  356|     60|		}
  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|     61|	for (;;) {
  498|    189|		for (i = 0; i < to_fill; i++) {
  ------------------
  |  Branch (498:15): [True: 128, False: 61]
  ------------------
  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|     61|		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|     61|		memset(&msg, 0, sizeof(struct msghdr));
  540|     61|		memset(&src, 0, sizeof(struct sockaddr_in6));
  541|     61|		memset(&dst, 0, sizeof(struct sockaddr_in6));
  542|     61|		memset(cmsgbuf, 0, CMSG_SPACE(sizeof (struct in6_pktinfo)));
  543|     61|		msg.msg_name = (void *)&src;
  544|     61|		msg.msg_namelen = sizeof(struct sockaddr_in6);
  545|     61|		msg.msg_iov = recv_iovec;
  546|     61|		msg.msg_iovlen = MAXLEN_MBUF_CHAIN;
  ------------------
  |  |   75|     61|#define MAXLEN_MBUF_CHAIN 128
  ------------------
  547|     61|		msg.msg_control = (void *)cmsgbuf;
  548|     61|		msg.msg_controllen = (socklen_t)CMSG_SPACE(sizeof (struct in6_pktinfo));
  549|     61|		msg.msg_flags = 0;
  550|     61|		res = recvmsg(SCTP_BASE_VAR(userspace_rawsctp6), &msg, 0);
  ------------------
  |  |  591|     61|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  551|     61|		if (res < 0) {
  ------------------
  |  Branch (551:7): [True: 60, False: 1]
  ------------------
  552|     60|			if (errno == EAGAIN || errno == EINTR) {
  ------------------
  |  Branch (552:8): [True: 60, False: 0]
  |  Branch (552:27): [True: 0, False: 0]
  ------------------
  553|     60|				continue;
  554|     60|			} else {
  555|      0|				break;
  556|      0|			}
  557|     60|		}
  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.47k|{
  142|  3.47k|	SOCKBUF_LOCK_ASSERT(&so->so_rcv);
  ------------------
  |  |  514|  3.47k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  3.47k|	do {                         \
  |  |  |  |  113|  3.47k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 3.47k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.47k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 3.47k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  143|  3.47k|	so->so_rcv.sb_state |= SBS_CANTRCVMORE;
  ------------------
  |  |  360|  3.47k|#define	SBS_CANTRCVMORE		0x0020	/* can't receive more data from peer */
  ------------------
  144|  3.47k|	sorwakeup_locked(so);
  ------------------
  |  |  511|  3.47k|#define	sorwakeup_locked(so) do {					\
  |  |  512|  3.47k|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  ------------------
  |  |  |  |  514|  3.47k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  3.47k|	do {                         \
  |  |  |  |  |  |  113|  3.47k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 3.47k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) 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.47k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 3.47k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  513|  3.47k|	if (sb_notify(&(so)->so_rcv))					\
  |  |  ------------------
  |  |  |  |  499|  3.47k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  ------------------
  |  |  |  |  |  |  203|  3.47k|#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.47k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  ------------------
  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  ------------------
  |  |  |  |  |  |  205|  3.47k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (499:23): [True: 3.47k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  500|  3.47k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  ------------------
  |  |  |  |  |  |  206|  3.47k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  ------------------
  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  ------------------
  |  |  |  |  |  |  208|  3.47k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  ------------------
  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  ------------------
  |  |  |  |  |  |  209|  3.47k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  514|  3.47k|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  515|  3.47k|	else								\
  |  |  516|  3.47k|		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.47k|} while (0)
  |  |  ------------------
  |  |  |  Branch (517:10): [Folded, False: 3.47k]
  |  |  ------------------
  ------------------
  145|  3.47k|}
socantrcvmore:
  148|  1.74k|{
  149|  1.74k|	SOCKBUF_LOCK(&so->so_rcv);
  ------------------
  |  |  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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  150|  1.74k|	socantrcvmore_locked(so);
  151|  1.74k|}
socantsendmore_locked:
  155|  1.83k|{
  156|  1.83k|	SOCKBUF_LOCK_ASSERT(&so->so_snd);
  ------------------
  |  |  514|  1.83k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.83k|	do {                         \
  |  |  |  |  113|  1.83k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.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|  1.83k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.83k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  157|  1.83k|	so->so_snd.sb_state |= SBS_CANTSENDMORE;
  ------------------
  |  |  359|  1.83k|#define	SBS_CANTSENDMORE	0x0010	/* can't send more data to peer */
  ------------------
  158|  1.83k|	sowwakeup_locked(so);
  ------------------
  |  |  524|  1.83k|#define	sowwakeup_locked(so) do {					\
  |  |  525|  1.83k|	SOCKBUF_LOCK_ASSERT(&(so)->so_snd);				\
  |  |  ------------------
  |  |  |  |  514|  1.83k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  1.83k|	do {                         \
  |  |  |  |  |  |  113|  1.83k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.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|  1.83k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 1.83k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  526|  1.83k|	if (sb_notify(&(so)->so_snd))					\
  |  |  ------------------
  |  |  |  |  499|  1.83k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  ------------------
  |  |  |  |  |  |  203|  1.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|  1.83k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  ------------------
  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  ------------------
  |  |  |  |  |  |  205|  1.83k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (499:23): [True: 1.83k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  500|  1.83k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  ------------------
  |  |  |  |  |  |  206|  1.83k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  ------------------
  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  ------------------
  |  |  |  |  |  |  208|  1.83k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  ------------------
  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  ------------------
  |  |  |  |  |  |  209|  1.83k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  527|  1.83k|		sowakeup((so), &(so)->so_snd); 				\
  |  |  528|  1.83k|	else								\
  |  |  529|  1.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|  1.83k|} while (0)
  |  |  ------------------
  |  |  |  Branch (530:10): [Folded, False: 1.83k]
  |  |  ------------------
  ------------------
  159|  1.83k|}
socantsendmore:
  163|  1.83k|{
  164|  1.83k|	SOCKBUF_LOCK(&so->so_snd);
  ------------------
  |  |  517|  1.83k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  1.83k|	do {                         \
  |  |  |  |  113|  1.83k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 1.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|  1.83k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 1.83k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  165|  1.83k|	socantsendmore_locked(so);
  166|  1.83k|}
sofree:
  252|  11.1k|{
  253|  11.1k|	struct socket *head;
  254|       |
  255|  11.1k|	ACCEPT_LOCK_ASSERT();
  ------------------
  |  |  263|  11.1k|          KASSERT(pthread_mutex_trylock(&accept_mtx) == EBUSY, ("%s: accept_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  256|  11.1k|	SOCK_LOCK_ASSERT(so);
  ------------------
  |  |  325|  11.1k|#define	SOCK_LOCK_ASSERT(_so)		SOCKBUF_LOCK_ASSERT(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  514|  11.1k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  257|       |	/* SS_NOFDREF unset in accept call.  this condition seems irrelevant
  258|       |	 *  for __Userspace__...
  259|       |	 */
  260|  11.1k|	if (so->so_count != 0 ||
  ------------------
  |  Branch (260:6): [True: 0, False: 11.1k]
  ------------------
  261|  11.1k|	    (so->so_state & SS_PROTOREF) || (so->so_qstate & SQ_COMP)) {
  ------------------
  |  |  354|  11.1k|#define	SS_PROTOREF		0x4000	/* strong protocol reference */
  ------------------
              	    (so->so_state & SS_PROTOREF) || (so->so_qstate & SQ_COMP)) {
  ------------------
  |  |  367|  11.1k|#define	SQ_COMP			0x1000	/* unaccepted, complete connection */
  ------------------
  |  Branch (261:6): [True: 0, False: 11.1k]
  |  Branch (261:38): [True: 0, False: 11.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|  11.1k|	head = so->so_head;
  267|  11.1k|	if (head != NULL) {
  ------------------
  |  Branch (267:6): [True: 0, False: 11.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|  11.1k|	KASSERT((so->so_qstate & SQ_COMP) == 0 &&
  ------------------
  |  |  112|  11.1k|	do {                         \
  |  |  113|  22.3k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:9): [True: 11.1k, False: 0]
  |  |  |  Branch (113:9): [True: 11.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|  11.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  ------------------
  ------------------
  281|  11.1k|	    (so->so_qstate & SQ_INCOMP) == 0,
  282|  11.1k|	    ("sofree: so_head == NULL, but still SQ_COMP(%d) or SQ_INCOMP(%d)",
  283|  11.1k|	    so->so_qstate & SQ_COMP, so->so_qstate & SQ_INCOMP));
  284|  11.1k|	if (so->so_options & SCTP_SO_ACCEPTCONN) {
  ------------------
  |  |   53|  11.1k|#define SCTP_SO_ACCEPTCONN 0x0002
  ------------------
  |  Branch (284:6): [True: 0, False: 11.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|  11.1k|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|  11.1k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  11.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  289|  11.1k|	ACCEPT_UNLOCK();
  ------------------
  |  |  257|  11.1k|#define	ACCEPT_UNLOCK()	KASSERT(pthread_mutex_unlock(&accept_mtx) == 0, ("%s: accept_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  290|  11.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|  11.1k|	sodealloc(so);
  306|  11.1k|}
soisconnecting:
  326|  11.1k|{
  327|       |
  328|  11.1k|	SOCK_LOCK(so);
  ------------------
  |  |  527|  11.1k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  11.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  329|  11.1k|	so->so_state &= ~(SS_ISCONNECTED|SS_ISDISCONNECTING);
  ------------------
  |  |  340|  11.1k|#define	SS_ISCONNECTED		0x0002	/* socket connected to a peer */
  ------------------
              	so->so_state &= ~(SS_ISCONNECTED|SS_ISDISCONNECTING);
  ------------------
  |  |  342|  11.1k|#define	SS_ISDISCONNECTING	0x0008	/* in process of disconnecting */
  ------------------
  330|  11.1k|	so->so_state |= SS_ISCONNECTING;
  ------------------
  |  |  341|  11.1k|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
  331|  11.1k|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|  11.1k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  11.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  332|  11.1k|}
wakeup:
  372|  7.37k|{
  373|  7.37k|	SOCK_LOCK(so);
  ------------------
  |  |  527|  7.37k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  7.37k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  7.37k|	do {                         \
  |  |  |  |  |  |  113|  7.37k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 7.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|  7.37k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 7.37k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  374|       |#if defined(_WIN32)
  375|       |	WakeAllConditionVariable(&(so)->timeo_cond);
  376|       |#else
  377|  7.37k|	pthread_cond_broadcast(&(so)->timeo_cond);
  378|  7.37k|#endif
  379|  7.37k|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|  7.37k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  7.37k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  7.37k|	do {                         \
  |  |  |  |  |  |  113|  7.37k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 7.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|  7.37k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 7.37k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  380|  7.37k|}
soisconnected:
  412|  5.64k|{
  413|  5.64k|	struct socket *head;
  414|       |
  415|  5.64k|	ACCEPT_LOCK();
  ------------------
  |  |  256|  5.64k|#define	ACCEPT_LOCK()	KASSERT(pthread_mutex_lock(&accept_mtx) == 0, ("%s: accept_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  5.64k|	do {                         \
  |  |  |  |  113|  5.64k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.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|  5.64k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.64k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  416|  5.64k|	SOCK_LOCK(so);
  ------------------
  |  |  527|  5.64k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  5.64k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.64k|	do {                         \
  |  |  |  |  |  |  113|  5.64k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.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|  5.64k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.64k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  417|  5.64k|	so->so_state &= ~(SS_ISCONNECTING|SS_ISDISCONNECTING|SS_ISCONFIRMING);
  ------------------
  |  |  341|  5.64k|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
              	so->so_state &= ~(SS_ISCONNECTING|SS_ISDISCONNECTING|SS_ISCONFIRMING);
  ------------------
  |  |  342|  5.64k|#define	SS_ISDISCONNECTING	0x0008	/* in process of disconnecting */
  ------------------
              	so->so_state &= ~(SS_ISCONNECTING|SS_ISDISCONNECTING|SS_ISCONFIRMING);
  ------------------
  |  |  345|  5.64k|#define	SS_ISCONFIRMING		0x0400	/* deciding to accept connection req */
  ------------------
  418|  5.64k|	so->so_state |= SS_ISCONNECTED;
  ------------------
  |  |  340|  5.64k|#define	SS_ISCONNECTED		0x0002	/* socket connected to a peer */
  ------------------
  419|  5.64k|	head = so->so_head;
  420|  5.64k|	if (head != NULL && (so->so_qstate & SQ_INCOMP)) {
  ------------------
  |  |  366|      0|#define	SQ_INCOMP		0x0800	/* unaccepted, incomplete connection */
  ------------------
  |  Branch (420:6): [True: 0, False: 5.64k]
  |  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.64k|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|  5.64k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  5.64k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.64k|	do {                         \
  |  |  |  |  |  |  113|  5.64k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.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|  5.64k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.64k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  434|  5.64k|	ACCEPT_UNLOCK();
  ------------------
  |  |  257|  5.64k|#define	ACCEPT_UNLOCK()	KASSERT(pthread_mutex_unlock(&accept_mtx) == 0, ("%s: accept_mtx not locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  5.64k|	do {                         \
  |  |  |  |  113|  5.64k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.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|  5.64k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 5.64k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  435|  5.64k|	wakeup(&so->so_timeo, so);
  436|  5.64k|	sorwakeup(so);
  ------------------
  |  |  519|  5.64k|#define	sorwakeup(so) do {						\
  |  |  520|  5.64k|	SOCKBUF_LOCK(&(so)->so_rcv);					\
  |  |  ------------------
  |  |  |  |  517|  5.64k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.64k|	do {                         \
  |  |  |  |  |  |  113|  5.64k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.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|  5.64k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.64k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  521|  5.64k|	sorwakeup_locked(so);						\
  |  |  ------------------
  |  |  |  |  511|  5.64k|#define	sorwakeup_locked(so) do {					\
  |  |  |  |  512|  5.64k|	SOCKBUF_LOCK_ASSERT(&(so)->so_rcv);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  5.64k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  5.64k|	do {                         \
  |  |  |  |  |  |  |  |  113|  5.64k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.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|  5.64k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.64k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  513|  5.64k|	if (sb_notify(&(so)->so_rcv))					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  499|  5.64k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  203|  5.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|  5.64k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  205|  5.64k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (499:23): [True: 5.64k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  500|  5.64k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  206|  5.64k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  208|  5.64k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  209|  5.64k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  514|  5.64k|		sowakeup((so), &(so)->so_rcv);	 			\
  |  |  |  |  515|  5.64k|	else								\
  |  |  |  |  516|  5.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|  5.64k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (517:10): [Folded, False: 5.64k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  522|  5.64k|} while (0)
  |  |  ------------------
  |  |  |  Branch (522:10): [Folded, False: 5.64k]
  |  |  ------------------
  ------------------
  437|  5.64k|	sowwakeup(so);
  ------------------
  |  |  532|  5.64k|#define	sowwakeup(so) do {						\
  |  |  533|  5.64k|	SOCKBUF_LOCK(&(so)->so_snd);					\
  |  |  ------------------
  |  |  |  |  517|  5.64k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  5.64k|	do {                         \
  |  |  |  |  |  |  113|  5.64k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.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|  5.64k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.64k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  534|  5.64k|	sowwakeup_locked(so);						\
  |  |  ------------------
  |  |  |  |  524|  5.64k|#define	sowwakeup_locked(so) do {					\
  |  |  |  |  525|  5.64k|	SOCKBUF_LOCK_ASSERT(&(so)->so_snd);				\
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  5.64k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  5.64k|	do {                         \
  |  |  |  |  |  |  |  |  113|  5.64k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 5.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|  5.64k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 5.64k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  526|  5.64k|	if (sb_notify(&(so)->so_snd))					\
  |  |  |  |  ------------------
  |  |  |  |  |  |  499|  5.64k|#define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  203|  5.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|  5.64k|#define	SB_SEL		0x08		/* someone is selecting */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define	sb_notify(sb)	(((sb)->sb_flags & (SB_WAIT | SB_SEL | SB_ASYNC | \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  205|  5.64k|#define	SB_ASYNC	0x10		/* ASYNC I/O, need signals */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (499:23): [True: 5.64k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  500|  5.64k|    SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  206|  5.64k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  208|  5.64k|#define	SB_AIO		0x80		/* AIO operations queued */
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   SB_UPCALL | SB_AIO | SB_KNOTE)) != 0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  209|  5.64k|#define	SB_KNOTE	0x100		/* kernel note attached */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  527|  5.64k|		sowakeup((so), &(so)->so_snd); 				\
  |  |  |  |  528|  5.64k|	else								\
  |  |  |  |  529|  5.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|  5.64k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (530:10): [Folded, False: 5.64k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  535|  5.64k|} while (0)
  |  |  ------------------
  |  |  |  Branch (535:10): [Folded, False: 5.64k]
  |  |  ------------------
  ------------------
  438|       |
  439|  5.64k|}
uiomove:
  600|   653k|{
  601|   653k|	struct iovec *iov;
  602|   653k|	size_t cnt;
  603|   653k|	int error = 0;
  604|       |
  605|   653k|	if ((uio->uio_rw != UIO_READ) &&
  ------------------
  |  Branch (605:6): [True: 5.96k, False: 648k]
  ------------------
  606|  5.96k|	    (uio->uio_rw != UIO_WRITE)) {
  ------------------
  |  Branch (606:6): [True: 0, False: 5.96k]
  ------------------
  607|      0|		return (EINVAL);
  608|      0|	}
  609|       |
  610|  1.30M|	while (n > 0 && uio->uio_resid) {
  ------------------
  |  Branch (610:9): [True: 653k, False: 653k]
  |  Branch (610:18): [True: 653k, False: 0]
  ------------------
  611|   653k|		iov = uio->uio_iov;
  612|   653k|		cnt = iov->iov_len;
  613|   653k|		if (cnt == 0) {
  ------------------
  |  Branch (613:7): [True: 0, False: 653k]
  ------------------
  614|      0|			uio->uio_iov++;
  615|      0|			uio->uio_iovcnt--;
  616|      0|			continue;
  617|      0|		}
  618|   653k|		if (cnt > (size_t)n)
  ------------------
  |  Branch (618:7): [True: 647k, False: 6.17k]
  ------------------
  619|   647k|			cnt = n;
  620|       |
  621|   653k|		switch (uio->uio_segflg) {
  ------------------
  |  Branch (621:11): [True: 653k, False: 0]
  ------------------
  622|       |
  623|   653k|		case UIO_USERSPACE:
  ------------------
  |  Branch (623:3): [True: 653k, False: 0]
  ------------------
  624|   653k|			if (uio->uio_rw == UIO_READ)
  ------------------
  |  Branch (624:8): [True: 648k, False: 5.96k]
  ------------------
  625|   648k|				error = copyout(cp, iov->iov_base, cnt);
  ------------------
  |  |  575|   648k|# define copyout(k, u, len)	copy_to_user(u, k, len)
  ------------------
  626|  5.96k|			else
  627|  5.96k|				error = copyin(iov->iov_base, cp, cnt);
  ------------------
  |  |  569|  5.96k|# define copyin(u, k, len)	copy_from_user(k, u, len)
  ------------------
  628|   653k|			if (error)
  ------------------
  |  Branch (628:8): [True: 0, False: 653k]
  ------------------
  629|      0|				goto out;
  630|   653k|			break;
  631|       |
  632|   653k|		case UIO_SYSSPACE:
  ------------------
  |  Branch (632:3): [True: 0, False: 653k]
  ------------------
  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|   653k|		}
  639|   653k|		iov->iov_base = (char *)iov->iov_base + cnt;
  640|   653k|		iov->iov_len -= cnt;
  641|   653k|		uio->uio_resid -= cnt;
  642|   653k|		uio->uio_offset += (off_t)cnt;
  643|   653k|		cp = (char *)cp + cnt;
  644|   653k|		n -= (int)cnt;
  645|   653k|	}
  646|   653k|out:
  647|   653k|	return (error);
  648|   653k|}
getsockaddr:
  654|  22.3k|{
  655|  22.3k|	struct sockaddr *sa;
  656|  22.3k|	int error;
  657|       |
  658|  22.3k|	if (len > SOCK_MAXADDRLEN)
  ------------------
  |  |   48|  22.3k|#define SOCK_MAXADDRLEN 255
  ------------------
  |  Branch (658:6): [True: 0, False: 22.3k]
  ------------------
  659|      0|		return (ENAMETOOLONG);
  660|  22.3k|	if (len < offsetof(struct sockaddr, sa_data))
  ------------------
  |  Branch (660:6): [True: 0, False: 22.3k]
  ------------------
  661|      0|		return (EINVAL);
  662|  22.3k|	MALLOC(sa, struct sockaddr *, len, M_SONAME, M_WAITOK);
  ------------------
  |  |  196|  22.3k|    ((space) = (cast)malloc((u_long)(size)));                           \
  |  |  197|  22.3k|    do {								\
  |  |  198|  22.3k|        if (flags & M_ZERO) {                                            \
  |  |  ------------------
  |  |  |  |   62|  44.6k|#define	M_ZERO		0x0100		/* bzero the allocation */
  |  |  ------------------
  |  |  |  Branch (198:13): [Folded, False: 22.3k]
  |  |  ------------------
  |  |  199|      0|	  memset(space,0,size);                                         \
  |  |  200|      0|	}								\
  |  |  201|  22.3k|    } while (0);
  |  |  ------------------
  |  |  |  Branch (201:14): [Folded, False: 22.3k]
  |  |  ------------------
  ------------------
  663|  22.3k|	error = copyin(uaddr, sa, len);
  ------------------
  |  |  569|  22.3k|# define copyin(u, k, len)	copy_from_user(k, u, len)
  ------------------
  664|  22.3k|	if (error) {
  ------------------
  |  Branch (664:6): [True: 0, False: 22.3k]
  ------------------
  665|      0|		FREE(sa, M_SONAME);
  ------------------
  |  |  191|      0|#define	FREE(addr, type) free((addr))
  ------------------
  666|  22.3k|	} else {
  667|       |#ifdef HAVE_SA_LEN
  668|       |		sa->sa_len = len;
  669|       |#endif
  670|  22.3k|		*namp = sa;
  671|  22.3k|	}
  672|  22.3k|	return (error);
  673|  22.3k|}
usrsctp_sendv:
  801|  6.76k|{
  802|  6.76k|	struct sctp_sndrcvinfo sinfo;
  803|  6.76k|	struct uio auio;
  804|  6.76k|	struct iovec iov[1];
  805|  6.76k|	int use_sinfo;
  806|  6.76k|	sctp_assoc_t *assoc_id;
  807|       |
  808|  6.76k|	if (so == NULL) {
  ------------------
  |  Branch (808:6): [True: 0, False: 6.76k]
  ------------------
  809|      0|		errno = EBADF;
  810|      0|		return (-1);
  811|      0|	}
  812|  6.76k|	if (data == NULL) {
  ------------------
  |  Branch (812:6): [True: 0, False: 6.76k]
  ------------------
  813|      0|		errno = EFAULT;
  814|      0|		return (-1);
  815|      0|	}
  816|  6.76k|	memset(&sinfo, 0, sizeof(struct sctp_sndrcvinfo));
  817|  6.76k|	assoc_id = NULL;
  818|  6.76k|	use_sinfo = 0;
  819|  6.76k|	switch (infotype) {
  820|  6.76k|	case SCTP_SENDV_NOINFO:
  ------------------
  |  |  228|  6.76k|#define SCTP_SENDV_NOINFO   0
  ------------------
  |  Branch (820:2): [True: 6.76k, False: 0]
  ------------------
  821|  6.76k|		if ((infolen != 0) || (info != NULL)) {
  ------------------
  |  Branch (821:7): [True: 0, False: 6.76k]
  |  Branch (821:25): [True: 0, False: 6.76k]
  ------------------
  822|      0|			errno = EINVAL;
  823|      0|			return (-1);
  824|      0|		}
  825|  6.76k|		break;
  826|  6.76k|	case SCTP_SENDV_SNDINFO:
  ------------------
  |  |  229|      0|#define SCTP_SENDV_SNDINFO  1
  ------------------
  |  Branch (826:2): [True: 0, False: 6.76k]
  ------------------
  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.76k]
  ------------------
  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.76k]
  ------------------
  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.76k]
  ------------------
  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.76k]
  ------------------
  879|      0|		errno = EINVAL;
  880|      0|		return (-1);
  881|  6.76k|	}
  882|       |
  883|       |	/* Perform error checks on destination (to) */
  884|  6.76k|	if (addrcnt > 1) {
  ------------------
  |  Branch (884:6): [True: 0, False: 6.76k]
  ------------------
  885|      0|		errno = EINVAL;
  886|      0|		return (-1);
  887|      0|	}
  888|       |
  889|  6.76k|	iov[0].iov_base = (caddr_t)data;
  890|  6.76k|	iov[0].iov_len = len;
  891|       |
  892|  6.76k|	auio.uio_iov =  iov;
  893|  6.76k|	auio.uio_iovcnt = 1;
  894|  6.76k|	auio.uio_segflg = UIO_USERSPACE;
  895|  6.76k|	auio.uio_rw = UIO_WRITE;
  896|  6.76k|	auio.uio_offset = 0;			/* XXX */
  897|  6.76k|	auio.uio_resid = len;
  898|  6.76k|	errno = sctp_lower_sosend(so, to, &auio, NULL, NULL, flags, use_sinfo ? &sinfo : NULL);
  ------------------
  |  Branch (898:62): [True: 0, False: 6.76k]
  ------------------
  899|  6.76k|	if (errno == 0) {
  ------------------
  |  Branch (899:6): [True: 5.96k, False: 794]
  ------------------
  900|  5.96k|		if ((to != NULL) && (assoc_id != NULL)) {
  ------------------
  |  Branch (900:7): [True: 0, False: 5.96k]
  |  Branch (900:23): [True: 0, False: 0]
  ------------------
  901|      0|			*assoc_id = usrsctp_getassocid(so, to);
  902|      0|		}
  903|  5.96k|		return (len - auio.uio_resid);
  904|  5.96k|	} else {
  905|    794|		return (-1);
  906|    794|	}
  907|  6.76k|}
usrsctp_recvv:
 1075|   647k|{
 1076|   647k|	struct uio auio;
 1077|   647k|	struct iovec iov[SCTP_SMALL_IOVEC_SIZE];
 1078|   647k|	struct iovec *tiov;
 1079|   647k|	int iovlen = 1;
 1080|   647k|	ssize_t ulen;
 1081|   647k|	int i;
 1082|   647k|	socklen_t fromlen;
 1083|   647k|	struct sctp_rcvinfo *rcv;
 1084|   647k|	struct sctp_recvv_rn *rn;
 1085|   647k|	struct sctp_extrcvinfo seinfo;
 1086|       |
 1087|   647k|	if (so == NULL) {
  ------------------
  |  Branch (1087:6): [True: 0, False: 647k]
  ------------------
 1088|      0|		errno = EBADF;
 1089|      0|		return (-1);
 1090|      0|	}
 1091|   647k|	iov[0].iov_base = dbuf;
 1092|   647k|	iov[0].iov_len = len;
 1093|       |
 1094|   647k|	auio.uio_iov = iov;
 1095|   647k|	auio.uio_iovcnt = iovlen;
 1096|   647k|	auio.uio_segflg = UIO_USERSPACE;
 1097|   647k|	auio.uio_rw = UIO_READ;
 1098|   647k|	auio.uio_offset = 0;			/* XXX */
 1099|   647k|	auio.uio_resid = 0;
 1100|   647k|	tiov = iov;
 1101|  1.29M|	for (i = 0; i <iovlen; i++, tiov++) {
  ------------------
  |  Branch (1101:14): [True: 647k, False: 647k]
  ------------------
 1102|   647k|		if ((auio.uio_resid += tiov->iov_len) < 0) {
  ------------------
  |  Branch (1102:7): [True: 0, False: 647k]
  ------------------
 1103|      0|			errno = EINVAL;
 1104|      0|			return (-1);
 1105|      0|		}
 1106|   647k|	}
 1107|   647k|	ulen = auio.uio_resid;
 1108|   647k|	if (fromlenp != NULL) {
  ------------------
  |  Branch (1108:6): [True: 647k, False: 0]
  ------------------
 1109|   647k|		fromlen = *fromlenp;
 1110|   647k|	} else {
 1111|      0|		fromlen = 0;
 1112|      0|	}
 1113|   647k|	errno = sctp_sorecvmsg(so, &auio, (struct mbuf **)NULL,
 1114|   647k|		    from, fromlen, msg_flags,
 1115|   647k|		    (struct sctp_sndrcvinfo *)&seinfo, 1);
 1116|   647k|	if (errno) {
  ------------------
  |  Branch (1116:6): [True: 1.74k, False: 646k]
  ------------------
 1117|  1.74k|		if ((auio.uio_resid != ulen) &&
  ------------------
  |  Branch (1117:7): [True: 0, False: 1.74k]
  ------------------
 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.74k|	}
 1126|   647k|	if (errno != 0) {
  ------------------
  |  Branch (1126:6): [True: 1.74k, False: 646k]
  ------------------
 1127|  1.74k|		goto out;
 1128|  1.74k|	}
 1129|   646k|	if ((*msg_flags & MSG_NOTIFICATION) == 0) {
  ------------------
  |  |   50|   646k|#define MSG_NOTIFICATION 0x2000         /* SCTP notification */
  ------------------
  |  Branch (1129:6): [True: 975, False: 645k]
  ------------------
 1130|    975|		struct sctp_inpcb *inp;
 1131|       |
 1132|    975|		inp = (struct sctp_inpcb *)so->so_pcb;
 1133|    975|		if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_RECVNXTINFO) &&
  ------------------
  |  |   52|  1.95k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 975, False: 0]
  |  |  ------------------
  ------------------
 1134|    975|		    sctp_is_feature_on(inp, SCTP_PCB_FLAGS_RECVRCVINFO) &&
  ------------------
  |  |   52|  1.95k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 975, False: 0]
  |  |  ------------------
  ------------------
 1135|    975|		    *infolen >= (socklen_t)sizeof(struct sctp_recvv_rn) &&
  ------------------
  |  Branch (1135:7): [True: 975, False: 0]
  ------------------
 1136|    975|		    seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_AVAIL) {
  ------------------
  |  |  164|    975|#define sreinfo_next_flags serinfo_next_flags
  ------------------
              		    seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_AVAIL) {
  ------------------
  |  |  213|    975|#define SCTP_NEXT_MSG_AVAIL        0x0001
  ------------------
  |  Branch (1136:7): [True: 396, False: 579]
  ------------------
 1137|    396|			rn = (struct sctp_recvv_rn *)info;
 1138|    396|			rn->recvv_rcvinfo.rcv_sid = seinfo.sinfo_stream;
 1139|    396|			rn->recvv_rcvinfo.rcv_ssn = seinfo.sinfo_ssn;
 1140|    396|			rn->recvv_rcvinfo.rcv_flags = seinfo.sinfo_flags;
 1141|    396|			rn->recvv_rcvinfo.rcv_ppid = seinfo.sinfo_ppid;
 1142|    396|			rn->recvv_rcvinfo.rcv_context = seinfo.sinfo_context;
 1143|    396|			rn->recvv_rcvinfo.rcv_tsn = seinfo.sinfo_tsn;
 1144|    396|			rn->recvv_rcvinfo.rcv_cumtsn = seinfo.sinfo_cumtsn;
 1145|    396|			rn->recvv_rcvinfo.rcv_assoc_id = seinfo.sinfo_assoc_id;
 1146|    396|			rn->recvv_nxtinfo.nxt_sid = seinfo.sreinfo_next_stream;
  ------------------
  |  |  165|    396|#define sreinfo_next_stream serinfo_next_stream
  ------------------
 1147|    396|			rn->recvv_nxtinfo.nxt_flags = 0;
 1148|    396|			if (seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_IS_UNORDERED) {
  ------------------
  |  |  164|    396|#define sreinfo_next_flags serinfo_next_flags
  ------------------
              			if (seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_IS_UNORDERED) {
  ------------------
  |  |  215|    396|#define SCTP_NEXT_MSG_IS_UNORDERED 0x0004
  ------------------
  |  Branch (1148:8): [True: 241, False: 155]
  ------------------
 1149|    241|				rn->recvv_nxtinfo.nxt_flags |= SCTP_UNORDERED;
  ------------------
  |  |  259|    241|#define SCTP_UNORDERED        0x0400 /* Message is un-ordered */
  ------------------
 1150|    241|			}
 1151|    396|			if (seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_IS_NOTIFICATION) {
  ------------------
  |  |  164|    396|#define sreinfo_next_flags serinfo_next_flags
  ------------------
              			if (seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_IS_NOTIFICATION) {
  ------------------
  |  |  216|    396|#define SCTP_NEXT_MSG_IS_NOTIFICATION 0x0008
  ------------------
  |  Branch (1151:8): [True: 60, False: 336]
  ------------------
 1152|     60|				rn->recvv_nxtinfo.nxt_flags |= SCTP_NOTIFICATION;
  ------------------
  |  |  255|     60|#define SCTP_NOTIFICATION     0x0010 /* next message is a notification */
  ------------------
 1153|     60|			}
 1154|    396|			if (seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_ISCOMPLETE) {
  ------------------
  |  |  164|    396|#define sreinfo_next_flags serinfo_next_flags
  ------------------
              			if (seinfo.sreinfo_next_flags & SCTP_NEXT_MSG_ISCOMPLETE) {
  ------------------
  |  |  214|    396|#define SCTP_NEXT_MSG_ISCOMPLETE   0x0002
  ------------------
  |  Branch (1154:8): [True: 396, False: 0]
  ------------------
 1155|    396|				rn->recvv_nxtinfo.nxt_flags |= SCTP_COMPLETE;
  ------------------
  |  |  256|    396|#define SCTP_COMPLETE         0x0020 /* next message is complete */
  ------------------
 1156|    396|			}
 1157|    396|			rn->recvv_nxtinfo.nxt_ppid = seinfo.sreinfo_next_ppid;
  ------------------
  |  |  168|    396|#define sreinfo_next_ppid serinfo_next_ppid
  ------------------
 1158|    396|			rn->recvv_nxtinfo.nxt_length = seinfo.sreinfo_next_length;
  ------------------
  |  |  167|    396|#define sreinfo_next_length serinfo_next_length
  ------------------
 1159|    396|			rn->recvv_nxtinfo.nxt_assoc_id = seinfo.sreinfo_next_aid;
  ------------------
  |  |  166|    396|#define sreinfo_next_aid serinfo_next_aid
  ------------------
 1160|    396|			*infolen = (socklen_t)sizeof(struct sctp_recvv_rn);
 1161|    396|			*infotype = SCTP_RECVV_RN;
  ------------------
  |  |  226|    396|#define SCTP_RECVV_RN      3
  ------------------
 1162|    579|		} else if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_RECVRCVINFO) &&
  ------------------
  |  |   52|  1.15k|#define sctp_is_feature_on(inp, feature) ((inp->sctp_features & feature) == feature)
  |  |  ------------------
  |  |  |  Branch (52:42): [True: 579, False: 0]
  |  |  ------------------
  ------------------
 1163|    579|		           *infolen >= (socklen_t)sizeof(struct sctp_rcvinfo)) {
  ------------------
  |  Branch (1163:14): [True: 579, False: 0]
  ------------------
 1164|    579|			rcv = (struct sctp_rcvinfo *)info;
 1165|    579|			rcv->rcv_sid = seinfo.sinfo_stream;
 1166|    579|			rcv->rcv_ssn = seinfo.sinfo_ssn;
 1167|    579|			rcv->rcv_flags = seinfo.sinfo_flags;
 1168|    579|			rcv->rcv_ppid = seinfo.sinfo_ppid;
 1169|    579|			rcv->rcv_context = seinfo.sinfo_context;
 1170|    579|			rcv->rcv_tsn = seinfo.sinfo_tsn;
 1171|    579|			rcv->rcv_cumtsn = seinfo.sinfo_cumtsn;
 1172|    579|			rcv->rcv_assoc_id = seinfo.sinfo_assoc_id;
 1173|    579|			*infolen = (socklen_t)sizeof(struct sctp_rcvinfo);
 1174|    579|			*infotype = SCTP_RECVV_RCVINFO;
  ------------------
  |  |  224|    579|#define SCTP_RECVV_RCVINFO 1
  ------------------
 1175|    579|		} else {
 1176|      0|			*infotype = SCTP_RECVV_NOINFO;
  ------------------
  |  |  223|      0|#define SCTP_RECVV_NOINFO  0
  ------------------
 1177|      0|			*infolen = 0;
 1178|      0|		}
 1179|    975|	}
 1180|   646k|	if ((fromlenp != NULL) &&
  ------------------
  |  Branch (1180:6): [True: 646k, False: 0]
  ------------------
 1181|   646k|	    (fromlen > 0) &&
  ------------------
  |  Branch (1181:6): [True: 646k, False: 0]
  ------------------
 1182|   646k|	    (from != NULL) &&
  ------------------
  |  Branch (1182:6): [True: 646k, False: 0]
  ------------------
 1183|   646k|	    (ulen > auio.uio_resid)) {
  ------------------
  |  Branch (1183:6): [True: 646k, False: 1]
  ------------------
 1184|   646k|		switch (from->sa_family) {
 1185|      0|#if defined(INET)
 1186|    277|		case AF_INET:
  ------------------
  |  Branch (1186:3): [True: 277, False: 645k]
  ------------------
 1187|    277|			*fromlenp = sizeof(struct sockaddr_in);
 1188|    277|			break;
 1189|      0|#endif
 1190|      0|#if defined(INET6)
 1191|  9.84k|		case AF_INET6:
  ------------------
  |  Branch (1191:3): [True: 9.84k, False: 636k]
  ------------------
 1192|  9.84k|			*fromlenp = sizeof(struct sockaddr_in6);
 1193|  9.84k|			break;
 1194|      0|#endif
 1195|   635k|		case AF_CONN:
  ------------------
  |  | 1014|   635k|#define AF_CONN 123
  ------------------
  |  Branch (1195:3): [True: 635k, False: 10.1k]
  ------------------
 1196|   635k|			*fromlenp = sizeof(struct sockaddr_conn);
 1197|   635k|			break;
 1198|      0|		default:
  ------------------
  |  Branch (1198:3): [True: 0, False: 646k]
  ------------------
 1199|      0|			*fromlenp = 0;
 1200|      0|			break;
 1201|   646k|		}
 1202|   646k|		if (*fromlenp > fromlen) {
  ------------------
  |  Branch (1202:7): [True: 9.84k, False: 636k]
  ------------------
 1203|  9.84k|			*fromlenp = fromlen;
 1204|  9.84k|		}
 1205|   646k|	}
 1206|   647k|out:
 1207|   647k|	if (errno == 0) {
  ------------------
  |  Branch (1207:6): [True: 646k, False: 1.74k]
  ------------------
 1208|       |		/* ready return value */
 1209|   646k|		return (ulen - auio.uio_resid);
 1210|   646k|	} else {
 1211|  1.74k|		return (-1);
 1212|  1.74k|	}
 1213|   647k|}
socreate:
 1225|  11.1k|{
 1226|  11.1k|	struct socket *so;
 1227|  11.1k|	int error;
 1228|       |
 1229|  11.1k|	if ((dom != AF_CONN) && (dom != AF_INET) && (dom != AF_INET6)) {
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (1229:6): [True: 0, False: 11.1k]
  |  Branch (1229:26): [True: 0, False: 0]
  |  Branch (1229:46): [True: 0, False: 0]
  ------------------
 1230|      0|		return (EINVAL);
 1231|      0|	}
 1232|  11.1k|	if ((type != SOCK_STREAM) && (type != SOCK_SEQPACKET)) {
  ------------------
  |  Branch (1232:6): [True: 0, False: 11.1k]
  |  Branch (1232:31): [True: 0, False: 0]
  ------------------
 1233|      0|		return (EINVAL);
 1234|      0|	}
 1235|  11.1k|	if (proto != IPPROTO_SCTP) {
  ------------------
  |  Branch (1235:6): [True: 0, False: 11.1k]
  ------------------
 1236|      0|		return (EINVAL);
 1237|      0|	}
 1238|       |
 1239|  11.1k|	so = soalloc();
 1240|  11.1k|	if (so == NULL) {
  ------------------
  |  Branch (1240:6): [True: 0, False: 11.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|  11.1k|	TAILQ_INIT(&so->so_incomp);
  ------------------
  |  Branch (1251:2): [Folded, False: 11.1k]
  ------------------
 1252|  11.1k|	TAILQ_INIT(&so->so_comp);
  ------------------
  |  Branch (1252:2): [Folded, False: 11.1k]
  ------------------
 1253|  11.1k|	so->so_type = type;
 1254|  11.1k|	so->so_count = 1;
 1255|  11.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|  11.1k|	switch (dom) {
 1262|      0|#if defined(INET)
 1263|      0|	case AF_INET:
  ------------------
  |  Branch (1263:2): [True: 0, False: 11.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: 11.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|  11.1k|	case AF_CONN:
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (1272:2): [True: 11.1k, False: 0]
  ------------------
 1273|  11.1k|		error = sctpconn_attach(so, proto, SCTP_DEFAULT_VRFID);
  ------------------
  |  |  650|  11.1k|#define SCTP_DEFAULT_VRFID	0
  ------------------
 1274|  11.1k|		break;
 1275|      0|	default:
  ------------------
  |  Branch (1275:2): [True: 0, False: 11.1k]
  ------------------
 1276|      0|		error = EAFNOSUPPORT;
 1277|      0|		break;
 1278|  11.1k|	}
 1279|  11.1k|	if (error) {
  ------------------
  |  Branch (1279:6): [True: 0, False: 11.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|  11.1k|	*aso = so;
 1286|  11.1k|	return (0);
 1287|  11.1k|}
usrsctp_socket:
 1318|  11.1k|{
 1319|  11.1k|	struct socket *so = NULL;
 1320|       |
 1321|  11.1k|	if ((protocol == IPPROTO_SCTP) && (SCTP_BASE_VAR(sctp_pcb_initialized) == 0)) {
  ------------------
  |  |  591|  11.1k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1321:6): [True: 11.1k, False: 0]
  |  Branch (1321:36): [True: 0, False: 11.1k]
  ------------------
 1322|      0|		errno = EPROTONOSUPPORT;
 1323|      0|		return (NULL);
 1324|      0|	}
 1325|  11.1k|	if ((receive_cb == NULL) &&
  ------------------
  |  Branch (1325:6): [True: 11.1k, False: 0]
  ------------------
 1326|  11.1k|	    ((send_cb != NULL) || (sb_threshold != 0) || (ulp_info != NULL))) {
  ------------------
  |  Branch (1326:7): [True: 0, False: 11.1k]
  |  Branch (1326:28): [True: 0, False: 11.1k]
  |  Branch (1326:51): [True: 0, False: 11.1k]
  ------------------
 1327|      0|		errno = EINVAL;
 1328|      0|		return (NULL);
 1329|      0|	}
 1330|  11.1k|	if ((domain == AF_CONN) && (SCTP_BASE_VAR(conn_output) == NULL)) {
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
              	if ((domain == AF_CONN) && (SCTP_BASE_VAR(conn_output) == NULL)) {
  ------------------
  |  |  591|  11.1k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (1330:6): [True: 11.1k, False: 0]
  |  Branch (1330:29): [True: 0, False: 11.1k]
  ------------------
 1331|      0|		errno = EAFNOSUPPORT;
 1332|      0|		return (NULL);
 1333|      0|	}
 1334|  11.1k|	errno = socreate(domain, &so, type, protocol);
 1335|  11.1k|	if (errno) {
  ------------------
  |  Branch (1335:6): [True: 0, False: 11.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|  11.1k|	register_recv_cb(so, receive_cb);
 1344|  11.1k|	register_send_cb(so, sb_threshold, send_cb);
 1345|  11.1k|	register_ulp_info(so, ulp_info);
 1346|  11.1k|	return (so);
 1347|  11.1k|}
sbreserve_locked:
 1362|  22.3k|{
 1363|  22.3k|	SOCKBUF_LOCK_ASSERT(sb);
  ------------------
  |  |  514|  22.3k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  22.3k|	do {                         \
  |  |  |  |  113|  22.3k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 22.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|  22.3k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 22.3k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1364|  22.3k|	sb->sb_mbmax = (u_int)min(cc * sb_efficiency, sb_max);
  ------------------
  |  |   66|  22.3k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 22.3k, False: 0]
  |  |  ------------------
  ------------------
 1365|  22.3k|	sb->sb_hiwat = (u_int)cc;
 1366|  22.3k|	if (sb->sb_lowat > (int)sb->sb_hiwat)
  ------------------
  |  Branch (1366:6): [True: 0, False: 22.3k]
  ------------------
 1367|      0|		sb->sb_lowat = (int)sb->sb_hiwat;
 1368|  22.3k|	return (1);
 1369|  22.3k|}
soreserve:
 1384|  11.1k|{
 1385|  11.1k|	SOCKBUF_LOCK(&so->so_snd);
  ------------------
  |  |  517|  11.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1386|  11.1k|	SOCKBUF_LOCK(&so->so_rcv);
  ------------------
  |  |  517|  11.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1387|  11.1k|	so->so_snd.sb_hiwat = (uint32_t)sndcc;
 1388|  11.1k|	so->so_rcv.sb_hiwat = (uint32_t)rcvcc;
 1389|       |
 1390|  11.1k|	if (sbreserve_locked(&so->so_snd, sndcc, so) == 0) {
  ------------------
  |  Branch (1390:6): [True: 0, False: 11.1k]
  ------------------
 1391|      0|		goto bad;
 1392|      0|	}
 1393|  11.1k|	if (sbreserve_locked(&so->so_rcv, rcvcc, so) == 0) {
  ------------------
  |  Branch (1393:6): [True: 0, False: 11.1k]
  ------------------
 1394|      0|		goto bad;
 1395|      0|	}
 1396|  11.1k|	if (so->so_rcv.sb_lowat == 0)
  ------------------
  |  Branch (1396:6): [True: 11.1k, False: 0]
  ------------------
 1397|  11.1k|		so->so_rcv.sb_lowat = 1;
 1398|  11.1k|	if (so->so_snd.sb_lowat == 0)
  ------------------
  |  Branch (1398:6): [True: 11.1k, False: 0]
  ------------------
 1399|  11.1k|		so->so_snd.sb_lowat = MCLBYTES;
  ------------------
  |  |   51|  11.1k|#define MCLBYTES 2048
  ------------------
 1400|  11.1k|	if (so->so_snd.sb_lowat > (int)so->so_snd.sb_hiwat)
  ------------------
  |  Branch (1400:6): [True: 0, False: 11.1k]
  ------------------
 1401|      0|		so->so_snd.sb_lowat = (int)so->so_snd.sb_hiwat;
 1402|  11.1k|	SOCKBUF_UNLOCK(&so->so_rcv);
  ------------------
  |  |  519|  11.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1403|  11.1k|	SOCKBUF_UNLOCK(&so->so_snd);
  ------------------
  |  |  519|  11.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1404|  11.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|   681k|{
 1420|       |
 1421|   681k|	SOCKBUF_LOCK_ASSERT(sb);
  ------------------
  |  |  514|   681k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   681k|	do {                         \
  |  |  |  |  113|   681k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 681k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   681k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 681k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1422|       |
 1423|   681k|	sb->sb_flags &= ~SB_SEL;
  ------------------
  |  |  204|   681k|#define	SB_SEL		0x08		/* someone is selecting */
  ------------------
 1424|   681k|	if (sb->sb_flags & SB_WAIT) {
  ------------------
  |  |  203|   681k|#define	SB_WAIT		0x04		/* someone is waiting for data/space */
  ------------------
  |  Branch (1424:6): [True: 0, False: 681k]
  ------------------
 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|   681k|	SOCKBUF_UNLOCK(sb);
  ------------------
  |  |  519|   681k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  ------------------
  |  |  |  |  112|   681k|	do {                         \
  |  |  |  |  113|   681k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 681k]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      0|		}                    \
  |  |  |  |  116|   681k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 681k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1433|   681k|}
sobind:
 1442|  11.1k|{
 1443|  11.1k|	switch (nam->sa_family) {
 1444|      0|#if defined(INET)
 1445|      0|	case AF_INET:
  ------------------
  |  Branch (1445:2): [True: 0, False: 11.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: 11.1k]
  ------------------
 1450|      0|		return (sctp6_bind(so, nam, NULL));
 1451|      0|#endif
 1452|  11.1k|	case AF_CONN:
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (1452:2): [True: 11.1k, False: 0]
  ------------------
 1453|  11.1k|		return (sctpconn_bind(so, nam));
 1454|      0|	default:
  ------------------
  |  Branch (1454:2): [True: 0, False: 11.1k]
  ------------------
 1455|       |		return EAFNOSUPPORT;
 1456|  11.1k|	}
 1457|  11.1k|}
usrsctp_bind:
 1465|  11.1k|{
 1466|  11.1k|	struct sockaddr *sa;
 1467|       |
 1468|  11.1k|	if (so == NULL) {
  ------------------
  |  Branch (1468:6): [True: 0, False: 11.1k]
  ------------------
 1469|      0|		errno = EBADF;
 1470|      0|		return (-1);
 1471|      0|	}
 1472|  11.1k|	if ((errno = getsockaddr(&sa, (caddr_t)name, namelen)) != 0)
  ------------------
  |  Branch (1472:6): [True: 0, False: 11.1k]
  ------------------
 1473|      0|		return (-1);
 1474|       |
 1475|  11.1k|	errno = sobind(so, sa);
 1476|  11.1k|	FREE(sa, M_SONAME);
  ------------------
  |  |  191|  11.1k|#define	FREE(addr, type) free((addr))
  ------------------
 1477|  11.1k|	if (errno) {
  ------------------
  |  Branch (1477:6): [True: 0, False: 11.1k]
  ------------------
 1478|      0|		return (-1);
 1479|  11.1k|	} else {
 1480|  11.1k|		return (0);
 1481|  11.1k|	}
 1482|  11.1k|}
usrsctp_set_non_blocking:
 1823|  11.1k|{
 1824|  11.1k|	if (so == NULL) {
  ------------------
  |  Branch (1824:6): [True: 0, False: 11.1k]
  ------------------
 1825|      0|		errno = EBADF;
 1826|      0|		return (-1);
 1827|      0|	}
 1828|  11.1k|	SOCK_LOCK(so);
  ------------------
  |  |  527|  11.1k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  11.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1829|  11.1k|	if (onoff != 0) {
  ------------------
  |  Branch (1829:6): [True: 11.1k, False: 0]
  ------------------
 1830|  11.1k|		so->so_state |= SS_NBIO;
  ------------------
  |  |  343|  11.1k|#define	SS_NBIO			0x0100	/* non-blocking ops */
  ------------------
 1831|  11.1k|	} else {
 1832|      0|		so->so_state &= ~SS_NBIO;
  ------------------
  |  |  343|      0|#define	SS_NBIO			0x0100	/* non-blocking ops */
  ------------------
 1833|      0|	}
 1834|  11.1k|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|  11.1k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  11.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1835|  11.1k|	return (0);
 1836|  11.1k|}
soconnect:
 1859|  11.1k|{
 1860|  11.1k|	int error;
 1861|       |
 1862|  11.1k|	if (so->so_options & SCTP_SO_ACCEPTCONN)
  ------------------
  |  |   53|  11.1k|#define SCTP_SO_ACCEPTCONN 0x0002
  ------------------
  |  Branch (1862:6): [True: 0, False: 11.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|  11.1k|	if (so->so_state & (SS_ISCONNECTED|SS_ISCONNECTING) && (sodisconnect(so) != 0)) {
  ------------------
  |  |  340|  11.1k|#define	SS_ISCONNECTED		0x0002	/* socket connected to a peer */
  ------------------
              	if (so->so_state & (SS_ISCONNECTED|SS_ISCONNECTING) && (sodisconnect(so) != 0)) {
  ------------------
  |  |  341|  11.1k|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
  |  Branch (1869:6): [True: 0, False: 11.1k]
  |  Branch (1869:57): [True: 0, False: 0]
  ------------------
 1870|      0|		error = EISCONN;
 1871|  11.1k|	} else {
 1872|       |		/*
 1873|       |		 * Prevent accumulated error from previous connection from
 1874|       |		 * biting us.
 1875|       |		 */
 1876|  11.1k|		so->so_error = 0;
 1877|  11.1k|		switch (nam->sa_family) {
 1878|      0|#if defined(INET)
 1879|      0|		case AF_INET:
  ------------------
  |  Branch (1879:3): [True: 0, False: 11.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: 11.1k]
  ------------------
 1885|      0|			error = sctp6_connect(so, nam);
 1886|      0|			break;
 1887|      0|#endif
 1888|  11.1k|		case AF_CONN:
  ------------------
  |  | 1014|  11.1k|#define AF_CONN 123
  ------------------
  |  Branch (1888:3): [True: 11.1k, False: 0]
  ------------------
 1889|  11.1k|			error = sctpconn_connect(so, nam);
 1890|  11.1k|			break;
 1891|      0|		default:
  ------------------
  |  Branch (1891:3): [True: 0, False: 11.1k]
  ------------------
 1892|      0|			error = EAFNOSUPPORT;
 1893|  11.1k|		}
 1894|  11.1k|	}
 1895|       |
 1896|  11.1k|	return (error);
 1897|  11.1k|}
user_connect:
 1902|  11.1k|{
 1903|  11.1k|	int error;
 1904|  11.1k|	int interrupted = 0;
 1905|       |
 1906|  11.1k|	if (so == NULL) {
  ------------------
  |  Branch (1906:6): [True: 0, False: 11.1k]
  ------------------
 1907|      0|		error = EBADF;
 1908|      0|		goto done1;
 1909|      0|	}
 1910|  11.1k|	if (so->so_state & SS_ISCONNECTING) {
  ------------------
  |  |  341|  11.1k|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
  |  Branch (1910:6): [True: 0, False: 11.1k]
  ------------------
 1911|      0|		error = EALREADY;
 1912|      0|		goto done1;
 1913|      0|	}
 1914|       |
 1915|  11.1k|	error = soconnect(so, sa);
 1916|  11.1k|	if (error) {
  ------------------
  |  Branch (1916:6): [True: 0, False: 11.1k]
  ------------------
 1917|      0|		goto bad;
 1918|      0|	}
 1919|  11.1k|	if ((so->so_state & SS_NBIO) && (so->so_state & SS_ISCONNECTING)) {
  ------------------
  |  |  343|  11.1k|#define	SS_NBIO			0x0100	/* non-blocking ops */
  ------------------
              	if ((so->so_state & SS_NBIO) && (so->so_state & SS_ISCONNECTING)) {
  ------------------
  |  |  341|  11.1k|#define	SS_ISCONNECTING		0x0004	/* in process of connecting to peer */
  ------------------
  |  Branch (1919:6): [True: 11.1k, False: 0]
  |  Branch (1919:34): [True: 11.1k, False: 0]
  ------------------
 1920|  11.1k|		error = EINPROGRESS;
 1921|  11.1k|		goto done1;
 1922|  11.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|  11.1k|done1:
 1961|  11.1k|	return (error);
 1962|      0|}
usrsctp_connect:
 1965|  11.1k|{
 1966|  11.1k|	struct sockaddr *sa = NULL;
 1967|       |
 1968|  11.1k|	errno = getsockaddr(&sa, (caddr_t)name, namelen);
 1969|  11.1k|	if (errno)
  ------------------
  |  Branch (1969:6): [True: 0, False: 11.1k]
  ------------------
 1970|      0|		return (-1);
 1971|       |
 1972|  11.1k|	errno = user_connect(so, sa);
 1973|  11.1k|	FREE(sa, M_SONAME);
  ------------------
  |  |  191|  11.1k|#define	FREE(addr, type) free((addr))
  ------------------
 1974|  11.1k|	if (errno) {
  ------------------
  |  Branch (1974:6): [True: 11.1k, False: 0]
  ------------------
 1975|  11.1k|		return (-1);
 1976|  11.1k|	} else {
 1977|      0|		return (0);
 1978|      0|	}
 1979|  11.1k|}
usrsctp_close:
 1989|  11.1k|usrsctp_close(struct socket *so) {
 1990|  11.1k|	if (so != NULL) {
  ------------------
  |  Branch (1990:6): [True: 11.1k, False: 0]
  ------------------
 1991|  11.1k|		if (so->so_options & SCTP_SO_ACCEPTCONN) {
  ------------------
  |  |   53|  11.1k|#define SCTP_SO_ACCEPTCONN 0x0002
  ------------------
  |  Branch (1991:7): [True: 0, False: 11.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|  11.1k|		ACCEPT_LOCK();
  ------------------
  |  |  256|  11.1k|#define	ACCEPT_LOCK()	KASSERT(pthread_mutex_lock(&accept_mtx) == 0, ("%s: accept_mtx already locked", __func__))
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2007|  11.1k|		SOCK_LOCK(so);
  ------------------
  |  |  527|  11.1k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  11.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2008|  11.1k|		sorele(so);
  ------------------
  |  |  412|  11.1k|#define	sorele(so) do {							\
  |  |  413|  11.1k|	ACCEPT_LOCK_ASSERT();						\
  |  |  ------------------
  |  |  |  |  263|  11.1k|          KASSERT(pthread_mutex_trylock(&accept_mtx) == EBUSY, ("%s: accept_mtx not locked", __func__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  414|  11.1k|	SOCK_LOCK_ASSERT(so);						\
  |  |  ------------------
  |  |  |  |  325|  11.1k|#define	SOCK_LOCK_ASSERT(_so)		SOCKBUF_LOCK_ASSERT(&(_so)->so_rcv)
  |  |  |  |  ------------------
  |  |  |  |  |  |  514|  11.1k|	KASSERT(pthread_mutex_trylock(SOCKBUF_MTX(_so_buf)) == EBUSY, ("%s:%d: socket buffer not locked", __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  415|  11.1k|	KASSERT((so)->so_count > 0, ("sorele"));			\
  |  |  ------------------
  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  416|  11.1k|	if (--(so)->so_count == 0) {					\
  |  |  ------------------
  |  |  |  Branch (416:6): [True: 11.1k, False: 0]
  |  |  ------------------
  |  |  417|  11.1k|		SCTPDBG(SCTP_DEBUG_USR, "sorele(%p) -> %d, %s:%s:%d\n",	\
  |  |  418|  11.1k|			(so), (so)->so_count,				\
  |  |  419|  11.1k|			__func__, __FILE__, __LINE__)			\
  |  |  420|  11.1k|		sofree(so);						\
  |  |  421|  11.1k|	}								\
  |  |  422|  11.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|  11.1k|} while (0)
  |  |  ------------------
  |  |  |  Branch (429:10): [Folded, False: 11.1k]
  |  |  ------------------
  ------------------
 2009|  11.1k|	}
 2010|  11.1k|}
usrsctp_setsockopt:
 2091|   237k|{
 2092|   237k|	if (so == NULL) {
  ------------------
  |  Branch (2092:6): [True: 0, False: 237k]
  ------------------
 2093|      0|		errno = EBADF;
 2094|      0|		return (-1);
 2095|      0|	}
 2096|   237k|	switch (level) {
 2097|  11.1k|	case SOL_SOCKET:
  ------------------
  |  Branch (2097:2): [True: 11.1k, False: 226k]
  ------------------
 2098|  11.1k|	{
 2099|  11.1k|		switch (option_name) {
 2100|      0|		case SO_RCVBUF:
  ------------------
  |  Branch (2100:3): [True: 0, False: 11.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: 11.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|  11.1k|		case SO_LINGER:
  ------------------
  |  Branch (2132:3): [True: 11.1k, False: 0]
  ------------------
 2133|  11.1k|			if (option_len < (socklen_t)sizeof(struct linger)) {
  ------------------
  |  Branch (2133:8): [True: 0, False: 11.1k]
  ------------------
 2134|      0|				errno = EINVAL;
 2135|      0|				return (-1);
 2136|  11.1k|			} else {
 2137|  11.1k|				struct linger *l;
 2138|       |
 2139|  11.1k|				l = (struct linger *)option_value;
 2140|  11.1k|				so->so_linger = l->l_linger;
 2141|  11.1k|				if (l->l_onoff) {
  ------------------
  |  Branch (2141:9): [True: 11.1k, False: 0]
  ------------------
 2142|  11.1k|					so->so_options |= SCTP_SO_LINGER;
  ------------------
  |  |   52|  11.1k|#define SCTP_SO_LINGER     0x0001
  ------------------
 2143|  11.1k|				} else {
 2144|      0|					so->so_options &= ~SCTP_SO_LINGER;
  ------------------
  |  |   52|      0|#define SCTP_SO_LINGER     0x0001
  ------------------
 2145|      0|				}
 2146|  11.1k|				return (0);
 2147|  11.1k|			}
 2148|      0|		default:
  ------------------
  |  Branch (2148:3): [True: 0, False: 11.1k]
  ------------------
 2149|      0|			errno = EINVAL;
 2150|      0|			return (-1);
 2151|  11.1k|		}
 2152|  11.1k|	}
 2153|   226k|	case IPPROTO_SCTP:
  ------------------
  |  Branch (2153:2): [True: 226k, False: 11.1k]
  ------------------
 2154|   226k|		errno = sctp_setopt(so, option_name, (void *) option_value, (size_t)option_len, NULL);
 2155|   226k|		if (errno) {
  ------------------
  |  Branch (2155:7): [True: 0, False: 226k]
  ------------------
 2156|      0|			return (-1);
 2157|   226k|		} else {
 2158|   226k|			return (0);
 2159|   226k|		}
 2160|      0|	default:
  ------------------
  |  Branch (2160:2): [True: 0, False: 237k]
  ------------------
 2161|      0|		errno = ENOPROTOOPT;
 2162|      0|		return (-1);
 2163|   237k|	}
 2164|   237k|}
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|  26.3k|{
 3277|  26.3k|	struct sockaddr_conn src, dst;
 3278|  26.3k|	struct mbuf *m, *mm;
 3279|  26.3k|	struct sctphdr *sh;
 3280|  26.3k|	struct sctp_chunkhdr *ch;
 3281|  26.3k|	int remaining, offset;
 3282|       |
 3283|  26.3k|	SCTP_STAT_INCR(sctps_recvpackets);
  ------------------
  |  | 1112|  26.3k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  ------------------
  |  |  |  | 1123|  26.3k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  ------------------
  |  |  |  |  |  |   94|  26.3k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3284|  26.3k|	SCTP_STAT_INCR_COUNTER64(sctps_inpackets);
  ------------------
  |  | 1128|  26.3k|#define SCTP_STAT_INCR_COUNTER64(_x) SCTP_STAT_INCR(_x)
  |  |  ------------------
  |  |  |  | 1112|  26.3k|#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1123|  26.3k|#define SCTP_STAT_INCR_BY(_x,_d) atomic_add_int(&SCTP_BASE_STAT(_x), _d)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   94|  26.3k|#define atomic_add_int(P, V)	 (void) __sync_fetch_and_add(P, V)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3285|  26.3k|	memset(&src, 0, sizeof(struct sockaddr_conn));
 3286|  26.3k|	src.sconn_family = AF_CONN;
  ------------------
  |  | 1014|  26.3k|#define AF_CONN 123
  ------------------
 3287|       |#ifdef HAVE_SCONN_LEN
 3288|       |	src.sconn_len = sizeof(struct sockaddr_conn);
 3289|       |#endif
 3290|  26.3k|	src.sconn_addr = addr;
 3291|  26.3k|	memset(&dst, 0, sizeof(struct sockaddr_conn));
 3292|  26.3k|	dst.sconn_family = AF_CONN;
  ------------------
  |  | 1014|  26.3k|#define AF_CONN 123
  ------------------
 3293|       |#ifdef HAVE_SCONN_LEN
 3294|       |	dst.sconn_len = sizeof(struct sockaddr_conn);
 3295|       |#endif
 3296|  26.3k|	dst.sconn_addr = addr;
 3297|  26.3k|	if ((m = sctp_get_mbuf_for_msg((unsigned int)length, 1, M_NOWAIT, 0, MT_DATA)) == NULL) {
  ------------------
  |  |   60|  26.3k|#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|  26.3k|#define	MT_DATA		1	/* dynamic (data) allocation */
  ------------------
  |  Branch (3297:6): [True: 0, False: 26.3k]
  ------------------
 3298|      0|		return;
 3299|      0|	}
 3300|       |	/* Set the lengths fields of the mbuf chain.
 3301|       |	 * This is expected by m_copyback().
 3302|       |	 */
 3303|  26.3k|	remaining = (int)length;
 3304|  81.3k|	for (mm = m; mm != NULL; mm = mm->m_next) {
  ------------------
  |  |  217|  54.9k|#define	m_next		m_hdr.mh_next
  ------------------
  |  Branch (3304:15): [True: 54.9k, False: 26.3k]
  ------------------
 3305|  54.9k|		mm->m_len = min((int)M_SIZE(mm), remaining);
  ------------------
  |  |  218|  54.9k|#define	m_len		m_hdr.mh_len
  ------------------
              		mm->m_len = min((int)M_SIZE(mm), remaining);
  ------------------
  |  |   66|   204k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  ------------------
  |  |  |  Branch (66:19): [True: 26.3k, False: 28.5k]
  |  |  |  Branch (66:21): [True: 24.9k, False: 22.5k]
  |  |  |  Branch (66:21): [True: 7.41k, False: 47.5k]
  |  |  |  Branch (66:34): [True: 11.7k, False: 10.2k]
  |  |  |  Branch (66:34): [True: 6.56k, False: 22.0k]
  |  |  ------------------
  ------------------
 3306|  54.9k|		m->m_pkthdr.len += mm->m_len;
  ------------------
  |  |  224|  54.9k|#define	m_pkthdr	M_dat.MH.MH_pkthdr
  ------------------
              		m->m_pkthdr.len += mm->m_len;
  ------------------
  |  |  218|  54.9k|#define	m_len		m_hdr.mh_len
  ------------------
 3307|  54.9k|		remaining -= mm->m_len;
  ------------------
  |  |  218|  54.9k|#define	m_len		m_hdr.mh_len
  ------------------
 3308|  54.9k|	}
 3309|  26.3k|	KASSERT(remaining == 0, ("usrsctp_conninput: %zu bytes left", remaining));
  ------------------
  |  |  112|  26.3k|	do {                         \
  |  |  113|  26.3k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 26.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|  26.3k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 26.3k]
  |  |  ------------------
  ------------------
 3310|  26.3k|	m_copyback(m, 0, (int)length, (caddr_t)buffer);
 3311|  26.3k|	offset = sizeof(struct sctphdr) + sizeof(struct sctp_chunkhdr);
 3312|  26.3k|	if (SCTP_BUF_LEN(m) < offset) {
  ------------------
  |  |  801|  26.3k|#define SCTP_BUF_LEN(m) (m->m_len)
  |  |  ------------------
  |  |  |  |  218|  26.3k|#define	m_len		m_hdr.mh_len
  |  |  ------------------
  ------------------
  |  Branch (3312:6): [True: 0, False: 26.3k]
  ------------------
 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|  26.3k|	sh = mtod(m, struct sctphdr *);
  ------------------
  |  |   96|  26.3k|#define	mtod(m, t)	((t)((m)->m_data))
  |  |  ------------------
  |  |  |  |  219|  26.3k|#define	m_data		m_hdr.mh_data
  |  |  ------------------
  ------------------
 3319|  26.3k|	ch = (struct sctp_chunkhdr *)((caddr_t)sh + sizeof(struct sctphdr));
 3320|  26.3k|	offset -= sizeof(struct sctp_chunkhdr);
 3321|  26.3k|	src.sconn_port = sh->src_port;
 3322|  26.3k|	dst.sconn_port = sh->dest_port;
 3323|  26.3k|	sctp_common_input_processing(&m, 0, offset, (int)length,
 3324|  26.3k|	                             (struct sockaddr *)&src,
 3325|  26.3k|	                             (struct sockaddr *)&dst,
 3326|  26.3k|	                             sh, ch,
 3327|  26.3k|	                             SCTP_BASE_VAR(crc32c_offloaded) == 1 ? 0 : 1,
  ------------------
  |  |  591|  26.3k|#define SCTP_BASE_VAR(__m) system_base_info.__m
  ------------------
  |  Branch (3327:31): [True: 26.3k, False: 0]
  ------------------
 3328|  26.3k|	                             ecn_bits,
 3329|  26.3k|	                             SCTP_DEFAULT_VRFID, 0);
  ------------------
  |  |  650|  26.3k|#define SCTP_DEFAULT_VRFID	0
  ------------------
 3330|  26.3k|	if (m) {
  ------------------
  |  Branch (3330:6): [True: 26.2k, False: 169]
  ------------------
 3331|  26.2k|		sctp_m_freem(m);
  ------------------
  |  |   52|  26.2k|#define sctp_m_freem m_freem
  ------------------
 3332|  26.2k|	}
 3333|  26.3k|	return;
 3334|  26.3k|}
usrsctp_get_events:
 3343|   659k|{
 3344|   659k|	int events = 0;
 3345|       |
 3346|   659k|	if (so == NULL) {
  ------------------
  |  Branch (3346:6): [True: 0, False: 659k]
  ------------------
 3347|      0|		errno = EBADF;
 3348|      0|		return -1;
 3349|      0|	}
 3350|       |
 3351|   659k|	SOCK_LOCK(so);
  ------------------
  |  |  527|   659k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|   659k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|   659k|	do {                         \
  |  |  |  |  |  |  113|   659k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 659k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|   659k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 659k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3352|   659k|	if (soreadable(so)) {
  ------------------
  |  |  443|   659k|    ((int)((so)->so_rcv.sb_cc) >= (so)->so_rcv.sb_lowat || \
  |  |  ------------------
  |  |  |  Branch (443:6): [True: 646k, False: 13.7k]
  |  |  ------------------
  |  |  444|   659k|	((so)->so_rcv.sb_state & SBS_CANTRCVMORE) || \
  |  |  ------------------
  |  |  |  |  360|  13.7k|#define	SBS_CANTRCVMORE		0x0020	/* can't receive more data from peer */
  |  |  ------------------
  |  |  |  Branch (444:2): [True: 1.74k, False: 11.9k]
  |  |  ------------------
  |  |  445|   659k|	!TAILQ_EMPTY(&(so)->so_comp) || (so)->so_error)
  |  |  ------------------
  |  |  |  Branch (445:2): [True: 0, False: 11.9k]
  |  |  |  Branch (445:34): [True: 0, False: 11.9k]
  |  |  ------------------
  ------------------
 3353|   647k|		events |= SCTP_EVENT_READ;
  ------------------
  |  |  372|   647k|#define SCTP_EVENT_READ		0x0001	/* socket is readable */
  ------------------
 3354|   647k|	}
 3355|   659k|	if (sowriteable(so)) {
  ------------------
  |  |  458|   659k|    ((sbspace(&(so)->so_snd) >= (so)->so_snd.sb_lowat && \
  |  |  ------------------
  |  |  |  |  434|   659k|    ((long) min((int)((sb)->sb_hiwat - (sb)->sb_cc), \
  |  |  |  |  ------------------
  |  |  |  |  |  |   66|   659k|#define min(a,b) (((a)>(b))?(b):(a))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (66:19): [True: 0, False: 659k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  435|   659k|	 (int)((sb)->sb_mbmax - (sb)->sb_mbcnt)))
  |  |  ------------------
  |  |  |  Branch (458:7): [True: 659k, False: 0]
  |  |  ------------------
  |  |  459|   659k|      (((so)->so_state&SS_ISCONNECTED))) ||              \
  |  |  ------------------
  |  |  |  |  340|   659k|#define	SS_ISCONNECTED		0x0002	/* socket connected to a peer */
  |  |  ------------------
  |  |  |  Branch (459:7): [True: 456k, False: 203k]
  |  |  ------------------
  |  |  460|   659k|     ((so)->so_snd.sb_state & SBS_CANTSENDMORE) || \
  |  |  ------------------
  |  |  |  |  359|   203k|#define	SBS_CANTSENDMORE	0x0010	/* can't send more data to peer */
  |  |  ------------------
  |  |  |  Branch (460:6): [True: 134k, False: 68.5k]
  |  |  ------------------
  |  |  461|   659k|     (so)->so_error)
  |  |  ------------------
  |  |  |  Branch (461:6): [True: 2.57k, False: 65.9k]
  |  |  ------------------
  ------------------
 3356|   593k|		events |= SCTP_EVENT_WRITE;
  ------------------
  |  |  373|   593k|#define SCTP_EVENT_WRITE	0x0002	/* socket is writeable */
  ------------------
 3357|   593k|	}
 3358|   659k|	if (so->so_error) {
  ------------------
  |  Branch (3358:6): [True: 139k, False: 519k]
  ------------------
 3359|   139k|		events |= SCTP_EVENT_ERROR;
  ------------------
  |  |  374|   139k|#define SCTP_EVENT_ERROR	0x0004	/* socket has an error state */
  ------------------
 3360|   139k|	}
 3361|   659k|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|   659k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|   659k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|   659k|	do {                         \
  |  |  |  |  |  |  113|   659k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 659k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  114|      0|			panic args ; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  104|      0|	do {                                        \
  |  |  |  |  |  |  |  |  105|      0|		SCTP_PRINTF("%s(): ", __func__);    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  106|      0|		SCTP_PRINTF(__VA_ARGS__);           \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  107|      0|		SCTP_PRINTF("\n");                  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  548|      0|	if (SCTP_BASE_VAR(debug_printf)) {                \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (591:28): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  549|      0|		SCTP_BASE_VAR(debug_printf)(__VA_ARGS__); \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  591|      0|#define SCTP_BASE_VAR(__m) system_base_info.__m
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  550|      0|	}
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  108|      0|		terminate_non_graceful();           \
  |  |  |  |  |  |  |  |  109|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (109:10): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|		}                    \
  |  |  |  |  |  |  116|   659k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 659k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3362|       |
 3363|   659k|	return events;
 3364|   659k|}
usrsctp_set_upcall:
 3368|  11.1k|{
 3369|  11.1k|	if (so == NULL) {
  ------------------
  |  Branch (3369:6): [True: 0, False: 11.1k]
  ------------------
 3370|      0|		errno = EBADF;
 3371|      0|		return (-1);
 3372|      0|	}
 3373|       |
 3374|  11.1k|	SOCK_LOCK(so);
  ------------------
  |  |  527|  11.1k|	SOCKBUF_LOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  517|  11.1k|	KASSERT(pthread_mutex_lock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx already locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3375|  11.1k|	so->so_upcall = upcall;
 3376|  11.1k|	so->so_upcallarg = arg;
 3377|  11.1k|	so->so_snd.sb_flags |= SB_UPCALL;
  ------------------
  |  |  206|  11.1k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  ------------------
 3378|  11.1k|	so->so_rcv.sb_flags |= SB_UPCALL;
  ------------------
  |  |  206|  11.1k|#define	SB_UPCALL	0x20		/* someone wants an upcall */
  ------------------
 3379|  11.1k|	SOCK_UNLOCK(so);
  ------------------
  |  |  529|  11.1k|	SOCKBUF_UNLOCK(&(_so)->so_rcv)
  |  |  ------------------
  |  |  |  |  519|  11.1k|	KASSERT(pthread_mutex_unlock(SOCKBUF_MTX(_so_buf)) == 0, ("%s:%d: sockbuf_mtx not locked", __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|  11.1k|	do {                         \
  |  |  |  |  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3380|       |
 3381|  11.1k|	return (0);
 3382|  11.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|  11.1k|{
  232|       |
  233|  11.1k|	KASSERT(so->so_count == 0, ("sodealloc(): so_count %d", so->so_count));
  ------------------
  |  |  112|  11.1k|	do {                         \
  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  ------------------
  ------------------
  234|  11.1k|	KASSERT(so->so_pcb == NULL, ("sodealloc(): so_pcb != NULL"));
  ------------------
  |  |  112|  11.1k|	do {                         \
  |  |  113|  11.1k|		if (!(cond)) {       \
  |  |  ------------------
  |  |  |  Branch (113:7): [True: 0, False: 11.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|  11.1k|	} while (0)
  |  |  ------------------
  |  |  |  Branch (116:11): [Folded, False: 11.1k]
  |  |  ------------------
  ------------------
  235|       |
  236|  11.1k|	SOCKBUF_COND_DESTROY(&so->so_snd);
  ------------------
  |  |  300|  11.1k|#define SOCKBUF_COND_DESTROY(_sb) pthread_cond_destroy((&(_sb)->sb_cond))
  ------------------
  237|  11.1k|	SOCKBUF_COND_DESTROY(&so->so_rcv);
  ------------------
  |  |  300|  11.1k|#define SOCKBUF_COND_DESTROY(_sb) pthread_cond_destroy((&(_sb)->sb_cond))
  ------------------
  238|       |
  239|  11.1k|	SOCK_COND_DESTROY(so);
  ------------------
  |  |  302|  11.1k|#define SOCK_COND_DESTROY(_so) pthread_cond_destroy((&(_so)->timeo_cond))
  ------------------
  240|       |
  241|  11.1k|	SOCKBUF_LOCK_DESTROY(&so->so_snd);
  ------------------
  |  |  298|  11.1k|#define SOCKBUF_LOCK_DESTROY(_sb) pthread_mutex_destroy(SOCKBUF_MTX(_sb))
  |  |  ------------------
  |  |  |  |  274|  11.1k|#define	SOCKBUF_MTX(_sb) (&(_sb)->sb_mtx)
  |  |  ------------------
  ------------------
  242|  11.1k|	SOCKBUF_LOCK_DESTROY(&so->so_rcv);
  ------------------
  |  |  298|  11.1k|#define SOCKBUF_LOCK_DESTROY(_sb) pthread_mutex_destroy(SOCKBUF_MTX(_sb))
  |  |  ------------------
  |  |  |  |  274|  11.1k|#define	SOCKBUF_MTX(_sb) (&(_sb)->sb_mtx)
  |  |  ------------------
  ------------------
  243|       |
  244|  11.1k|	free(so);
  245|  11.1k|}
user_socket.c:soalloc:
  196|  11.1k|{
  197|  11.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|  11.1k|	so = (struct socket *)malloc(sizeof(struct socket));
  210|       |
  211|  11.1k|	if (so == NULL) {
  ------------------
  |  Branch (211:6): [True: 0, False: 11.1k]
  ------------------
  212|      0|		return (NULL);
  213|      0|	}
  214|  11.1k|	memset(so, 0, sizeof(struct socket));
  215|       |
  216|       |	/* __Userspace__ Initializing the socket locks here */
  217|  11.1k|	SOCKBUF_LOCK_INIT(&so->so_snd, "so_snd");
  ------------------
  |  |  286|  11.1k|#define SOCKBUF_LOCK_INIT(_sb, _name) do {                                 \
  |  |  287|  11.1k|	pthread_mutexattr_t mutex_attr;                                    \
  |  |  288|  11.1k|	                                                                   \
  |  |  289|  11.1k|	pthread_mutexattr_init(&mutex_attr);                               \
  |  |  290|  11.1k|	pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_ERRORCHECK);  \
  |  |  291|  11.1k|	pthread_mutex_init(SOCKBUF_MTX(_sb), &mutex_attr);                 \
  |  |  ------------------
  |  |  |  |  274|  11.1k|#define	SOCKBUF_MTX(_sb) (&(_sb)->sb_mtx)
  |  |  ------------------
  |  |  292|  11.1k|	pthread_mutexattr_destroy(&mutex_attr);                            \
  |  |  293|  11.1k|} while (0)
  |  |  ------------------
  |  |  |  Branch (293:10): [Folded, False: 11.1k]
  |  |  ------------------
  ------------------
  218|  11.1k|	SOCKBUF_LOCK_INIT(&so->so_rcv, "so_rcv");
  ------------------
  |  |  286|  11.1k|#define SOCKBUF_LOCK_INIT(_sb, _name) do {                                 \
  |  |  287|  11.1k|	pthread_mutexattr_t mutex_attr;                                    \
  |  |  288|  11.1k|	                                                                   \
  |  |  289|  11.1k|	pthread_mutexattr_init(&mutex_attr);                               \
  |  |  290|  11.1k|	pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_ERRORCHECK);  \
  |  |  291|  11.1k|	pthread_mutex_init(SOCKBUF_MTX(_sb), &mutex_attr);                 \
  |  |  ------------------
  |  |  |  |  274|  11.1k|#define	SOCKBUF_MTX(_sb) (&(_sb)->sb_mtx)
  |  |  ------------------
  |  |  292|  11.1k|	pthread_mutexattr_destroy(&mutex_attr);                            \
  |  |  293|  11.1k|} while (0)
  |  |  ------------------
  |  |  |  Branch (293:10): [Folded, False: 11.1k]
  |  |  ------------------
  ------------------
  219|  11.1k|	SOCKBUF_COND_INIT(&so->so_snd);
  ------------------
  |  |  299|  11.1k|#define SOCKBUF_COND_INIT(_sb) pthread_cond_init((&(_sb)->sb_cond), NULL)
  ------------------
  220|  11.1k|	SOCKBUF_COND_INIT(&so->so_rcv);
  ------------------
  |  |  299|  11.1k|#define SOCKBUF_COND_INIT(_sb) pthread_cond_init((&(_sb)->sb_cond), NULL)
  ------------------
  221|  11.1k|	SOCK_COND_INIT(so); /* timeo_cond */
  ------------------
  |  |  301|  11.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: 11.1k]
  ------------------
  226|  11.1k|	return (so);
  227|  11.1k|}
user_socket.c:copy_from_user:
  558|  28.2k|copy_from_user(void *dst, void *src, size_t len) {
  559|  28.2k|	memcpy(dst, src, len);
  560|  28.2k|	return 0;
  561|  28.2k|}
user_socket.c:copy_to_user:
  552|   648k|copy_to_user(void *dst, void *src, size_t len) {
  553|   648k|	memcpy(dst, src, len);
  554|   648k|	return 0;
  555|   648k|}

