/* * netsniff-ng - the packet sniffing beast * Copyright 2009 - 2013 Daniel Borkmann. * Subject to the GPL, version 2. */ #include #include #include #include #include #include #include "pcap_io.h" #include "built_in.h" #include "xutils.h" #include "xio.h" #include "die.h" static ssize_t pcap_rw_write(int fd, pcap_pkthdr_t *phdr, enum pcap_type type, const uint8_t *packet, size_t len) { ssize_t ret, hdrsize = pcap_get_hdr_length(phdr, type), hdrlen = 0; ret = write_or_die(fd, &phdr->raw, hdrsize); if (unlikely(ret != hdrsize)) panic("Failed to write pkt header!\n"); hdrlen = pcap_get_length(phdr, type); if (unlikely(hdrlen != len)) return -EINVAL; ret = write_or_die(fd, packet, hdrlen); if (unlikely(ret != hdrlen)) panic("Failed to write pkt payload!\n"); return hdrsize + hdrlen; } static ssize_t pcap_rw_read(int fd, pcap_pkthdr_t *phdr, enum pcap_type type, uint8_t *packet, size_t len) { ssize_t ret, hdrsize = pcap_get_hdr_length(phdr, type), hdrlen = 0; ret = read_or_die(fd, &phdr->raw, hdrsize); if (unlikely(ret != hdrsize)) return -EIO; hdrlen = pcap_get_length(phdr, type); if (unlikely(hdrlen == 0 || hdrlen > len)) return -EINVAL; ret = read(fd, packet, hdrlen); if (unlikely(ret != hdrlen)) return -EIO; return hdrsize + hdrlen; } static void pcap_rw_init_once(void) { set_ioprio_rt(); } static void pcap_rw_fsync(int fd) { fdatasync(fd); } const struct pcap_file_ops pcap_rw_ops = { .init_once_pcap = pcap_rw_init_once, .pull_fhdr_pcap = pcap_generic_pull_fhdr, .push_fhdr_pcap = pcap_generic_push_fhdr, .read_pcap = pcap_rw_read, .write_pcap = pcap_rw_write, .fsync_pcap = pcap_rw_fsync, }; slogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Hovold <johan@hovoldconsulting.com>2016-08-03 14:09:35 +0200
committerGreg Kroah-Hartman <gregkh@google.com>2016-08-03 15:42:38 +0200
commit60793c9be9a140e2102a0f64a38d34e9b28a1357 (patch)
tree9bcad92a6003d8363460c69d46163da89a04567f /drivers/staging
parent54f34e1e4d065ea38f531341018b41c590d71861 (diff)
greybus: es2: rename USB vendor-request timeout define
Give the USB vendor-request timeout define a more descriptive name. Also drop the since-long obsolete comments about allowing "the SVC to do something" and "SVC messages go down our control pipe". Signed-off-by: Johan Hovold <johan@hovoldconsulting.com> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/greybus/es2.c35
1 files changed, 18 insertions, 17 deletions
diff --git a/drivers/staging/greybus/es2.c b/drivers/staging/greybus/es2.c