]> gitweb.factorcode.org Git - factor.git/blob - basis/unix/kqueue/kqueue.factor
use radix literals
[factor.git] / basis / unix / kqueue / kqueue.factor
1 ! Copyright (C) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.c-types alien.syntax system sequences vocabs.loader words
4 accessors vocabs ;
5 IN: unix.kqueue
6
7 << "unix.kqueue." os name>> append require >>
8
9 FUNCTION: int kqueue ( ) ;
10
11 ! actions
12 CONSTANT: EV_ADD     0x1 ! add event to kq (implies enable)
13 CONSTANT: EV_DELETE  0x2 ! delete event from kq
14 CONSTANT: EV_ENABLE  0x4 ! enable event
15 CONSTANT: EV_DISABLE 0x8 ! disable event (not reported)
16
17 ! flags
18 CONSTANT: EV_ONESHOT 0x10 ! only report one occurrence
19 CONSTANT: EV_CLEAR   0x20 ! clear event state after reporting
20
21 CONSTANT: EV_SYSFLAGS 0xf000 ! reserved by system
22 CONSTANT: EV_FLAG0    0x1000 ! filter-specific flag
23 CONSTANT: EV_FLAG1    0x2000 ! filter-specific flag
24
25 ! returned values
26 CONSTANT: EV_EOF          0x8000 ! EOF detected
27 CONSTANT: EV_ERROR        0x4000 ! error, data contains errno
28
29 ALIAS: EV_POLL EV_FLAG0
30 ALIAS: EV_OOBAND EV_FLAG1
31
32 CONSTANT: NOTE_LOWAT      0x00000001 ! low water mark
33
34 CONSTANT: NOTE_DELETE     0x00000001 ! vnode was removed
35 CONSTANT: NOTE_WRITE      0x00000002 ! data contents changed
36 CONSTANT: NOTE_EXTEND     0x00000004 ! size increased
37 CONSTANT: NOTE_ATTRIB     0x00000008 ! attributes changed
38 CONSTANT: NOTE_LINK       0x00000010 ! link count changed
39 CONSTANT: NOTE_RENAME     0x00000020 ! vnode was renamed
40 CONSTANT: NOTE_REVOKE     0x00000040 ! vnode access was revoked
41
42 CONSTANT: NOTE_EXIT       0x80000000 ! process exited
43 CONSTANT: NOTE_FORK       0x40000000 ! process forked
44 CONSTANT: NOTE_EXEC       0x20000000 ! process exec'd
45 CONSTANT: NOTE_PCTRLMASK  0xf0000000 ! mask for hint bits
46 CONSTANT: NOTE_PDATAMASK  0x000fffff ! mask for pid
47
48 CONSTANT: NOTE_SECONDS    0x00000001 ! data is seconds
49 CONSTANT: NOTE_USECONDS   0x00000002 ! data is microseconds
50 CONSTANT: NOTE_NSECONDS   0x00000004 ! data is nanoseconds
51 CONSTANT: NOTE_ABSOLUTE   0x00000008 ! absolute timeout
52
53 CONSTANT: NOTE_TRACK      0x00000001 ! follow across forks
54 CONSTANT: NOTE_TRACKERR   0x00000002 ! could not track child
55 CONSTANT: NOTE_CHILD      0x00000004 ! am a child process