Class: UserfaultFD
- Inherits:
-
Object
- Object
- UserfaultFD
- Defined in:
- lib/userfaultfd.rb,
lib/userfaultfd.rb,
lib/userfaultfd/handler.rb,
lib/userfaultfd/version.rb,
sig/userfaultfd.rbs,
ext/userfaultfd/userfaultfd.c
Overview
Linux userfaultfd descriptor and capability API.
Defined Under Namespace
Classes: DeadlockError, Error, EventReader, Fault, ForkEvent, Handler, NativeHandler, Region, RemapEvent, RemoveEvent, UnmapEvent, UnsupportedError
Constant Summary collapse
- VERSION =
"1.0.0"
Class Attribute Summary collapse
-
.strict ⇒ Boolean
Returns the value of attribute strict.
Class Method Summary collapse
-
.features(*args) ⇒ Array<Symbol>
Features available from the running kernel.
-
.supported?(*args) ⇒ Boolean
Whether a permitted userfaultfd can be initialized.
Instance Method Summary collapse
- #backend ⇒ :device, :syscall
- #close ⇒ nil
- #closed? ⇒ Boolean
-
#enabled_features ⇒ Array<Symbol>
Features enabled for this descriptor.
- #features ⇒ Array[feature]
- #fileno ⇒ Integer
-
#initialize(*args) ⇒ UserfaultFD
constructor
A new instance of UserfaultFD.
- #read_events(*args) ⇒ Array[event]
-
#register(*args) ⇒ Integer
Ioctl bitmask supported for the range.
- #start_handler(mode: nil, io: nil, source: nil) {|arg0| ... } ⇒ Object
- #to_io ⇒ IO
- #unregister(region_object) ⇒ nil
- #writeprotect(*args) ⇒ nil
Constructor Details
#initialize(*args) ⇒ UserfaultFD
Returns a new instance of UserfaultFD.
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/userfaultfd.rb', line 25 class UserfaultFD class Error < StandardError; end class UnsupportedError < Error; end class DeadlockError < Error; end class << self attr_accessor :strict end self.strict = false end |
Class Attribute Details
.strict ⇒ Boolean
Returns the value of attribute strict.
31 32 33 |
# File 'lib/userfaultfd.rb', line 31 def strict @strict end |
Class Method Details
.features(*args) ⇒ Array<Symbol>
Returns features available from the running kernel.
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/userfaultfd.rb', line 25 class UserfaultFD class Error < StandardError; end class UnsupportedError < Error; end class DeadlockError < Error; end class << self attr_accessor :strict end self.strict = false end |
.supported?(*args) ⇒ Boolean
Returns whether a permitted userfaultfd can be initialized.
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/userfaultfd.rb', line 25 class UserfaultFD class Error < StandardError; end class UnsupportedError < Error; end class DeadlockError < Error; end class << self attr_accessor :strict end self.strict = false end |
Instance Method Details
#backend ⇒ :device, :syscall
613 |
# File 'ext/userfaultfd/userfaultfd.c', line 613
def backend: () -> (:device | :syscall)
|
#close ⇒ nil
626 |
# File 'ext/userfaultfd/userfaultfd.c', line 626
def close: () -> nil
|
#closed? ⇒ Boolean
639 |
# File 'ext/userfaultfd/userfaultfd.c', line 639
def closed?: () -> bool
|
#enabled_features ⇒ Array<Symbol>
Returns features enabled for this descriptor.
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/userfaultfd.rb', line 25 class UserfaultFD class Error < StandardError; end class UnsupportedError < Error; end class DeadlockError < Error; end class << self attr_accessor :strict end self.strict = false end |
#features ⇒ Array[feature]
589 |
# File 'ext/userfaultfd/userfaultfd.c', line 589
def features: () -> Array[feature]
|
#fileno ⇒ Integer
620 |
# File 'ext/userfaultfd/userfaultfd.c', line 620
def fileno: () -> Integer
|
#read_events(*args) ⇒ Array[event]
1088 |
# File 'ext/userfaultfd/userfaultfd.c', line 1088
def read_events: (?Integer max) -> Array[event]
|
#register(*args) ⇒ Integer
Returns ioctl bitmask supported for the range.
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/userfaultfd.rb', line 25 class UserfaultFD class Error < StandardError; end class UnsupportedError < Error; end class DeadlockError < Error; end class << self attr_accessor :strict end self.strict = false end |
#start_handler(mode:, io:, source:) ⇒ Handler #start_handler ⇒ Handler
45 46 47 |
# File 'lib/userfaultfd.rb', line 45 def start_handler(mode: nil, io: nil, source: nil, &block) Handler.new(self, mode: mode, io: io, source: source, &block) end |
#to_io ⇒ IO
41 42 43 |
# File 'lib/userfaultfd.rb', line 41 def to_io IO.for_fd(fileno, autoclose: false) end |
#unregister(region_object) ⇒ nil
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/userfaultfd.rb', line 25 class UserfaultFD class Error < StandardError; end class UnsupportedError < Error; end class DeadlockError < Error; end class << self attr_accessor :strict end self.strict = false end |
#writeprotect(*args) ⇒ nil
911 |
# File 'ext/userfaultfd/userfaultfd.c', line 911
def writeprotect: (Region, enabled: bool) -> nil
|