#ifndef BPF_INSNS_H
#define BPF_INSNS_H

#ifndef BPF_MAXINSNS
# define BPF_MAXINSNS	4096
#endif

#define BPF_CLASS(code) ((code) & 0x07)
#define	BPF_LD		0x00
#define	BPF_LDX		0x01
#define	BPF_ST		0x02
#define	BPF_STX		0x03
#define	BPF_ALU		0x04
#define	BPF_JMP		0x05
#define	BPF_RET		0x06
#define	BPF_MISC	0x07

#define BPF_SIZE(code)	((code) & 0x18)
#define	BPF_W		0x00
#define	BPF_H		0x08
#define	BPF_B		0x10

#define BPF_MODE(code)	((code) & 0xe0)
#define	BPF_IMM 	0x00
#define	BPF_ABS		0x20
#define	BPF_IND		0x40
#define	BPF_MEM		0x60
#define	BPF_LEN		0x80
#define	BPF_MSH		0xa0

#define BPF_OP(code)	((code) & 0xf0)
#define	BPF_ADD		0x00
#define	BPF_SUB		0x10
#define	BPF_MUL		0x20
#define	BPF_DIV		0x30
#define	BPF_OR		0x40
#define	BPF_AND		0x50
#define	BPF_LSH		0x60
#define	BPF_RSH		0x70
#define	BPF_NEG		0x80
#define BPF_MOD		0x90
#define	BPF_XOR		0xa0

#define	BPF_JA		0x00
#define	BPF_JEQ		0x10
#define	BPF_JGT		0x20
#define	BPF_JGE		0x30
#define	BPF_JSET	0x40

#define BPF_SRC(code)	((code) & 0x08)
#define	BPF_K		0x00
#define	BPF_X		0x08

/* ret - BPF_K and BPF_X also apply */
#define BPF_RVAL(code)	((code) & 0x18)
#define	BPF_A		0x10

#define BPF_MISCOP(code) ((code) & 0xf8)
#define	BPF_TAX		0x00
#define	BPF_TXA		0x80

#endif /* BPF_INSNS_H */
tion value='packet-rx-pump-back'>packet-rx-pump-back</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>net-next plumbings</td><td class='sub right'>Tobias Klauser</td></tr></table>
<table class='tabs'><tr><td>
<a href='/cgit.cgi/linux/net-next.git/?h=nds-private-remove'>summary</a><a href='/cgit.cgi/linux/net-next.git/refs/?h=nds-private-remove&amp;id=dd86e373e09fb16b83e8adf5c48c421a4ca76468'>refs</a><a class='active' href='/cgit.cgi/linux/net-next.git/log/kernel/bpf/Makefile?h=nds-private-remove'>log</a><a href='/cgit.cgi/linux/net-next.git/tree/kernel/bpf/Makefile?h=nds-private-remove&amp;id=dd86e373e09fb16b83e8adf5c48c421a4ca76468'>tree</a><a href='/cgit.cgi/linux/net-next.git/commit/kernel/bpf/Makefile?h=nds-private-remove&amp;id=dd86e373e09fb16b83e8adf5c48c421a4ca76468'>commit</a><a href='/cgit.cgi/linux/net-next.git/diff/kernel/bpf/Makefile?h=nds-private-remove&amp;id=dd86e373e09fb16b83e8adf5c48c421a4ca76468'>diff</a></td><td class='form'><form class='right' method='get' action='/cgit.cgi/linux/net-next.git/log/kernel/bpf/Makefile'>
<input type='hidden' name='h' value='nds-private-remove'/><input type='hidden' name='id' value='dd86e373e09fb16b83e8adf5c48c421a4ca76468'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/cgit.cgi/linux/net-next.git/log/?h=nds-private-remove&amp;id=dd86e373e09fb16b83e8adf5c48c421a4ca76468'>root</a>/<a href='/cgit.cgi/linux/net-next.git/log/kernel?h=nds-private-remove&amp;id=dd86e373e09fb16b83e8adf5c48c421a4ca76468'>kernel</a>/<a href='/cgit.cgi/linux/net-next.git/log/kernel/bpf?h=nds-private-remove&amp;id=dd86e373e09fb16b83e8adf5c48c421a4ca76468'>bpf</a>/<a href='/cgit.cgi/linux/net-next.git/log/kernel/bpf/Makefile?h=nds-private-remove&amp;id=dd86e373e09fb16b83e8adf5c48c421a4ca76468'>Makefile</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/cgit.cgi/linux/net-next.git/log/kernel/bpf/Makefile?h=nds-private-remove&amp;id=dd86e373e09fb16b83e8adf5c48c421a4ca76468&amp;showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr>