{-# OPTIONS_GHC -optc-D__USE_GNU #-} {-# LINE 1 "Foundation/System/Bindings/Linux.hsc" #-} ----------------------------------------------------------------------------- -- | -- Module : Foundation.System.Bindings.Linux -- Copyright : (c) Vincent Hanquez 2014-2017 -- License : BSD-style -- -- Maintainer : Vincent Hanquez -- Stability : provisional -- Portability : non-portable (requires Linux) -- -- Functions defined only for linux -- ----------------------------------------------------------------------------- {-# OPTIONS_HADDOCK hide #-} module Foundation.System.Bindings.Linux where import Basement.Compat.Base import Basement.Compat.C.Types import Foundation.System.Bindings.PosixDef type CInotifyFlags = CInt type CInotifyMask = CInt type CWatchDescriptor = CInt sysLinux_O_TMPFILE :: COpenFlags {-# LINE 35 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_O_TMPFILE = (4259840) {-# LINE 36 "Foundation/System/Bindings/Linux.hsc" #-} {-# LINE 39 "Foundation/System/Bindings/Linux.hsc" #-} {-# LINE 41 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_NONBLOCK :: CInotifyFlags sysLinux_IN_NONBLOCK = (2048) {-# LINE 43 "Foundation/System/Bindings/Linux.hsc" #-} {-# LINE 44 "Foundation/System/Bindings/Linux.hsc" #-} {-# LINE 46 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_CLOEXEC :: CInotifyFlags sysLinux_IN_CLOEXEC = (524288) {-# LINE 48 "Foundation/System/Bindings/Linux.hsc" #-} {-# LINE 49 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_ACCESS , sysLinux_IN_ATTRIB , sysLinux_IN_CLOSE_WRITE , sysLinux_IN_CLOSE_NOWRITE , sysLinux_IN_CREATE , sysLinux_IN_DELETE , sysLinux_IN_DELETE_SELF , sysLinux_IN_MODIFY , sysLinux_IN_MOVE_SELF , sysLinux_IN_MOVED_FROM , sysLinux_IN_MOVED_TO :: CInotifyMask sysLinux_IN_ACCESS = (1) {-# LINE 62 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_ATTRIB = (4) {-# LINE 63 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_CLOSE_WRITE = (8) {-# LINE 64 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_CLOSE_NOWRITE = (16) {-# LINE 65 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_CREATE = (256) {-# LINE 66 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_DELETE = (512) {-# LINE 67 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_DELETE_SELF = (1024) {-# LINE 68 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_MODIFY = (2) {-# LINE 69 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_MOVE_SELF = (2048) {-# LINE 70 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_MOVED_FROM = (64) {-# LINE 71 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_MOVED_TO = (128) {-# LINE 72 "Foundation/System/Bindings/Linux.hsc" #-} -- extra mask at add_watch time sysLinux_IN_OPEN , sysLinux_IN_DONT_FOLLOW , sysLinux_IN_MASK_ADD , sysLinux_IN_ONESHOT , sysLinux_IN_ONLYDIR :: CInotifyMask sysLinux_IN_OPEN = (32) {-# LINE 80 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_DONT_FOLLOW = (33554432) {-# LINE 81 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_MASK_ADD = (536870912) {-# LINE 82 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_ONESHOT = (2147483648) {-# LINE 83 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_ONLYDIR = (16777216) {-# LINE 84 "Foundation/System/Bindings/Linux.hsc" #-} {-# LINE 86 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_EXCL_UNLINK :: CInotifyMask sysLinux_IN_EXCL_UNLINK = (67108864) {-# LINE 88 "Foundation/System/Bindings/Linux.hsc" #-} {-# LINE 89 "Foundation/System/Bindings/Linux.hsc" #-} -- only found in mask sysLinux_IN_IGNORED , sysLinux_IN_ISDIR , sysLinux_IN_Q_OVERFLOW , sysLinux_IN_UNMOUNT :: CInotifyMask sysLinux_IN_IGNORED = (32768) {-# LINE 96 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_ISDIR = (1073741824) {-# LINE 97 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_Q_OVERFLOW = (16384) {-# LINE 98 "Foundation/System/Bindings/Linux.hsc" #-} sysLinux_IN_UNMOUNT = (8192) {-# LINE 99 "Foundation/System/Bindings/Linux.hsc" #-} cinotifyEventSize :: CSize cinotifyEventSize = 16 foreign import ccall unsafe "inotify_init1" sysLinuxInotifyInit :: CInotifyFlags -> IO CFd foreign import ccall unsafe "inotify_add_watch" sysLinuxInotifyAddWatch :: CFd -> Ptr CChar -> CInotifyMask -> IO CWatchDescriptor foreign import ccall unsafe "inotify_rm_watch" sysLinuxInotifyRmWatch :: CFd -> CWatchDescriptor -> IO Int