! Copyright (C) 2008 Slava Pestov.\r
! See http://factorcode.org/license.txt for BSD license.\r
-USING: alien.c-types alien.syntax math math.bitwise classes.struct ;\r
+USING: alien.c-types alien.syntax math math.bitwise classes.struct\r
+literals ;\r
IN: unix.linux.inotify\r
\r
STRUCT: inotify-event\r
{ len uint }\r
{ name char[0] } ;\r
\r
-CONSTANT: IN_ACCESS HEX: 1 ! File was accessed\r
-CONSTANT: IN_MODIFY HEX: 2 ! File was modified\r
-CONSTANT: IN_ATTRIB HEX: 4 ! Metadata changed\r
-CONSTANT: IN_CLOSE_WRITE HEX: 8 ! Writtable file was closed\r
-CONSTANT: IN_CLOSE_NOWRITE HEX: 10 ! Unwrittable file closed\r
-CONSTANT: IN_OPEN HEX: 20 ! File was opened\r
-CONSTANT: IN_MOVED_FROM HEX: 40 ! File was moved from X\r
-CONSTANT: IN_MOVED_TO HEX: 80 ! File was moved to Y\r
-CONSTANT: IN_CREATE HEX: 100 ! Subfile was created\r
-CONSTANT: IN_DELETE HEX: 200 ! Subfile was deleted\r
-CONSTANT: IN_DELETE_SELF HEX: 400 ! Self was deleted\r
-CONSTANT: IN_MOVE_SELF HEX: 800 ! Self was moved\r
-\r
-CONSTANT: IN_UNMOUNT HEX: 2000 ! Backing fs was unmounted\r
-CONSTANT: IN_Q_OVERFLOW HEX: 4000 ! Event queued overflowed\r
-CONSTANT: IN_IGNORED HEX: 8000 ! File was ignored\r
-\r
-: IN_CLOSE ( -- n ) { IN_CLOSE_WRITE IN_CLOSE_NOWRITE } flags ; foldable ! close\r
-: IN_MOVE ( -- n ) { IN_MOVED_FROM IN_MOVED_TO } flags ; foldable ! moves\r
-\r
-CONSTANT: IN_ONLYDIR HEX: 1000000 ! only watch the path if it is a directory\r
-CONSTANT: IN_DONT_FOLLOW HEX: 2000000 ! don't follow a sym link\r
-CONSTANT: IN_MASK_ADD HEX: 20000000 ! add to the mask of an already existing watch\r
-CONSTANT: IN_ISDIR HEX: 40000000 ! event occurred against dir\r
-CONSTANT: IN_ONESHOT HEX: 80000000 ! only send event once\r
-\r
-: IN_CHANGE_EVENTS ( -- n )\r
- {\r
+CONSTANT: IN_ACCESS 0x1 ! File was accessed\r
+CONSTANT: IN_MODIFY 0x2 ! File was modified\r
+CONSTANT: IN_ATTRIB 0x4 ! Metadata changed\r
+CONSTANT: IN_CLOSE_WRITE 0x8 ! Writtable file was closed\r
+CONSTANT: IN_CLOSE_NOWRITE 0x10 ! Unwrittable file closed\r
+CONSTANT: IN_OPEN 0x20 ! File was opened\r
+CONSTANT: IN_MOVED_FROM 0x40 ! File was moved from X\r
+CONSTANT: IN_MOVED_TO 0x80 ! File was moved to Y\r
+CONSTANT: IN_CREATE 0x100 ! Subfile was created\r
+CONSTANT: IN_DELETE 0x200 ! Subfile was deleted\r
+CONSTANT: IN_DELETE_SELF 0x400 ! Self was deleted\r
+CONSTANT: IN_MOVE_SELF 0x800 ! Self was moved\r
+\r
+CONSTANT: IN_UNMOUNT 0x2000 ! Backing fs was unmounted\r
+CONSTANT: IN_Q_OVERFLOW 0x4000 ! Event queued overflowed\r
+CONSTANT: IN_IGNORED 0x8000 ! File was ignored\r
+\r
+CONSTANT: IN_CLOSE flags{ IN_CLOSE_WRITE IN_CLOSE_NOWRITE }\r
+CONSTANT: IN_MOVE flags{ IN_MOVED_FROM IN_MOVED_TO }\r
+\r
+CONSTANT: IN_ONLYDIR 0x1000000 ! only watch the path if it is a directory\r
+CONSTANT: IN_DONT_FOLLOW 0x2000000 ! don't follow a sym link\r
+CONSTANT: IN_MASK_ADD 0x20000000 ! add to the mask of an already existing watch\r
+CONSTANT: IN_ISDIR 0x40000000 ! event occurred against dir\r
+CONSTANT: IN_ONESHOT 0x80000000 ! only send event once\r
+\r
+CONSTANT: IN_CHANGE_EVENTS \r
+ flags{\r
IN_MODIFY IN_ATTRIB IN_MOVED_FROM\r
IN_MOVED_TO IN_DELETE IN_CREATE IN_DELETE_SELF\r
IN_MOVE_SELF\r
- } flags ; foldable\r
+ }\r
\r
-: IN_ALL_EVENTS ( -- n )\r
- {\r
+CONSTANT: IN_ALL_EVENTS\r
+ flags{\r
IN_ACCESS IN_MODIFY IN_ATTRIB IN_CLOSE_WRITE\r
IN_CLOSE_NOWRITE IN_OPEN IN_MOVED_FROM\r
IN_MOVED_TO IN_DELETE IN_CREATE IN_DELETE_SELF\r
IN_MOVE_SELF\r
- } flags ; foldable\r
+ }\r
\r
FUNCTION: int inotify_init ( ) ;\r
FUNCTION: int inotify_add_watch ( int fd, c-string name, uint mask ) ;\r