Lines Matching refs:handle
224 usb_set_ring_size(pcap_t* handle, int header_size) in usb_set_ring_size() argument
248 if (handle->snapshot < header_size) in usb_set_ring_size()
249 handle->snapshot = header_size; in usb_set_ring_size()
251 ring_size = (handle->snapshot - header_size) * 5; in usb_set_ring_size()
266 handle->snapshot = header_size + (MAX_RING_SIZE/5); in usb_set_ring_size()
277 if (ioctl(handle->fd, MON_IOCT_RING_SIZE, ring_size) == -1) { in usb_set_ring_size()
278 pcapint_fmt_errmsg_for_errno(handle->errbuf, PCAP_ERRBUF_SIZE, in usb_set_ring_size()
279 errno, "Can't set ring size from fd %d", handle->fd); in usb_set_ring_size()
286 int usb_mmap(pcap_t* handle) in usb_mmap() argument
288 struct pcap_usb_linux *handlep = handle->priv; in usb_mmap()
296 len = usb_set_ring_size(handle, (int)sizeof(pcap_usb_header_mmapped)); in usb_mmap()
304 MAP_SHARED, handle->fd, 0); in usb_mmap()
461 usb_activate(pcap_t* handle) in usb_activate() argument
463 struct pcap_usb_linux *handlep = handle->priv; in usb_activate()
474 if (handle->snapshot <= 0 || handle->snapshot > MAXIMUM_SNAPLEN) in usb_activate()
475 handle->snapshot = MAXIMUM_SNAPLEN; in usb_activate()
478 handle->bufsize = handle->snapshot; in usb_activate()
479 handle->offset = 0; in usb_activate()
480 handle->linktype = DLT_USB_LINUX; in usb_activate()
482 handle->inject_op = usb_inject_linux; in usb_activate()
483 handle->setfilter_op = pcapint_install_bpf_program; /* no kernel filtering */ in usb_activate()
484 handle->setdirection_op = usb_setdirection_linux; in usb_activate()
485 handle->set_datalink_op = NULL; /* can't change data link type */ in usb_activate()
486 handle->getnonblock_op = pcapint_getnonblock_fd; in usb_activate()
487 handle->setnonblock_op = pcapint_setnonblock_fd; in usb_activate()
490 if (sscanf(handle->opt.device, USB_IFACE"%d", &handlep->bus_index) != 1) in usb_activate()
492 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in usb_activate()
493 "Can't get USB bus index from %s", handle->opt.device); in usb_activate()
503 handle->fd = open(full_path, O_RDONLY, 0); in usb_activate()
504 if (handle->fd < 0) in usb_activate()
527 handle->errbuf[0] = '\0'; in usb_activate()
535 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in usb_activate()
545 pcapint_fmt_errmsg_for_errno(handle->errbuf, in usb_activate()
552 if (handle->opt.rfmon) in usb_activate()
557 close(handle->fd); in usb_activate()
562 if (usb_mmap(handle)) in usb_activate()
565 handle->linktype = DLT_USB_LINUX_MMAPPED; in usb_activate()
566 handle->stats_op = usb_stats_linux_bin; in usb_activate()
567 handle->read_op = usb_read_linux_mmap; in usb_activate()
568 handle->cleanup_op = usb_cleanup_linux_mmap; in usb_activate()
577 handle->selectable_fd = handle->fd; in usb_activate()
589 if (usb_set_ring_size(handle, (int)sizeof(pcap_usb_header)) == -1) { in usb_activate()
591 close(handle->fd); in usb_activate()
594 handle->stats_op = usb_stats_linux_bin; in usb_activate()
595 handle->read_op = usb_read_linux_bin; in usb_activate()
604 handle->selectable_fd = handle->fd; in usb_activate()
608 handle->buffer = malloc(handle->bufsize); in usb_activate()
609 if (!handle->buffer) { in usb_activate()
610 pcapint_fmt_errmsg_for_errno(handle->errbuf, PCAP_ERRBUF_SIZE, in usb_activate()
612 close(handle->fd); in usb_activate()
619 usb_inject_linux(pcap_t *handle, const void *buf _U_, int size _U_) in usb_inject_linux() argument
621 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in usb_inject_linux()
638 usb_stats_linux_bin(pcap_t *handle, struct pcap_stat *stats) in usb_stats_linux_bin() argument
640 struct pcap_usb_linux *handlep = handle->priv; in usb_stats_linux_bin()
643 ret = ioctl(handle->fd, MON_IOCG_STATS, &st); in usb_stats_linux_bin()
646 pcapint_fmt_errmsg_for_errno(handle->errbuf, PCAP_ERRBUF_SIZE, in usb_stats_linux_bin()
647 errno, "Can't read stats from fd %d", handle->fd); in usb_stats_linux_bin()
662 usb_read_linux_bin(pcap_t *handle, int max_packets _U_, pcap_handler callback, u_char *user) in usb_read_linux_bin() argument
664 struct pcap_usb_linux *handlep = handle->priv; in usb_read_linux_bin()
668 u_int clen = handle->snapshot - sizeof(pcap_usb_header); in usb_read_linux_bin()
671 info.hdr = (pcap_usb_header*) handle->buffer; in usb_read_linux_bin()
672 info.data = (u_char *)handle->buffer + sizeof(pcap_usb_header); in usb_read_linux_bin()
677 ret = ioctl(handle->fd, MON_IOCX_GET, &info); in usb_read_linux_bin()
678 if (handle->break_loop) in usb_read_linux_bin()
680 handle->break_loop = 0; in usb_read_linux_bin()
689 pcapint_fmt_errmsg_for_errno(handle->errbuf, PCAP_ERRBUF_SIZE, in usb_read_linux_bin()
690 errno, "Can't read from fd %d", handle->fd); in usb_read_linux_bin()
735 if (handle->fcode.bf_insns == NULL || in usb_read_linux_bin()
736 pcapint_filter(handle->fcode.bf_insns, handle->buffer, in usb_read_linux_bin()
739 callback(user, &pkth, handle->buffer); in usb_read_linux_bin()
752 usb_read_linux_mmap(pcap_t *handle, int max_packets, pcap_handler callback, u_char *user) in usb_read_linux_mmap() argument
754 struct pcap_usb_linux *handlep = handle->priv; in usb_read_linux_mmap()
764 max_clen = handle->snapshot - sizeof(pcap_usb_header_mmapped); in usb_read_linux_mmap()
807 ret = ioctl(handle->fd, MON_IOCX_MFETCH, &fetch); in usb_read_linux_mmap()
808 if (handle->break_loop) in usb_read_linux_mmap()
810 handle->break_loop = 0; in usb_read_linux_mmap()
819 pcapint_fmt_errmsg_for_errno(handle->errbuf, in usb_read_linux_mmap()
821 handle->fd); in usb_read_linux_mmap()
923 if (handle->fcode.bf_insns == NULL || in usb_read_linux_mmap()
924 pcapint_filter(handle->fcode.bf_insns, (u_char*) hdr, in usb_read_linux_mmap()
942 if (ioctl(handle->fd, MON_IOCH_MFLUSH, nflush) == -1) { in usb_read_linux_mmap()
943 pcapint_fmt_errmsg_for_errno(handle->errbuf, PCAP_ERRBUF_SIZE, in usb_read_linux_mmap()
944 errno, "Can't mflush fd %d", handle->fd); in usb_read_linux_mmap()
951 usb_cleanup_linux_mmap(pcap_t* handle) in usb_cleanup_linux_mmap() argument
953 struct pcap_usb_linux *handlep = handle->priv; in usb_cleanup_linux_mmap()
960 pcapint_cleanup_live_common(handle); in usb_cleanup_linux_mmap()