summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/rb-inotify-0.11.1/lib/rb-inotify/native.rb
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/bundle/ruby/3.4.0/gems/rb-inotify-0.11.1/lib/rb-inotify/native.rb')
-rw-r--r--vendor/bundle/ruby/3.4.0/gems/rb-inotify-0.11.1/lib/rb-inotify/native.rb33
1 files changed, 33 insertions, 0 deletions
diff --git a/vendor/bundle/ruby/3.4.0/gems/rb-inotify-0.11.1/lib/rb-inotify/native.rb b/vendor/bundle/ruby/3.4.0/gems/rb-inotify-0.11.1/lib/rb-inotify/native.rb
new file mode 100644
index 0000000..6da36eb
--- /dev/null
+++ b/vendor/bundle/ruby/3.4.0/gems/rb-inotify-0.11.1/lib/rb-inotify/native.rb
@@ -0,0 +1,33 @@
+require 'ffi'
+
+module INotify
+ # This module contains the low-level foreign-function interface code
+ # for dealing with the inotify C APIs.
+ # It's an implementation detail, and not meant for users to deal with.
+ #
+ # @private
+ module Native
+ extend FFI::Library
+ ffi_lib FFI::Library::LIBC
+ begin
+ ffi_lib 'inotify'
+ rescue LoadError
+ end
+
+ # The C struct describing an inotify event.
+ #
+ # @private
+ class Event < FFI::Struct
+ layout(
+ :wd, :int,
+ :mask, :uint32,
+ :cookie, :uint32,
+ :len, :uint32)
+ end
+
+ attach_function :inotify_init, [], :int
+ attach_function :inotify_add_watch, [:int, :string, :uint32], :int
+ attach_function :inotify_rm_watch, [:int, :uint32], :int
+ attach_function :fpathconf, [:int, :int], :long
+ end
+end