Lines Matching defs:softl

216 	ipf_log_softc_t *softl;
218 KMALLOC(softl, ipf_log_softc_t *);
219 if (softl == NULL)
222 bzero((char *)softl, sizeof(*softl));
223 bcopy((char *)magic, (char *)softl->ipl_magic, sizeof(magic));
225 softl->ipf_log_tune = ipf_tune_array_copy(softl,
228 if (softl->ipf_log_tune == NULL) {
229 ipf_log_soft_destroy(softc, softl);
232 if (ipf_tune_array_link(softc, softl->ipf_log_tune) == -1) {
233 ipf_log_soft_destroy(softc, softl);
237 softl->ipl_suppress = 1;
238 softl->ipl_logall = 0;
239 softl->ipl_log_init = 0;
240 softl->ipl_logsize = IPFILTER_LOGSIZE;
242 return softl;
258 ipf_log_softc_t *softl = arg;
262 softl->iplt[i] = NULL;
263 softl->ipll[i] = NULL;
264 softl->iplh[i] = &softl->iplt[i];
265 bzero((char *)&softl->ipl_crc[i], sizeof(softl->ipl_crc[i]));
267 softl->iplog_ss[i].read_waiter = 0;
268 softl->iplog_ss[i].state = 0;
271 init_waitqueue_head(softl->iplh_linux + i);
274 cv_init(&softl->ipl_wait[i], NULL, CV_DRIVER, NULL);
276 MUTEX_INIT(&softl->ipl_mutex[i], "ipf log mutex");
280 softl->ipl_log_init = 1;
298 ipf_log_softc_t *softl = arg;
301 if (softl->ipl_log_init == 0)
304 softl->ipl_log_init = 0;
313 MUTEX_ENTER(&softl->ipl_mutex[i]);
314 while (softl->ipl_readers[i] > 0) {
316 cv_broadcast(&softl->ipl_wait[i]);
317 MUTEX_EXIT(&softl->ipl_mutex[i]);
321 MUTEX_EXIT(&softl->ipl_mutex[i]);
322 WAKEUP(softl->iplh, i);
325 MUTEX_ENTER(&softl->ipl_mutex[i]);
327 MUTEX_DESTROY(&softl->ipl_mutex[i]);
347 ipf_log_softc_t *softl = arg;
352 cv_destroy(&softl->ipl_wait[i]);
354 MUTEX_DESTROY(&softl->ipl_mutex[i]);
357 if (softl->ipf_log_tune != NULL) {
358 ipf_tune_array_unlink(softc, softl->ipf_log_tune);
359 KFREES(softl->ipf_log_tune, sizeof(ipf_log_tuneables));
360 softl->ipf_log_tune = NULL;
363 KFREE(softl);
385 ipf_log_softc_t *softl = softc->ipf_log_soft;
490 if (!softl->ipl_logall) {
565 ipf_log_softc_t *softl = softc->ipf_log_soft;
579 MUTEX_ENTER(&softl->ipl_mutex[unit]);
580 softl->ipl_counter[unit]++;
585 if ((softl->ipl_used[unit] + len) > softl->ipl_logsize) {
586 softl->ipl_logfail[unit]++;
587 MUTEX_EXIT(&softl->ipl_mutex[unit]);
593 softl->ipl_logfail[unit]++;
594 MUTEX_EXIT(&softl->ipl_mutex[unit]);
598 ipl->ipl_magic = softl->ipl_magic[unit];
600 ipl->ipl_seqnum = softl->ipl_counter[unit];
627 if (softl->ipl_suppress) {
629 if ((softl->ipll[unit] != NULL) &&
630 (fin->fin_crc == softl->ipl_crc[unit].fin_crc) &&
631 bcmp((char *)fin, (char *)&softl->ipl_crc[unit],
633 softl->ipll[unit]->ipl_count++;
634 MUTEX_EXIT(&softl->ipl_mutex[unit]);
639 bcopy((char *)fin, (char *)&softl->ipl_crc[unit],
641 softl->ipl_crc[unit].fin_crc = fin->fin_crc;
643 bzero((char *)&softl->ipl_crc[unit], FI_CSIZE);
650 softl->ipl_logok[unit]++;
651 softl->ipll[unit] = ipl;
652 *softl->iplh[unit] = ipl;
653 softl->iplh[unit] = &ipl->ipl_next;
654 softl->ipl_used[unit] += len;
661 cv_signal(&softl->ipl_wait[unit]);
662 MUTEX_EXIT(&softl->ipl_mutex[unit]);
665 MUTEX_EXIT(&softl->ipl_mutex[unit]);
666 WAKEUP(softl->iplh, unit);
696 ipf_log_softc_t *softl = softc->ipf_log_soft;
702 if (softl->ipl_log_init == 0) {
722 if (uio->uio_resid > softl->ipl_logsize) {
732 MUTEX_ENTER(&softl->ipl_mutex[unit]);
733 softl->ipl_readers[unit]++;
735 while (softl->ipl_log_init == 1 && softl->iplt[unit] == NULL) {
737 if (!cv_wait_sig(&softl->ipl_wait[unit],
738 &softl->ipl_mutex[unit].ipf_lk)) {
739 softl->ipl_readers[unit]--;
740 MUTEX_EXIT(&softl->ipl_mutex[unit]);
751 softl->ipl_readers[unit]--;
752 MUTEX_EXIT(&softl->ipl_mutex[unit]);
757 MUTEX_EXIT(&softl->ipl_mutex[unit]);
758 l = get_sleep_lock(&softl->iplh[unit]);
759 error = sleep(&softl->iplh[unit], PZERO+1);
763 error = mpsleep(&softl->iplh[unit], PSUSP|PCATCH, "ipfread", 0,
764 &softl->ipl_mutex, MS_LOCK_SIMPLE);
766 MUTEX_EXIT(&softl->ipl_mutex[unit]);
768 error = SLEEP(unit + softl->iplh, "ipl sleep");
772 MUTEX_ENTER(&softl->ipl_mutex[unit]);
774 softl->ipl_readers[unit]--;
775 MUTEX_EXIT(&softl->ipl_mutex[unit]);
781 if (softl->ipl_log_init != 1) {
782 softl->ipl_readers[unit]--;
783 MUTEX_EXIT(&softl->ipl_mutex[unit]);
793 for (copied = 0; (ipl = softl->iplt[unit]) != NULL; copied += dlen) {
800 softl->iplt[unit] = ipl->ipl_next;
801 softl->ipl_used[unit] -= dlen;
802 MUTEX_EXIT(&softl->ipl_mutex[unit]);
807 MUTEX_ENTER(&softl->ipl_mutex[unit]);
809 ipl->ipl_next = softl->iplt[unit];
810 softl->iplt[unit] = ipl;
811 softl->ipl_used[unit] += dlen;
814 MUTEX_ENTER(&softl->ipl_mutex[unit]);
818 if (!softl->iplt[unit]) {
819 softl->ipl_used[unit] = 0;
820 softl->iplh[unit] = &softl->iplt[unit];
821 softl->ipll[unit] = NULL;
824 softl->ipl_readers[unit]--;
825 MUTEX_EXIT(&softl->ipl_mutex[unit]);
844 ipf_log_softc_t *softl = softc->ipf_log_soft;
850 MUTEX_ENTER(&softl->ipl_mutex[unit]);
851 while ((ipl = softl->iplt[unit]) != NULL) {
852 softl->iplt[unit] = ipl->ipl_next;
855 softl->iplh[unit] = &softl->iplt[unit];
856 softl->ipll[unit] = NULL;
857 used = softl->ipl_used[unit];
858 softl->ipl_used[unit] = 0;
859 bzero((char *)&softl->ipl_crc[unit], FI_CSIZE);
860 MUTEX_EXIT(&softl->ipl_mutex[unit]);
880 ipf_log_softc_t *softl = softc->ipf_log_soft;
882 return softl->iplt[unit] != NULL;
900 ipf_log_softc_t *softl = softc->ipf_log_soft;
902 if (softl == NULL)
905 return softl->ipl_used[unit];
923 ipf_log_softc_t *softl = softc->ipf_log_soft;
925 if (softl == NULL)
928 return softl->ipl_logfail[unit];
946 ipf_log_softc_t *softl = softc->ipf_log_soft;
948 if (softl == NULL)
951 return softl->ipl_logok[unit];