mirror of
https://github.com/restic/restic.git
synced 2024-08-20 03:13:22 +02:00
80 lines
815 B
Plaintext
80 lines
815 B
Plaintext
# This filter is compiled to all_instructions.bpf by the `bpf_asm`
|
|
# tool, which can be found in the linux kernel source tree under
|
|
# tools/net.
|
|
|
|
# Load immediate
|
|
ld #42
|
|
ldx #42
|
|
|
|
# Load scratch
|
|
ld M[3]
|
|
ldx M[3]
|
|
|
|
# Load absolute
|
|
ldb [42]
|
|
ldh [42]
|
|
ld [42]
|
|
|
|
# Load indirect
|
|
ldb [x + 42]
|
|
ldh [x + 42]
|
|
ld [x + 42]
|
|
|
|
# Load IPv4 header length
|
|
ldx 4*([42]&0xf)
|
|
|
|
# Run extension function
|
|
ld #len
|
|
ld #proto
|
|
ld #type
|
|
ld #rand
|
|
|
|
# Store scratch
|
|
st M[3]
|
|
stx M[3]
|
|
|
|
# A <op> constant
|
|
add #42
|
|
sub #42
|
|
mul #42
|
|
div #42
|
|
or #42
|
|
and #42
|
|
lsh #42
|
|
rsh #42
|
|
mod #42
|
|
xor #42
|
|
|
|
# A <op> X
|
|
add x
|
|
sub x
|
|
mul x
|
|
div x
|
|
or x
|
|
and x
|
|
lsh x
|
|
rsh x
|
|
mod x
|
|
xor x
|
|
|
|
# !A
|
|
neg
|
|
|
|
# Jumps
|
|
ja end
|
|
jeq #42,prev,end
|
|
jne #42,end
|
|
jlt #42,end
|
|
jle #42,end
|
|
jgt #42,prev,end
|
|
jge #42,prev,end
|
|
jset #42,prev,end
|
|
|
|
# Register transfers
|
|
tax
|
|
txa
|
|
|
|
# Returns
|
|
prev: ret a
|
|
end: ret #42
|