#ifndef __DISPATCH_LEGACY__
#define __DISPATCH_LEGACY__
#ifndef __DISPATCH_INDIRECT__
#error "Please #include <dispatch/dispatch.h> instead of this file directly."
#include <dispatch/base.h> // for HeaderDoc
#endif
#include <mach/mach_types.h>
#define DISPATCH_DEPRECATED __attribute__((deprecated))
#define DISPATCH_PUBLIC_API __attribute__((visibility("default")))
typedef struct dispatch_item_s *dispatch_item_t;
struct dispatch_item_s {
void * di_objc_isa;
struct dispatch_item_s *volatile di_next;
dispatch_queue_t di_cback_q;
uint32_t di_flags;
semaphore_t di_semaphore;
void * di_work_func;
void * di_work_ctxt;
void * di_cback_func;
void * di_cback_ctxt;
void * di_ctxt;
};
typedef struct dispatch_source_s *dispatch_event_t;
#ifdef __BLOCKS__
typedef void (^dispatch_legacy_block_t)(dispatch_item_t);
typedef void (^dispatch_queue_deletion_block_t)(dispatch_queue_t queue);
typedef void (^dispatch_source_deletion_t)(dispatch_source_t source);
typedef void (^dispatch_event_callback_t)(dispatch_event_t event);
typedef void (^dispatch_source_handler_t)(dispatch_source_t source);
typedef dispatch_source_handler_t dispatch_event_handler_t;
typedef void (^dispatch_source_finalizer_t)(dispatch_source_t source);
#endif
typedef void (*dispatch_source_handler_function_t)(void *, dispatch_source_t);
typedef void (*dispatch_source_finalizer_function_t)(void *, dispatch_source_t);
typedef dispatch_source_handler_function_t dispatch_event_handler_function_t;
DISPATCH_DECL(dispatch_source_attr);
#define DISPATCH_SOURCE_CREATE_SUSPENDED ((dispatch_source_attr_t)~0ul)
#ifdef __BLOCKS__
typedef void (^dispatch_queue_finalizer_t)(dispatch_queue_t queue);
#endif
typedef void (*dispatch_queue_finalizer_function_t)(void *, dispatch_queue_t);
__BEGIN_DECLS
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_WARN_RESULT DISPATCH_NOTHROW
dispatch_queue_attr_t
dispatch_queue_attr_create(void);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL1 DISPATCH_NOTHROW
void
dispatch_queue_attr_set_priority(dispatch_queue_attr_t attr, int priority);
#ifdef __BLOCKS__
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL1 DISPATCH_NOTHROW
long
dispatch_queue_attr_set_finalizer(
dispatch_queue_attr_t attr,
dispatch_queue_finalizer_t finalizer);
#endif
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL1 DISPATCH_NOTHROW
void
dispatch_queue_attr_set_finalizer_f(dispatch_queue_attr_t attr, void *context, dispatch_queue_finalizer_function_t finalizer);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_PURE DISPATCH_WARN_RESULT DISPATCH_NOTHROW
dispatch_queue_t
dispatch_get_concurrent_queue(long priority);
DISPATCH_PUBLIC_API void
dispatch_queue_attr_set_flags(dispatch_queue_attr_t attr, uint64_t flags);
#ifdef __BLOCKS__
DISPATCH_PUBLIC_API DISPATCH_NONNULL1 DISPATCH_NONNULL2 DISPATCH_DEPRECATED
dispatch_item_t
dispatch_call(dispatch_queue_t, dispatch_legacy_block_t work, dispatch_legacy_block_t completion)
__asm__("_dispatch_call2");
#endif
DISPATCH_PUBLIC_API DISPATCH_PURE DISPATCH_WARN_RESULT DISPATCH_DEPRECATED
dispatch_queue_t
dispatch_queue_get_current(void);
DISPATCH_PUBLIC_API DISPATCH_NONNULL_ALL DISPATCH_DEPRECATED
void
dispatch_queue_retain(dispatch_queue_t);
DISPATCH_PUBLIC_API DISPATCH_NONNULL_ALL DISPATCH_DEPRECATED
void
dispatch_queue_release(dispatch_queue_t);
DISPATCH_PUBLIC_API DISPATCH_NONNULL_ALL DISPATCH_DEPRECATED
void
dispatch_queue_resume(dispatch_queue_t);
DISPATCH_PUBLIC_API DISPATCH_NONNULL_ALL DISPATCH_DEPRECATED
void
dispatch_source_release(dispatch_source_t);
DISPATCH_PUBLIC_API DISPATCH_NONNULL_ALL DISPATCH_DEPRECATED
void
dispatch_source_suspend(dispatch_source_t);
DISPATCH_PUBLIC_API DISPATCH_NONNULL_ALL DISPATCH_DEPRECATED
void
dispatch_source_resume(dispatch_source_t);
DISPATCH_PUBLIC_API DISPATCH_NONNULL_ALL DISPATCH_DEPRECATED
void
dispatch_queue_attr_release(dispatch_queue_attr_t);
DISPATCH_PUBLIC_API DISPATCH_NONNULL_ALL DISPATCH_DEPRECATED
void
dispatch_source_attr_release(dispatch_source_attr_t);
DISPATCH_PUBLIC_API DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_DEPRECATED
sigset_t
dispatch_event_get_signals(dispatch_event_t event);
DISPATCH_PUBLIC_API DISPATCH_NONNULL_ALL void *
dispatch_queue_get_context(dispatch_queue_t queue);
DISPATCH_PUBLIC_API DISPATCH_NONNULL1 void
dispatch_queue_set_context(dispatch_queue_t queue, void *context);
DISPATCH_PUBLIC_API DISPATCH_NONNULL_ALL void *
dispatch_source_get_context(dispatch_source_t source);
DISPATCH_PUBLIC_API DISPATCH_NONNULL1 void
dispatch_source_set_context(dispatch_source_t source, void * context);
DISPATCH_PUBLIC_API DISPATCH_NONNULL_ALL DISPATCH_DEPRECATED
void
dispatch_source_custom_trigger(dispatch_source_t ds);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
void
dispatch_cancel(dispatch_source_t);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
long
dispatch_testcancel(dispatch_source_t);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL1 DISPATCH_NOTHROW
long
dispatch_source_timer_set_time(dispatch_source_t ds,
uint64_t nanoseconds,
uint64_t leeway);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
void
dispatch_source_trigger(dispatch_source_t source, unsigned long value);
enum {
DISPATCH_ERROR_DOMAIN_NO_ERROR = 0,
DISPATCH_ERROR_DOMAIN_POSIX = 1,
DISPATCH_ERROR_DOMAIN_MACH = 2,
};
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL1 DISPATCH_WARN_RESULT DISPATCH_NOTHROW
long
dispatch_source_get_error(dispatch_source_t source, long* error);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_NOTHROW
mach_port_t
dispatch_source_get_machport(dispatch_source_t source);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_NOTHROW
pid_t
dispatch_source_get_descriptor(dispatch_source_t source);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_NOTHROW
pid_t
dispatch_source_get_pid(dispatch_source_t source);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_NOTHROW
uint64_t
dispatch_source_get_flags(dispatch_source_t source);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_NOTHROW
dispatch_source_t
dispatch_event_get_source(dispatch_event_t event);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL1 DISPATCH_WARN_RESULT DISPATCH_NOTHROW
long
dispatch_event_get_error(dispatch_event_t event, long* error);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_NOTHROW
uint64_t
dispatch_event_get_nanoseconds(dispatch_event_t event);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_NOTHROW
long
dispatch_event_get_signal(dispatch_event_t event);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_NOTHROW
uint64_t
dispatch_event_get_flags(dispatch_event_t event);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_NOTHROW
size_t
dispatch_event_get_bytes_available(dispatch_event_t event);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
unsigned long
dispatch_event_get_count(dispatch_event_t event);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_WARN_RESULT DISPATCH_NOTHROW
dispatch_source_attr_t
dispatch_source_attr_create(void);
#if defined(__BLOCKS__)
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NOTHROW
dispatch_source_finalizer_t
dispatch_source_attr_get_finalizer(dispatch_source_attr_t attr);
#endif
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_WARN_RESULT DISPATCH_NOTHROW
dispatch_source_attr_t
dispatch_source_attr_copy(dispatch_source_attr_t proto);
#ifdef __BLOCKS__
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL1 DISPATCH_NOTHROW
long
dispatch_source_attr_set_finalizer(
dispatch_source_attr_t attr,
dispatch_source_finalizer_t finalizer);
#endif
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL1 DISPATCH_NOTHROW
void
dispatch_source_attr_set_finalizer_f(
dispatch_source_attr_t attr,
void *context,
dispatch_source_finalizer_function_t finalizer);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_NONNULL1 DISPATCH_NOTHROW
void
dispatch_source_attr_set_context(
dispatch_source_attr_t attr,
void *context);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL4 DISPATCH_NONNULL5 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_mig_create(
mach_port_t mport,
size_t max_size,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
dispatch_mig_callback_t mig_callback);
enum {
DISPATCH_TIMER_WALL_CLOCK = 0x4,
};
enum {
DISPATCH_TIMER_INTERVAL = 0x0,
DISPATCH_TIMER_ONESHOT = 0x1,
DISPATCH_TIMER_ABSOLUTE = 0x3,
};
#ifdef __BLOCKS__
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL5 DISPATCH_NONNULL6 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_timer_create(
uint64_t flags,
uint64_t nanoseconds,
uint64_t leeway,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
dispatch_source_handler_t handler);
#endif
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL5 DISPATCH_NONNULL7 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_timer_create_f(
uint64_t flags,
uint64_t nanoseconds,
uint64_t leeway,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
void *h_context,
dispatch_source_handler_function_t handler);
#ifdef __BLOCKS__
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_signal_create(
unsigned long signo,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
dispatch_source_handler_t handler);
#endif
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL3 DISPATCH_NONNULL5 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_signal_create_f(
unsigned long sig,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
void *h_context,
dispatch_source_handler_function_t handler);
#ifdef __BLOCKS__
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL3 DISPATCH_NONNULL4 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_read_create(
int descriptor,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
dispatch_source_handler_t handler);
#endif
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL3 DISPATCH_NONNULL5 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_read_create_f(
int descriptor,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
void *h_context,
dispatch_source_handler_function_t handler);
#ifdef __BLOCKS__
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL3 DISPATCH_NONNULL4 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_write_create(
int descriptor,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
dispatch_source_handler_t handler);
#endif
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL3 DISPATCH_NONNULL5 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_write_create_f(
int descriptor,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
void *h_context,
dispatch_source_handler_function_t handler);
#ifdef __BLOCKS__
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL4 DISPATCH_NONNULL5 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_vnode_create(
int descriptor,
uint64_t flags,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
dispatch_source_handler_t handler);
#endif
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL4 DISPATCH_NONNULL6 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_vnode_create_f(
int descriptor,
uint64_t flags,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
void *h_context,
dispatch_source_handler_function_t handler);
#ifdef __BLOCKS__
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL4 DISPATCH_NONNULL5 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_proc_create(
pid_t pid,
uint64_t flags,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
dispatch_source_handler_t handler);
#endif
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL4 DISPATCH_NONNULL6 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_proc_create_f(
pid_t pid,
uint64_t flags,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
void *h_context,
dispatch_source_handler_function_t handler);
enum {
DISPATCH_MACHPORT_DEAD = 0x1,
DISPATCH_MACHPORT_RECV = 0x2,
DISPATCH_MACHPORT_DELETED = 0x4,
};
#ifdef __BLOCKS__
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_machport_create(
mach_port_t mport,
uint64_t flags,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
dispatch_source_handler_t handler);
#endif
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_machport_create_f(
mach_port_t mport,
uint64_t flags,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
void *h_context,
dispatch_source_handler_function_t handler);
enum {
DISPATCH_SOURCE_DATA_ADD = 1,
DISPATCH_SOURCE_DATA_OR,
};
#ifdef __BLOCKS__
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL3 DISPATCH_NONNULL4 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_data_create(
unsigned long behavior,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
dispatch_source_handler_t handler);
#endif
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL3 DISPATCH_NONNULL5 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_data_create_f(
unsigned long behavior,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
void *h_context,
dispatch_source_handler_function_t handler);
enum {
DISPATCH_SOURCE_CUSTOM_ADD = DISPATCH_SOURCE_DATA_ADD,
DISPATCH_SOURCE_CUSTOM_OR = DISPATCH_SOURCE_DATA_OR,
};
#ifdef __BLOCKS__
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL2 DISPATCH_NONNULL3 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_custom_create(
unsigned long behavior,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
dispatch_event_handler_t handler);
#endif
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL2 DISPATCH_NONNULL4 DISPATCH_NOTHROW
dispatch_source_t
dispatch_source_custom_create_f(
unsigned long behavior,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
void *h_context,
dispatch_event_handler_function_t handler);
#if defined(__BLOCKS__)
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL3 DISPATCH_NONNULL4
dispatch_source_t
dispatch_source_vfs_create(
uint64_t flags,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
dispatch_source_handler_t handler);
#endif
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
DISPATCH_MALLOC DISPATCH_NONNULL3 DISPATCH_NONNULL5
dispatch_source_t
dispatch_source_vfs_create_f(
uint64_t flags,
dispatch_source_attr_t attr,
dispatch_queue_t queue,
void *h_context,
dispatch_source_handler_function_t handler);
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
boolean_t
_dispatch_machport_callback(mach_msg_header_t *msg, mach_msg_header_t *reply, void (*callback)(mach_msg_header_t *));
#define DISPATCH_MACHPORT_CALLBACK_DECL(new_callback, existing_callback) \
__private_extern__ boolean_t \
new_callback(mach_msg_header_t *msg, mach_msg_header_t *reply) \
{ return _dispatch_machport_callback(msg, reply, existing_callback); }
struct __CFMachPort;
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_NA)
boolean_t
_dispatch_CFMachPortCallBack(mach_msg_header_t *msg, mach_msg_header_t *reply, void (*callback)(struct __CFMachPort *, void *msg, signed long size, void *));
#define DISPATCH_CFMACHPORT_CALLBACK_DECL(new_callback, existing_callback) \
__private_extern__ boolean_t \
new_callback(mach_msg_header_t *msg, mach_msg_header_t *reply) \
{ return _dispatch_CFMachPortCallBack(msg, reply, existing_callback); }
__END_DECLS
#endif