Class: SeccompTools::Instruction::Base

Inherits:
Object
  • Object
show all
Includes:
Const::BPF
Defined in:
lib/seccomp-tools/instruction/base.rb

Overview

Base class of instructions.

Direct Known Subclasses

ALU, JMP, LD, MISC, RET

Constant Summary

Constants included from Const::BPF

Const::BPF::ACTION, Const::BPF::COMMAND, Const::BPF::JMP, Const::BPF::MISCOP, Const::BPF::MODE, Const::BPF::OP, Const::BPF::PR_SET_SECCOMP, Const::BPF::SECCOMP_MODE_FILTER, Const::BPF::SECCOMP_RET_ACTION_FULL, Const::BPF::SECCOMP_RET_DATA, Const::BPF::SECCOMP_SET_MODE_FILTER, Const::BPF::SIZEOF_SECCOMP_DATA, Const::BPF::SRC

Instance Method Summary collapse

Constructor Details

#initialize(bpf) ⇒ Base

Instantiate a SeccompTools::Instruction::Base object.

Parameters:



15
16
17
# File 'lib/seccomp-tools/instruction/base.rb', line 15

def initialize(bpf)
  @bpf = bpf
end

Instance Method Details

#branch(_context) ⇒ Array<(Integer, Context)>

Returns the possible branches after executing this instruction.

Examples:

# For ALU, LD, LDX, ST, STX
inst.line #=> 10
inst.branch(ctx)
#=> [[11, ctx]]

Parameters:

  • _context (Context)

    Current context.

Returns:

  • (Array<(Integer, Context)>)

Raises:

  • (NotImplmentedError)


36
37
# File 'lib/seccomp-tools/instruction/base.rb', line 36

def branch(_context); raise NotImplmentedError
end

#invalid(msg = 'unknown') ⇒ Object

Helper to raise exception with message.

Parameters:

  • msg (String) (defaults to: 'unknown')

    Error message.

Raises:

  • (ArgumentError)


23
24
25
# File 'lib/seccomp-tools/instruction/base.rb', line 23

def invalid(msg = 'unknown')
  raise ArgumentError, "Line #{line} is invalid: #{msg}"
end

#symbolizeArray<Symbol, Integer>

Return tokens stand for this instruction.

Examples:

ret_a.symbolize #=> [:ret, :a]
ret_k.symbolize #=> [:ret, 0x7fff0000]
jeq.symbolize #=> [:cmp, :==, 0, 0, 1]

Returns:

  • (Array<Symbol, Integer>)

Raises:

  • (NotImplmentedError)


45
46
# File 'lib/seccomp-tools/instruction/base.rb', line 45

def symbolize; raise NotImplmentedError
end