You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
3.8 KiB
92 lines
3.8 KiB
#ifndef FSM_DARWIN_GCC_H |
|
#define FSM_DARWIN_GCC_H |
|
|
|
#ifndef __clang__ |
|
/* |
|
* It is possible to #include CoreFoundation/CoreFoundation.h when compiling |
|
* with clang, but not with GCC as of time of writing. |
|
* |
|
* See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93082 for details. |
|
*/ |
|
typedef unsigned int FSEventStreamCreateFlags; |
|
#define kFSEventStreamEventFlagNone 0x00000000 |
|
#define kFSEventStreamEventFlagMustScanSubDirs 0x00000001 |
|
#define kFSEventStreamEventFlagUserDropped 0x00000002 |
|
#define kFSEventStreamEventFlagKernelDropped 0x00000004 |
|
#define kFSEventStreamEventFlagEventIdsWrapped 0x00000008 |
|
#define kFSEventStreamEventFlagHistoryDone 0x00000010 |
|
#define kFSEventStreamEventFlagRootChanged 0x00000020 |
|
#define kFSEventStreamEventFlagMount 0x00000040 |
|
#define kFSEventStreamEventFlagUnmount 0x00000080 |
|
#define kFSEventStreamEventFlagItemCreated 0x00000100 |
|
#define kFSEventStreamEventFlagItemRemoved 0x00000200 |
|
#define kFSEventStreamEventFlagItemInodeMetaMod 0x00000400 |
|
#define kFSEventStreamEventFlagItemRenamed 0x00000800 |
|
#define kFSEventStreamEventFlagItemModified 0x00001000 |
|
#define kFSEventStreamEventFlagItemFinderInfoMod 0x00002000 |
|
#define kFSEventStreamEventFlagItemChangeOwner 0x00004000 |
|
#define kFSEventStreamEventFlagItemXattrMod 0x00008000 |
|
#define kFSEventStreamEventFlagItemIsFile 0x00010000 |
|
#define kFSEventStreamEventFlagItemIsDir 0x00020000 |
|
#define kFSEventStreamEventFlagItemIsSymlink 0x00040000 |
|
#define kFSEventStreamEventFlagOwnEvent 0x00080000 |
|
#define kFSEventStreamEventFlagItemIsHardlink 0x00100000 |
|
#define kFSEventStreamEventFlagItemIsLastHardlink 0x00200000 |
|
#define kFSEventStreamEventFlagItemCloned 0x00400000 |
|
|
|
typedef struct __FSEventStream *FSEventStreamRef; |
|
typedef const FSEventStreamRef ConstFSEventStreamRef; |
|
|
|
typedef unsigned int CFStringEncoding; |
|
#define kCFStringEncodingUTF8 0x08000100 |
|
|
|
typedef const struct __CFString *CFStringRef; |
|
typedef const struct __CFArray *CFArrayRef; |
|
typedef const struct __CFRunLoop *CFRunLoopRef; |
|
|
|
struct FSEventStreamContext { |
|
long long version; |
|
void *cb_data, *retain, *release, *copy_description; |
|
}; |
|
|
|
typedef struct FSEventStreamContext FSEventStreamContext; |
|
typedef unsigned int FSEventStreamEventFlags; |
|
#define kFSEventStreamCreateFlagNoDefer 0x02 |
|
#define kFSEventStreamCreateFlagWatchRoot 0x04 |
|
#define kFSEventStreamCreateFlagFileEvents 0x10 |
|
|
|
typedef unsigned long long FSEventStreamEventId; |
|
#define kFSEventStreamEventIdSinceNow 0xFFFFFFFFFFFFFFFFULL |
|
|
|
typedef void (*FSEventStreamCallback)(ConstFSEventStreamRef streamRef, |
|
void *context, |
|
__SIZE_TYPE__ num_of_events, |
|
void *event_paths, |
|
const FSEventStreamEventFlags event_flags[], |
|
const FSEventStreamEventId event_ids[]); |
|
typedef double CFTimeInterval; |
|
FSEventStreamRef FSEventStreamCreate(void *allocator, |
|
FSEventStreamCallback callback, |
|
FSEventStreamContext *context, |
|
CFArrayRef paths_to_watch, |
|
FSEventStreamEventId since_when, |
|
CFTimeInterval latency, |
|
FSEventStreamCreateFlags flags); |
|
CFStringRef CFStringCreateWithCString(void *allocator, const char *string, |
|
CFStringEncoding encoding); |
|
CFArrayRef CFArrayCreate(void *allocator, const void **items, long long count, |
|
void *callbacks); |
|
void CFRunLoopRun(void); |
|
void CFRunLoopStop(CFRunLoopRef run_loop); |
|
CFRunLoopRef CFRunLoopGetCurrent(void); |
|
extern CFStringRef kCFRunLoopDefaultMode; |
|
void FSEventStreamScheduleWithRunLoop(FSEventStreamRef stream, |
|
CFRunLoopRef run_loop, |
|
CFStringRef run_loop_mode); |
|
unsigned char FSEventStreamStart(FSEventStreamRef stream); |
|
void FSEventStreamStop(FSEventStreamRef stream); |
|
void FSEventStreamInvalidate(FSEventStreamRef stream); |
|
void FSEventStreamRelease(FSEventStreamRef stream); |
|
|
|
#endif /* !clang */ |
|
#endif /* FSM_DARWIN_GCC_H */
|
|
|