Module: Seccomp::Notify::Ioctl

Defined in:
lib/seccomp/notify/ioctl.rb

Constant Summary collapse

NONE =
0
WRITE =
1
READ =
2
MAGIC =
"!".ord
NOTIF_RECV =
ioc(READ | WRITE, MAGIC, 0, 80)
NOTIF_SEND =
ioc(READ | WRITE, MAGIC, 1, 24)
NOTIF_ID_VALID =
ioc(WRITE, MAGIC, 2, 8)
NOTIF_ID_VALID_OLD =
ioc(READ, MAGIC, 2, 8)
NOTIF_ADDFD =
ioc(WRITE, MAGIC, 3, 24)
NOTIF_SET_FLAGS =
ioc(WRITE, MAGIC, 4, 8)

Class Method Summary collapse

Class Method Details

.call(io, request, buffer) ⇒ Object

Raises:

  • (SystemCallError)


26
27
28
29
30
31
# File 'lib/seccomp/notify/ioctl.rb', line 26

def call(io, request, buffer)
  result = Libc.ioctl(io.fileno, request, buffer)
  return result unless result.negative?

  raise SystemCallError.new("ioctl(0x#{request.to_s(16)})", Fiddle.last_error)
end

.ioc(dir, type, nr, size) ⇒ Object



15
16
17
# File 'lib/seccomp/notify/ioctl.rb', line 15

def ioc(dir, type, nr, size)
  (dir << 30) | (size << 16) | (type << 8) | nr
end