Lines Matching refs:softs

161 	ipf_sync_softc_t *softs;  in ipf_sync_soft_create()  local
163 KMALLOC(softs, ipf_sync_softc_t *); in ipf_sync_soft_create()
164 if (softs == NULL) { in ipf_sync_soft_create()
169 bzero((char *)softs, sizeof(*softs)); in ipf_sync_soft_create()
171 softs->ipf_sync_log_sz = SYNCLOG_SZ; in ipf_sync_soft_create()
172 softs->ipf_sync_nat_tab_sz = SYNC_STATETABSZ; in ipf_sync_soft_create()
173 softs->ipf_sync_state_tab_sz = SYNC_STATETABSZ; in ipf_sync_soft_create()
174 softs->ipf_sync_event_high_wm = SYNCLOG_SZ * 100 / 90; /* 90% */ in ipf_sync_soft_create()
175 softs->ipf_sync_queue_high_wm = SYNCLOG_SZ * 100 / 90; /* 90% */ in ipf_sync_soft_create()
177 return softs; in ipf_sync_soft_create()
192 ipf_sync_softc_t *softs = arg; in ipf_sync_soft_init() local
194 KMALLOCS(softs->synclog, synclogent_t *, in ipf_sync_soft_init()
195 softs->ipf_sync_log_sz * sizeof(*softs->synclog)); in ipf_sync_soft_init()
196 if (softs->synclog == NULL) in ipf_sync_soft_init()
198 bzero((char *)softs->synclog, in ipf_sync_soft_init()
199 softs->ipf_sync_log_sz * sizeof(*softs->synclog)); in ipf_sync_soft_init()
201 KMALLOCS(softs->syncupd, syncupdent_t *, in ipf_sync_soft_init()
202 softs->ipf_sync_log_sz * sizeof(*softs->syncupd)); in ipf_sync_soft_init()
203 if (softs->syncupd == NULL) in ipf_sync_soft_init()
205 bzero((char *)softs->syncupd, in ipf_sync_soft_init()
206 softs->ipf_sync_log_sz * sizeof(*softs->syncupd)); in ipf_sync_soft_init()
208 KMALLOCS(softs->syncstatetab, synclist_t **, in ipf_sync_soft_init()
209 softs->ipf_sync_state_tab_sz * sizeof(*softs->syncstatetab)); in ipf_sync_soft_init()
210 if (softs->syncstatetab == NULL) in ipf_sync_soft_init()
212 bzero((char *)softs->syncstatetab, in ipf_sync_soft_init()
213 softs->ipf_sync_state_tab_sz * sizeof(*softs->syncstatetab)); in ipf_sync_soft_init()
215 KMALLOCS(softs->syncnattab, synclist_t **, in ipf_sync_soft_init()
216 softs->ipf_sync_nat_tab_sz * sizeof(*softs->syncnattab)); in ipf_sync_soft_init()
217 if (softs->syncnattab == NULL) in ipf_sync_soft_init()
219 bzero((char *)softs->syncnattab, in ipf_sync_soft_init()
220 softs->ipf_sync_nat_tab_sz * sizeof(*softs->syncnattab)); in ipf_sync_soft_init()
222 softs->ipf_sync_num = 1; in ipf_sync_soft_init()
223 softs->ipf_sync_wrap = 0; in ipf_sync_soft_init()
224 softs->sl_idx = 0; in ipf_sync_soft_init()
225 softs->su_idx = 0; in ipf_sync_soft_init()
226 softs->sl_tail = 0; in ipf_sync_soft_init()
227 softs->su_tail = 0; in ipf_sync_soft_init()
228 softs->ipf_sync_events = 0; in ipf_sync_soft_init()
229 softs->ipf_sync_lastwakeup = 0; in ipf_sync_soft_init()
233 cv_init(&softs->ipslwait, "ipsl condvar", CV_DRIVER, NULL); in ipf_sync_soft_init()
235 RWLOCK_INIT(&softs->ipf_syncstate, "add things to state sync table"); in ipf_sync_soft_init()
236 RWLOCK_INIT(&softs->ipf_syncnat, "add things to nat sync table"); in ipf_sync_soft_init()
237 MUTEX_INIT(&softs->ipf_syncadd, "add things to sync table"); in ipf_sync_soft_init()
238 MUTEX_INIT(&softs->ipsl_mutex, "read ring lock"); in ipf_sync_soft_init()
240 softs->ipf_sync_inited = 1; in ipf_sync_soft_init()
257 ipf_sync_softc_t *softs = arg; in ipf_sync_soft_fini() local
259 if (softs->syncnattab != NULL) { in ipf_sync_soft_fini()
260 ipf_sync_flush_table(softs, softs->ipf_sync_nat_tab_sz, in ipf_sync_soft_fini()
261 softs->syncnattab); in ipf_sync_soft_fini()
262 KFREES(softs->syncnattab, in ipf_sync_soft_fini()
263 softs->ipf_sync_nat_tab_sz * sizeof(*softs->syncnattab)); in ipf_sync_soft_fini()
264 softs->syncnattab = NULL; in ipf_sync_soft_fini()
267 if (softs->syncstatetab != NULL) { in ipf_sync_soft_fini()
268 ipf_sync_flush_table(softs, softs->ipf_sync_state_tab_sz, in ipf_sync_soft_fini()
269 softs->syncstatetab); in ipf_sync_soft_fini()
270 KFREES(softs->syncstatetab, in ipf_sync_soft_fini()
271 softs->ipf_sync_state_tab_sz * in ipf_sync_soft_fini()
272 sizeof(*softs->syncstatetab)); in ipf_sync_soft_fini()
273 softs->syncstatetab = NULL; in ipf_sync_soft_fini()
276 if (softs->syncupd != NULL) { in ipf_sync_soft_fini()
277 KFREES(softs->syncupd, in ipf_sync_soft_fini()
278 softs->ipf_sync_log_sz * sizeof(*softs->syncupd)); in ipf_sync_soft_fini()
279 softs->syncupd = NULL; in ipf_sync_soft_fini()
282 if (softs->synclog != NULL) { in ipf_sync_soft_fini()
283 KFREES(softs->synclog, in ipf_sync_soft_fini()
284 softs->ipf_sync_log_sz * sizeof(*softs->synclog)); in ipf_sync_soft_fini()
285 softs->synclog = NULL; in ipf_sync_soft_fini()
288 if (softs->ipf_sync_inited == 1) { in ipf_sync_soft_fini()
289 MUTEX_DESTROY(&softs->ipsl_mutex); in ipf_sync_soft_fini()
290 MUTEX_DESTROY(&softs->ipf_syncadd); in ipf_sync_soft_fini()
291 RW_DESTROY(&softs->ipf_syncnat); in ipf_sync_soft_fini()
292 RW_DESTROY(&softs->ipf_syncstate); in ipf_sync_soft_fini()
293 softs->ipf_sync_inited = 0; in ipf_sync_soft_fini()
302 ipf_sync_softc_t *softs = arg; in ipf_sync_soft_destroy() local
304 KFREE(softs); in ipf_sync_soft_destroy()
430 ipf_sync_softc_t *softs = softc->ipf_sync_soft; in ipf_sync_write() local
453 if (softs->ipf_sync_debug > 2) in ipf_sync_write()
464 if (softs->ipf_sync_debug > 8) in ipf_sync_write()
471 if (softs->ipf_sync_debug > 2) in ipf_sync_write()
479 if (softs->ipf_sync_debug > 2) in ipf_sync_write()
487 if (softs->ipf_sync_debug > 2) in ipf_sync_write()
496 if (softs->ipf_sync_debug > 2) in ipf_sync_write()
505 if (softs->ipf_sync_debug > 2) in ipf_sync_write()
519 if (softs->ipf_sync_debug > 2) in ipf_sync_write()
531 if (softs->ipf_sync_debug > 2) in ipf_sync_write()
537 if (softs->ipf_sync_debug > 7) in ipf_sync_write()
545 if (softs->ipf_sync_debug > 7) in ipf_sync_write()
551 if (softs->ipf_sync_debug > 2) in ipf_sync_write()
577 ipf_sync_softc_t *softs = softc->ipf_sync_soft; in ipf_sync_read() local
591 MUTEX_ENTER(&softs->ipsl_mutex); in ipf_sync_read()
592 while ((softs->sl_tail == softs->sl_idx) && in ipf_sync_read()
593 (softs->su_tail == softs->su_idx)) { in ipf_sync_read()
596 if (!cv_wait_sig(&softs->ipslwait, &softs->ipsl_mutex.ipf_lk)) { in ipf_sync_read()
597 MUTEX_EXIT(&softs->ipsl_mutex); in ipf_sync_read()
606 l = get_sleep_lock(&softs->sl_tail); in ipf_sync_read()
607 err = sleep(&softs->sl_tail, PZERO+1); in ipf_sync_read()
609 MUTEX_EXIT(&softs->ipsl_mutex); in ipf_sync_read()
617 err = mpsleep(&softs->sl_tail, PSUSP|PCATCH, "ipl sleep", 0, in ipf_sync_read()
618 &softs->ipsl_mutex, MS_LOCK_SIMPLE); in ipf_sync_read()
624 MUTEX_EXIT(&softs->ipsl_mutex); in ipf_sync_read()
625 err = SLEEP(&softs->sl_tail, "ipl sleep"); in ipf_sync_read()
630 MUTEX_ENTER(&softs->ipsl_mutex); in ipf_sync_read()
637 while ((softs->sl_tail < softs->sl_idx) && in ipf_sync_read()
639 sl = softs->synclog + softs->sl_tail++; in ipf_sync_read()
640 MUTEX_EXIT(&softs->ipsl_mutex); in ipf_sync_read()
644 MUTEX_ENTER(&softs->ipsl_mutex); in ipf_sync_read()
647 while ((softs->su_tail < softs->su_idx) && in ipf_sync_read()
649 su = softs->syncupd + softs->su_tail; in ipf_sync_read()
650 softs->su_tail++; in ipf_sync_read()
651 MUTEX_EXIT(&softs->ipsl_mutex); in ipf_sync_read()
655 MUTEX_ENTER(&softs->ipsl_mutex); in ipf_sync_read()
659 if (softs->sl_tail == softs->sl_idx) in ipf_sync_read()
660 softs->sl_tail = softs->sl_idx = 0; in ipf_sync_read()
661 if (softs->su_tail == softs->su_idx) in ipf_sync_read()
662 softs->su_tail = softs->su_idx = 0; in ipf_sync_read()
663 MUTEX_EXIT(&softs->ipsl_mutex); in ipf_sync_read()
684 ipf_sync_softc_t *softs = softc->ipf_sync_soft; in ipf_sync_state() local
692 hv = sp->sm_num & (softs->ipf_sync_state_tab_sz - 1); in ipf_sync_state()
733 if (softs->ipf_sync_debug > 4) in ipf_sync_state()
743 WRITE_ENTER(&softs->ipf_syncstate); in ipf_sync_state()
746 sl->sl_pnext = softs->syncstatetab + hv; in ipf_sync_state()
747 sl->sl_next = softs->syncstatetab[hv]; in ipf_sync_state()
748 if (softs->syncstatetab[hv] != NULL) in ipf_sync_state()
749 softs->syncstatetab[hv]->sl_pnext = &sl->sl_next; in ipf_sync_state()
750 softs->syncstatetab[hv] = sl; in ipf_sync_state()
751 MUTEX_DOWNGRADE(&softs->ipf_syncstate); in ipf_sync_state()
766 if (softs->ipf_sync_debug > 4) in ipf_sync_state()
771 READ_ENTER(&softs->ipf_syncstate); in ipf_sync_state()
772 for (sl = softs->syncstatetab[hv]; (sl != NULL); in ipf_sync_state()
777 if (softs->ipf_sync_debug > 1) in ipf_sync_state()
780 RWLOCK_EXIT(&softs->ipf_syncstate); in ipf_sync_state()
788 if (softs->ipf_sync_debug > 6) in ipf_sync_state()
814 if (softs->ipf_sync_debug > 6) in ipf_sync_state()
830 RWLOCK_EXIT(&softs->ipf_syncstate); in ipf_sync_state()
833 if (softs->ipf_sync_debug > 6) in ipf_sync_state()
849 ipf_sync_del(ipf_sync_softc_t *softs, synclist_t *sl) in ipf_sync_del() argument
855 softs->syncupd[sl->sl_idx].sup_hdr.sm_sl = NULL; in ipf_sync_del()
869 ipf_sync_softc_t *softs = arg; in ipf_sync_del_state() local
871 WRITE_ENTER(&softs->ipf_syncstate); in ipf_sync_del_state()
872 ipf_sync_del(softs, sl); in ipf_sync_del_state()
873 RWLOCK_EXIT(&softs->ipf_syncstate); in ipf_sync_del_state()
888 ipf_sync_softc_t *softs = arg; in ipf_sync_del_nat() local
890 WRITE_ENTER(&softs->ipf_syncnat); in ipf_sync_del_nat()
891 ipf_sync_del(softs, sl); in ipf_sync_del_nat()
892 RWLOCK_EXIT(&softs->ipf_syncnat); in ipf_sync_del_nat()
912 ipf_sync_softc_t *softs = softc->ipf_sync_soft; in ipf_sync_nat() local
919 READ_ENTER(&softs->ipf_syncnat); in ipf_sync_nat()
952 sl->sl_pnext = softs->syncnattab + hv; in ipf_sync_nat()
953 sl->sl_next = softs->syncnattab[hv]; in ipf_sync_nat()
954 if (softs->syncnattab[hv] != NULL) in ipf_sync_nat()
955 softs->syncnattab[hv]->sl_pnext = &sl->sl_next; in ipf_sync_nat()
956 softs->syncnattab[hv] = sl; in ipf_sync_nat()
964 for (sl = softs->syncnattab[hv]; (sl != NULL); in ipf_sync_nat()
993 RWLOCK_EXIT(&softs->ipf_syncnat); in ipf_sync_nat()
1012 ipf_sync_softc_t *softs = softc->ipf_sync_soft; in ipf_sync_new() local
1017 if (softs->sl_idx == softs->ipf_sync_log_sz) in ipf_sync_new()
1023 MUTEX_ENTER(&softs->ipf_syncadd); in ipf_sync_new()
1029 softs->ipf_sync_num++; in ipf_sync_new()
1030 if (softs->ipf_sync_num == 0) { in ipf_sync_new()
1031 softs->ipf_sync_num = 1; in ipf_sync_new()
1032 softs->ipf_sync_wrap++; in ipf_sync_new()
1046 hv = softs->ipf_sync_num & (softs->ipf_sync_state_tab_sz - 1); in ipf_sync_new()
1047 while (softs->ipf_sync_wrap != 0) { in ipf_sync_new()
1048 for (ss = softs->syncstatetab[hv]; ss; ss = ss->sl_next) in ipf_sync_new()
1049 if (ss->sl_hdr.sm_num == softs->ipf_sync_num) in ipf_sync_new()
1053 softs->ipf_sync_num++; in ipf_sync_new()
1054 hv = softs->ipf_sync_num & in ipf_sync_new()
1055 (softs->ipf_sync_state_tab_sz - 1); in ipf_sync_new()
1057 sl->sl_pnext = softs->syncstatetab + hv; in ipf_sync_new()
1058 sl->sl_next = softs->syncstatetab[hv]; in ipf_sync_new()
1059 softs->syncstatetab[hv] = sl; in ipf_sync_new()
1063 hv = softs->ipf_sync_num & (softs->ipf_sync_nat_tab_sz - 1); in ipf_sync_new()
1064 while (softs->ipf_sync_wrap != 0) { in ipf_sync_new()
1065 for (ss = softs->syncnattab[hv]; ss; ss = ss->sl_next) in ipf_sync_new()
1066 if (ss->sl_hdr.sm_num == softs->ipf_sync_num) in ipf_sync_new()
1070 softs->ipf_sync_num++; in ipf_sync_new()
1071 hv = softs->ipf_sync_num & in ipf_sync_new()
1072 (softs->ipf_sync_nat_tab_sz - 1); in ipf_sync_new()
1074 sl->sl_pnext = softs->syncnattab + hv; in ipf_sync_new()
1075 sl->sl_next = softs->syncnattab[hv]; in ipf_sync_new()
1076 softs->syncnattab[hv] = sl; in ipf_sync_new()
1083 sl->sl_num = softs->ipf_sync_num; in ipf_sync_new()
1084 MUTEX_EXIT(&softs->ipf_syncadd); in ipf_sync_new()
1109 MUTEX_ENTER(&softs->ipf_syncadd); in ipf_sync_new()
1110 sle = softs->synclog + softs->sl_idx++; in ipf_sync_new()
1123 MUTEX_EXIT(&softs->ipf_syncadd); in ipf_sync_new()
1144 ipf_sync_softc_t *softs = softc->ipf_sync_soft; in ipf_sync_update() local
1155 lock = &softs->ipf_syncstate; in ipf_sync_update()
1157 lock = &softs->ipf_syncnat; in ipf_sync_update()
1162 MUTEX_ENTER(&softs->ipf_syncadd); in ipf_sync_update()
1163 slu = softs->syncupd + softs->su_idx; in ipf_sync_update()
1164 sl->sl_idx = softs->su_idx++; in ipf_sync_update()
1165 MUTEX_EXIT(&softs->ipf_syncadd); in ipf_sync_update()
1183 slu = softs->syncupd + sl->sl_idx; in ipf_sync_update()
1224 ipf_sync_flush_table(ipf_sync_softc_t *softs, int tabsize, synclist_t **table) in ipf_sync_flush_table() argument
1247 softs->syncupd[sl->sl_idx].sup_hdr.sm_sl = NULL; in ipf_sync_flush_table()
1271 ipf_sync_softc_t *softs = softc->ipf_sync_soft; in ipf_sync_ioctl() local
1289 MUTEX_ENTER(&softs->ipsl_mutex); in ipf_sync_ioctl()
1290 i = (softs->sl_tail - softs->sl_idx) + in ipf_sync_ioctl()
1291 (softs->su_tail - softs->su_idx); in ipf_sync_ioctl()
1292 softs->sl_idx = 0; in ipf_sync_ioctl()
1293 softs->su_idx = 0; in ipf_sync_ioctl()
1294 softs->sl_tail = 0; in ipf_sync_ioctl()
1295 softs->su_tail = 0; in ipf_sync_ioctl()
1296 MUTEX_EXIT(&softs->ipsl_mutex); in ipf_sync_ioctl()
1302 WRITE_ENTER(&softs->ipf_syncnat); in ipf_sync_ioctl()
1303 i = ipf_sync_flush_table(softs, SYNC_NATTABSZ, in ipf_sync_ioctl()
1304 softs->syncnattab); in ipf_sync_ioctl()
1305 RWLOCK_EXIT(&softs->ipf_syncnat); in ipf_sync_ioctl()
1311 WRITE_ENTER(&softs->ipf_syncstate); in ipf_sync_ioctl()
1312 i = ipf_sync_flush_table(softs, SYNC_STATETABSZ, in ipf_sync_ioctl()
1313 softs->syncstatetab); in ipf_sync_ioctl()
1314 RWLOCK_EXIT(&softs->ipf_syncstate); in ipf_sync_ioctl()
1347 ipf_sync_softc_t *softs = arg; in ipf_sync_canread() local
1348 return !((softs->sl_tail == softs->sl_idx) && in ipf_sync_canread()
1349 (softs->su_tail == softs->su_idx)); in ipf_sync_canread()
1390 ipf_sync_softc_t *softs = softc->ipf_sync_soft; in ipf_sync_wakeup() local
1392 softs->ipf_sync_events++; in ipf_sync_wakeup()
1394 softs->ipf_sync_lastwakeup + softs->ipf_sync_wake_interval) || in ipf_sync_wakeup()
1395 (softs->ipf_sync_events > softs->ipf_sync_event_high_wm) || in ipf_sync_wakeup()
1396 ((softs->sl_tail - softs->sl_idx) > in ipf_sync_wakeup()
1397 softs->ipf_sync_queue_high_wm) || in ipf_sync_wakeup()
1398 ((softs->su_tail - softs->su_idx) > in ipf_sync_wakeup()
1399 softs->ipf_sync_queue_high_wm)) { in ipf_sync_wakeup()
1416 ipf_sync_softc_t *softs = softc->ipf_sync_soft; in ipf_sync_poll_wakeup() local
1418 softs->ipf_sync_events = 0; in ipf_sync_poll_wakeup()
1419 softs->ipf_sync_lastwakeup = softc->ipf_ticks; in ipf_sync_poll_wakeup()
1423 MUTEX_ENTER(&softs->ipsl_mutex); in ipf_sync_poll_wakeup()
1424 cv_signal(&softs->ipslwait); in ipf_sync_poll_wakeup()
1425 MUTEX_EXIT(&softs->ipsl_mutex); in ipf_sync_poll_wakeup()
1428 WAKEUP(&softs->sl_tail, 0); in ipf_sync_poll_wakeup()
1446 ipf_sync_softc_t *softs = softc->ipf_sync_soft; in ipf_sync_expire() local
1448 if ((softs->ipf_sync_events > 0) && in ipf_sync_expire()
1450 softs->ipf_sync_lastwakeup + softs->ipf_sync_wake_interval)) { in ipf_sync_expire()