Do global initialization. */
| 1135 | |
| 1136 | /* Do global initialization. */ |
| 1137 | void |
| 1138 | tcp_log_init(void) |
| 1139 | { |
| 1140 | |
| 1141 | tcp_log_zone = uma_zcreate("tcp_log", sizeof(struct tcp_log_mem), |
| 1142 | #ifdef TCPLOG_DEBUG_RINGBUF |
| 1143 | tcp_log_zone_ctor, tcp_log_zone_dtor, tcp_log_zone_init, |
| 1144 | #else |
| 1145 | NULL, NULL, NULL, |
| 1146 | #endif |
| 1147 | NULL, UMA_ALIGN_PTR, 0); |
| 1148 | (void)uma_zone_set_max(tcp_log_zone, TCP_LOG_BUF_DEFAULT_GLOBAL_LIMIT); |
| 1149 | tcp_log_bucket_zone = uma_zcreate("tcp_log_bucket", |
| 1150 | sizeof(struct tcp_log_id_bucket), NULL, NULL, NULL, NULL, |
| 1151 | UMA_ALIGN_PTR, 0); |
| 1152 | tcp_log_node_zone = uma_zcreate("tcp_log_node", |
| 1153 | sizeof(struct tcp_log_id_node), NULL, NULL, NULL, NULL, |
| 1154 | UMA_ALIGN_PTR, 0); |
| 1155 | #ifdef TCPLOG_DEBUG_COUNTERS |
| 1156 | tcp_log_queued = counter_u64_alloc(M_WAITOK); |
| 1157 | tcp_log_que_fail1 = counter_u64_alloc(M_WAITOK); |
| 1158 | tcp_log_que_fail2 = counter_u64_alloc(M_WAITOK); |
| 1159 | tcp_log_que_fail3 = counter_u64_alloc(M_WAITOK); |
| 1160 | tcp_log_que_fail4 = counter_u64_alloc(M_WAITOK); |
| 1161 | tcp_log_que_fail5 = counter_u64_alloc(M_WAITOK); |
| 1162 | tcp_log_que_copyout = counter_u64_alloc(M_WAITOK); |
| 1163 | tcp_log_que_read = counter_u64_alloc(M_WAITOK); |
| 1164 | tcp_log_que_freed = counter_u64_alloc(M_WAITOK); |
| 1165 | #endif |
| 1166 | tcp_log_pcb_ids_cur = counter_u64_alloc(M_WAITOK); |
| 1167 | tcp_log_pcb_ids_tot = counter_u64_alloc(M_WAITOK); |
| 1168 | |
| 1169 | rw_init_flags(&tcp_id_tree_lock, "TCP ID tree", RW_NEW); |
| 1170 | mtx_init(&tcp_log_expireq_mtx, "TCP log expireq", NULL, MTX_DEF); |
| 1171 | callout_init(&tcp_log_expireq_callout, 1); |
| 1172 | } |
| 1173 | |
| 1174 | /* Do per-TCPCB initialization. */ |
| 1175 | void |
no test coverage detected