Lines Matching defs:ifs

161 int fr_loginit(ifs)
162 ipf_stack_t *ifs;
167 ifs->ifs_iplt[i] = NULL;
168 ifs->ifs_ipll[i] = NULL;
169 ifs->ifs_iplh[i] = &ifs->ifs_iplt[i];
170 ifs->ifs_iplused[i] = 0;
171 bzero((char *)&ifs->ifs_iplcrc[i], sizeof(ifs->ifs_iplcrc[i]));
182 cv_init(&ifs->ifs_iplwait, "ipl condvar", CV_DRIVER, NULL);
184 MUTEX_INIT(&ifs->ifs_ipl_mutex, "ipf log mutex");
186 ifs->ifs_ipl_log_init = 1;
199 void fr_logunload(ifs)
200 ipf_stack_t *ifs;
204 if (ifs->ifs_ipl_log_init == 0)
208 (void) ipflog_clear(i, ifs);
211 cv_destroy(&ifs->ifs_iplwait);
213 MUTEX_DESTROY(&ifs->ifs_ipl_mutex);
215 ifs->ifs_ipl_log_init = 0;
252 ipf_stack_t *ifs = fin->fin_ifs;
322 nif = ifs->ifs_ipf_ipv4;
324 nif = ifs->ifs_ipf_ipv6;
355 if (!ifs->ifs_ipl_logall) {
418 int ipllog(dev, fin, items, itemsz, types, cnt, ifs)
424 ipf_stack_t *ifs;
437 if (ifs->ifs_ipl_suppress) {
438 MUTEX_ENTER(&ifs->ifs_ipl_mutex);
440 if ((ifs->ifs_ipll[dev] != NULL) &&
441 bcmp((char *)fin, (char *)&ifs->ifs_iplcrc[dev],
443 ifs->ifs_ipll[dev]->ipl_count++;
444 MUTEX_EXIT(&ifs->ifs_ipl_mutex);
447 bcopy((char *)fin, (char *)&ifs->ifs_iplcrc[dev],
450 bzero((char *)&ifs->ifs_iplcrc[dev], FI_CSIZE);
451 MUTEX_EXIT(&ifs->ifs_ipl_mutex);
468 MUTEX_ENTER(&ifs->ifs_ipl_mutex);
469 if ((ifs->ifs_iplused[dev] + len) > IPFILTER_LOGSIZE) {
470 MUTEX_EXIT(&ifs->ifs_ipl_mutex);
475 ifs->ifs_iplused[dev] += len;
476 MUTEX_EXIT(&ifs->ifs_ipl_mutex);
508 MUTEX_ENTER(&ifs->ifs_ipl_mutex);
509 ifs->ifs_ipll[dev] = ipl;
510 *ifs->ifs_iplh[dev] = ipl;
511 ifs->ifs_iplh[dev] = &ipl->ipl_next;
518 cv_signal(&ifs->ifs_iplwait);
519 MUTEX_EXIT(&ifs->ifs_ipl_mutex);
521 MUTEX_EXIT(&ifs->ifs_ipl_mutex);
522 WAKEUP(&ifs->ifs_iplh, dev);
544 int ipflog_read(unit, uio, ifs)
547 ipf_stack_t *ifs;
563 (uio->uio_resid > ifs->ifs_ipl_logsize))
571 MUTEX_ENTER(&ifs->ifs_ipl_mutex);
573 while (ifs->ifs_iplt[unit] == NULL) {
575 if (!cv_wait_sig(&ifs->ifs_iplwait, &ifs->ifs_ipl_mutex.ipf_lk)) {
576 MUTEX_EXIT(&ifs->ifs_ipl_mutex);
586 MUTEX_EXIT(&ifs->ifs_ipl_mutex);
591 MUTEX_EXIT(&ifs->ifs_ipl_mutex);
592 l = get_sleep_lock(&ifs->ifs_iplh[unit]);
593 error = sleep(&ifs->ifs_iplh[unit], PZERO+1);
597 error = mpsleep(&ifs->ifs_iplh[unit], PSUSP|PCATCH, "iplread", 0,
598 &ifs->ifs_ipl_mutex, MS_LOCK_SIMPLE);
600 MUTEX_EXIT(&ifs->ifs_ipl_mutex);
602 error = SLEEP(&ifs->ifs_iplh[unit], "ipl sleep");
608 MUTEX_ENTER(&ifs->ifs_ipl_mutex);
616 for (copied = 0; ((ipl = ifs->ifs_iplt[unit]) != NULL); copied += dlen) {
623 ifs->ifs_iplt[unit] = ipl->ipl_next;
624 ifs->ifs_iplused[unit] -= dlen;
625 if (ifs->ifs_iplt[unit] == NULL) {
626 ifs->ifs_iplh[unit] = &ifs->ifs_iplt[unit];
627 ifs->ifs_ipll[unit] = NULL;
629 MUTEX_EXIT(&ifs->ifs_ipl_mutex);
634 MUTEX_ENTER(&ifs->ifs_ipl_mutex);
635 ifs->ifs_iplused[unit] += dlen;
636 ipl->ipl_next = ifs->ifs_iplt[unit];
637 ifs->ifs_iplt[unit] = ipl;
638 ifs->ifs_ipll[unit] = ipl;
639 if (ifs->ifs_iplh[unit] == &ifs->ifs_iplt[unit]) {
640 *ifs->ifs_iplh[unit] = ipl;
641 ifs->ifs_iplh[unit] = &ipl->ipl_next;
645 MUTEX_ENTER(&ifs->ifs_ipl_mutex);
650 MUTEX_EXIT(&ifs->ifs_ipl_mutex);
663 int ipflog_clear(unit, ifs)
665 ipf_stack_t *ifs;
672 MUTEX_ENTER(&ifs->ifs_ipl_mutex);
673 while ((ipl = ifs->ifs_iplt[unit]) != NULL) {
674 ifs->ifs_iplt[unit] = ipl->ipl_next;
677 ifs->ifs_iplh[unit] = &ifs->ifs_iplt[unit];
678 ifs->ifs_ipll[unit] = NULL;
679 used = ifs->ifs_iplused[unit];
680 ifs->ifs_iplused[unit] = 0;
681 bzero((char *)&ifs->ifs_iplcrc[unit], FI_CSIZE);
682 MUTEX_EXIT(&ifs->ifs_ipl_mutex);