summaryrefslogtreecommitdiff
path: root/dissector.h
blob: fc2cd5ad42b6b844b099bd5f117705b335953c49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
 * netsniff-ng - the packet sniffing beast
 * Copyright 2009 - 2013 Daniel Borkmann.
 * Subject to the GPL, version 2.
 */

#ifndef DISSECTOR_H
#define DISSECTOR_H

#include <stdlib.h>
#include <stdint.h>

#include "ring.h"
#include "tprintf.h"
#include "pcap_io.h"

#define PRINT_NORM		0
#define PRINT_LESS		1
#define PRINT_HEX		2
#define PRINT_ASCII		3
#define PRINT_HEX_ASCII		4
#define PRINT_NONE		5

static const char * const packet_types[256]={
	"<", /* Incoming */
	"B", /* Broadcast */
	"M", /* Multicast */
	"P", /* Promisc */
	">", /* Outgoing */
	"?", /* Unknown */
};

extern char *if_indextoname(unsigned ifindex, char *ifname);

static inline void show_frame_hdr(struct frame_map *hdr, int mode)
{
	char tmp[IFNAMSIZ];

	if (mode == PRINT_NONE)
		return;

	switch (mode) {
	case PRINT_LESS:
		tprintf("%s %s %u",
			packet_types[hdr->s_ll.sll_pkttype] ? : "?",
			if_indextoname(hdr->s_ll.sll_ifindex, tmp) ? : "?",
			hdr->tp_h.tp_len);
		break;
	default:
		tprintf("%s %s %u %us.%uns\n",
			packet_types[hdr->s_ll.sll_pkttype] ? : "?",
			if_indextoname(hdr->s_ll.sll_ifindex, tmp) ? : "?",
			hdr->tp_h.tp_len, hdr->tp_h.tp_sec,
			hdr->tp_h.tp_nsec);
		break;
	}
}

extern void dissector_init_all(int fnttype);
extern void dissector_entry_point(uint8_t *packet, size_t len, int linktype, int mode);
extern void dissector_cleanup_all(void);
extern int dissector_set_print_type(void *ptr, int type);

#endif /* DISSECTOR_H */
bfe62a (diff)
Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer type cleanups from Thomas Gleixner: "This series does a tree wide cleanup of types related to timers/timekeeping. - Get rid of cycles_t and use a plain u64. The type is not really helpful and caused more confusion than clarity - Get rid of the ktime union. The union has become useless as we use the scalar nanoseconds storage unconditionally now. The 32bit timespec alike storage got removed due to the Y2038 limitations some time ago. That leaves the odd union access around for no reason. Clean it up. Both changes have been done with coccinelle and a small amount of manual mopping up" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: ktime: Get rid of ktime_equal() ktime: Cleanup ktime_set() usage ktime: Get rid of the union clocksource: Use a plain u64 instead of cycle_t
Diffstat (limited to 'sound/firewire/dice/Makefile')