Module: Seccomp::Syscall
- Defined in:
- lib/seccomp/syscall.rb
Overview
Syscall name and number resolution.
Class Method Summary collapse
-
.name(number, arch: Arch.native) ⇒ String?
Syscall name.
-
.number(value, arch: nil, rewrite: false) ⇒ Integer
Syscall number.
Class Method Details
.name(number, arch: Arch.native) ⇒ String?
Returns syscall name.
38 39 40 41 42 |
# File 'lib/seccomp/syscall.rb', line 38 def name(number, arch: Arch.native) raise ArgumentError, "syscall number must be an Integer" unless number.is_a?(Integer) LowLevel.syscall_resolve_num_arch(Arch.resolve(arch), number) end |
.number(value, arch: nil, rewrite: false) ⇒ Integer
Returns syscall number.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/seccomp/syscall.rb', line 14 def number(value, arch: nil, rewrite: false) return value if value.is_a?(Integer) name = value.to_s result = if arch token = Arch.resolve(arch) if rewrite LowLevel.syscall_resolve_name_rewrite(token, name) else LowLevel.syscall_resolve_name_arch(token, name) end else LowLevel.syscall_resolve_name(name) end return result unless result == LowLevel::NR_SCMP_ERROR raise UnknownSyscallError, "unknown syscall: #{value.inspect}" end |