123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404 |
- #ifndef __XPC_LAUNCH_H__
- #define __XPC_LAUNCH_H__
- /*!
- * @header
- * These interfaces were only ever documented for the purpose of allowing a
- * launchd job to obtain file descriptors associated with the sockets it
- * advertised in its launchd.plist(5). That functionality is now available in a
- * much more straightforward fashion through the {@link launch_activate_socket}
- * API.
- *
- * There are currently no replacements for other uses of the {@link launch_msg}
- * API, including submitting, removing, starting, stopping and listing jobs.
- */
- #include <os/base.h>
- #include <Availability.h>
- #include <mach/mach.h>
- #include <stddef.h>
- #include <stdbool.h>
- #include <sys/cdefs.h>
- #if __has_feature(assume_nonnull)
- _Pragma("clang assume_nonnull begin")
- #endif
- __BEGIN_DECLS
- #define LAUNCH_KEY_SUBMITJOB "SubmitJob"
- #define LAUNCH_KEY_REMOVEJOB "RemoveJob"
- #define LAUNCH_KEY_STARTJOB "StartJob"
- #define LAUNCH_KEY_STOPJOB "StopJob"
- #define LAUNCH_KEY_GETJOB "GetJob"
- #define LAUNCH_KEY_GETJOBS "GetJobs"
- #define LAUNCH_KEY_CHECKIN "CheckIn"
- #define LAUNCH_JOBKEY_LABEL "Label"
- #define LAUNCH_JOBKEY_DISABLED "Disabled"
- #define LAUNCH_JOBKEY_USERNAME "UserName"
- #define LAUNCH_JOBKEY_GROUPNAME "GroupName"
- #define LAUNCH_JOBKEY_TIMEOUT "TimeOut"
- #define LAUNCH_JOBKEY_EXITTIMEOUT "ExitTimeOut"
- #define LAUNCH_JOBKEY_INITGROUPS "InitGroups"
- #define LAUNCH_JOBKEY_SOCKETS "Sockets"
- #define LAUNCH_JOBKEY_MACHSERVICES "MachServices"
- #define LAUNCH_JOBKEY_MACHSERVICELOOKUPPOLICIES "MachServiceLookupPolicies"
- #define LAUNCH_JOBKEY_INETDCOMPATIBILITY "inetdCompatibility"
- #define LAUNCH_JOBKEY_ENABLEGLOBBING "EnableGlobbing"
- #define LAUNCH_JOBKEY_PROGRAMARGUMENTS "ProgramArguments"
- #define LAUNCH_JOBKEY_PROGRAM "Program"
- #define LAUNCH_JOBKEY_ONDEMAND "OnDemand"
- #define LAUNCH_JOBKEY_KEEPALIVE "KeepAlive"
- #define LAUNCH_JOBKEY_LIMITLOADTOHOSTS "LimitLoadToHosts"
- #define LAUNCH_JOBKEY_LIMITLOADFROMHOSTS "LimitLoadFromHosts"
- #define LAUNCH_JOBKEY_LIMITLOADTOSESSIONTYPE "LimitLoadToSessionType"
- #define LAUNCH_JOBKEY_LIMITLOADTOHARDWARE "LimitLoadToHardware"
- #define LAUNCH_JOBKEY_LIMITLOADFROMHARDWARE "LimitLoadFromHardware"
- #define LAUNCH_JOBKEY_RUNATLOAD "RunAtLoad"
- #define LAUNCH_JOBKEY_ROOTDIRECTORY "RootDirectory"
- #define LAUNCH_JOBKEY_WORKINGDIRECTORY "WorkingDirectory"
- #define LAUNCH_JOBKEY_ENVIRONMENTVARIABLES "EnvironmentVariables"
- #define LAUNCH_JOBKEY_USERENVIRONMENTVARIABLES "UserEnvironmentVariables"
- #define LAUNCH_JOBKEY_UMASK "Umask"
- #define LAUNCH_JOBKEY_NICE "Nice"
- #define LAUNCH_JOBKEY_HOPEFULLYEXITSFIRST "HopefullyExitsFirst"
- #define LAUNCH_JOBKEY_HOPEFULLYEXITSLAST "HopefullyExitsLast"
- #define LAUNCH_JOBKEY_LOWPRIORITYIO "LowPriorityIO"
- #define LAUNCH_JOBKEY_LOWPRIORITYBACKGROUNDIO "LowPriorityBackgroundIO"
- #define LAUNCH_JOBKEY_SESSIONCREATE "SessionCreate"
- #define LAUNCH_JOBKEY_STARTONMOUNT "StartOnMount"
- #define LAUNCH_JOBKEY_SOFTRESOURCELIMITS "SoftResourceLimits"
- #define LAUNCH_JOBKEY_HARDRESOURCELIMITS "HardResourceLimits"
- #define LAUNCH_JOBKEY_STANDARDINPATH "StandardInPath"
- #define LAUNCH_JOBKEY_STANDARDOUTPATH "StandardOutPath"
- #define LAUNCH_JOBKEY_STANDARDERRORPATH "StandardErrorPath"
- #define LAUNCH_JOBKEY_DEBUG "Debug"
- #define LAUNCH_JOBKEY_WAITFORDEBUGGER "WaitForDebugger"
- #define LAUNCH_JOBKEY_QUEUEDIRECTORIES "QueueDirectories"
- #define LAUNCH_JOBKEY_WATCHPATHS "WatchPaths"
- #define LAUNCH_JOBKEY_STARTINTERVAL "StartInterval"
- #define LAUNCH_JOBKEY_STARTCALENDARINTERVAL "StartCalendarInterval"
- #define LAUNCH_JOBKEY_BONJOURFDS "BonjourFDs"
- #define LAUNCH_JOBKEY_LASTEXITSTATUS "LastExitStatus"
- #define LAUNCH_JOBKEY_PID "PID"
- #define LAUNCH_JOBKEY_THROTTLEINTERVAL "ThrottleInterval"
- #define LAUNCH_JOBKEY_LAUNCHONLYONCE "LaunchOnlyOnce"
- #define LAUNCH_JOBKEY_ABANDONPROCESSGROUP "AbandonProcessGroup"
- #define LAUNCH_JOBKEY_IGNOREPROCESSGROUPATSHUTDOWN \
- "IgnoreProcessGroupAtShutdown"
- #define LAUNCH_JOBKEY_LEGACYTIMERS "LegacyTimers"
- #define LAUNCH_JOBKEY_ENABLEPRESSUREDEXIT "EnablePressuredExit"
- #define LAUNCH_JOBKEY_DRAINMESSAGESONFAILEDINIT "DrainMessagesOnFailedInit"
- #define LAUNCH_JOBKEY_POLICIES "Policies"
- #define LAUNCH_JOBKEY_ENABLETRANSACTIONS "EnableTransactions"
- #define LAUNCH_JOBPOLICY_DENYCREATINGOTHERJOBS "DenyCreatingOtherJobs"
- #define LAUNCH_JOBINETDCOMPATIBILITY_WAIT "Wait"
- #define LAUNCH_JOBINETDCOMPATIBILITY_INSTANCES "Instances"
- #define LAUNCH_JOBKEY_MACH_RESETATCLOSE "ResetAtClose"
- #define LAUNCH_JOBKEY_MACH_HIDEUNTILCHECKIN "HideUntilCheckIn"
- #define LAUNCH_JOBKEY_MACH_DRAINMESSAGESONCRASH "DrainMessagesOnCrash"
- #define LAUNCH_JOBKEY_MACH_PINGEVENTUPDATES "PingEventUpdates"
- #define LAUNCH_JOBKEY_KEEPALIVE_SUCCESSFULEXIT "SuccessfulExit"
- #define LAUNCH_JOBKEY_KEEPALIVE_NETWORKSTATE "NetworkState"
- #define LAUNCH_JOBKEY_KEEPALIVE_PATHSTATE "PathState"
- #define LAUNCH_JOBKEY_KEEPALIVE_OTHERJOBACTIVE "OtherJobActive"
- #define LAUNCH_JOBKEY_KEEPALIVE_OTHERJOBENABLED "OtherJobEnabled"
- #define LAUNCH_JOBKEY_KEEPALIVE_AFTERINITIALDEMAND "AfterInitialDemand"
- #define LAUNCH_JOBKEY_KEEPALIVE_CRASHED "Crashed"
- #define LAUNCH_JOBKEY_LAUNCHEVENTS "LaunchEvents"
- #define LAUNCH_JOBKEY_CAL_MINUTE "Minute"
- #define LAUNCH_JOBKEY_CAL_HOUR "Hour"
- #define LAUNCH_JOBKEY_CAL_DAY "Day"
- #define LAUNCH_JOBKEY_CAL_WEEKDAY "Weekday"
- #define LAUNCH_JOBKEY_CAL_MONTH "Month"
- #define LAUNCH_JOBKEY_RESOURCELIMIT_CORE "Core"
- #define LAUNCH_JOBKEY_RESOURCELIMIT_CPU "CPU"
- #define LAUNCH_JOBKEY_RESOURCELIMIT_DATA "Data"
- #define LAUNCH_JOBKEY_RESOURCELIMIT_FSIZE "FileSize"
- #define LAUNCH_JOBKEY_RESOURCELIMIT_MEMLOCK "MemoryLock"
- #define LAUNCH_JOBKEY_RESOURCELIMIT_NOFILE "NumberOfFiles"
- #define LAUNCH_JOBKEY_RESOURCELIMIT_NPROC "NumberOfProcesses"
- #define LAUNCH_JOBKEY_RESOURCELIMIT_RSS "ResidentSetSize"
- #define LAUNCH_JOBKEY_RESOURCELIMIT_STACK "Stack"
- #define LAUNCH_JOBKEY_DISABLED_MACHINETYPE "MachineType"
- #define LAUNCH_JOBKEY_DISABLED_MODELNAME "ModelName"
- #define LAUNCH_JOBSOCKETKEY_TYPE "SockType"
- #define LAUNCH_JOBSOCKETKEY_PASSIVE "SockPassive"
- #define LAUNCH_JOBSOCKETKEY_BONJOUR "Bonjour"
- #define LAUNCH_JOBSOCKETKEY_SECUREWITHKEY "SecureSocketWithKey"
- #define LAUNCH_JOBSOCKETKEY_PATHNAME "SockPathName"
- #define LAUNCH_JOBSOCKETKEY_PATHMODE "SockPathMode"
- #define LAUNCH_JOBSOCKETKEY_PATHOWNER "SockPathOwner"
- #define LAUNCH_JOBSOCKETKEY_PATHGROUP "SockPathGroup"
- #define LAUNCH_JOBSOCKETKEY_NODENAME "SockNodeName"
- #define LAUNCH_JOBSOCKETKEY_SERVICENAME "SockServiceName"
- #define LAUNCH_JOBSOCKETKEY_FAMILY "SockFamily"
- #define LAUNCH_JOBSOCKETKEY_PROTOCOL "SockProtocol"
- #define LAUNCH_JOBSOCKETKEY_MULTICASTGROUP "MulticastGroup"
- #define LAUNCH_JOBKEY_PROCESSTYPE "ProcessType"
- #define LAUNCH_KEY_PROCESSTYPE_APP "App"
- #define LAUNCH_KEY_PROCESSTYPE_STANDARD "Standard"
- #define LAUNCH_KEY_PROCESSTYPE_BACKGROUND "Background"
- #define LAUNCH_KEY_PROCESSTYPE_INTERACTIVE "Interactive"
- #define LAUNCH_KEY_PROCESSTYPE_ADAPTIVE "Adaptive"
- /*!
- * @function launch_activate_socket
- *
- * @abstract
- * Retrieves the file descriptors for sockets specified in the process'
- * launchd.plist(5).
- *
- * @param name
- * The name of the socket entry in the service's Sockets dictionary.
- *
- * @param fds
- * On return, this parameter will be populated with an array of file
- * descriptors. One socket can have many descriptors associated with it
- * depending on the characteristics of the network interfaces on the system.
- * The descriptors in this array are the results of calling getaddrinfo(3) with
- * the parameters described in launchd.plist(5).
- *
- * The caller is responsible for calling free(3) on the returned pointer.
- *
- * @param cnt
- * The number of file descriptor entries in the returned array.
- *
- * @result
- * On success, zero is returned. Otherwise, an appropriate POSIX-domain is
- * returned. Possible error codes are:
- *
- * ENOENT -> There was no socket of the specified name owned by the caller.
- * ESRCH -> The caller is not a process managed by launchd.
- * EALREADY -> The socket has already been activated by the caller.
- */
- __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1 OS_NONNULL2 OS_NONNULL3
- int
- launch_activate_socket(const char *name,
- int * _Nonnull * _Nullable fds, size_t *cnt);
- typedef struct _launch_data *launch_data_t;
- typedef void (*launch_data_dict_iterator_t)(const launch_data_t lval,
- const char *key, void * _Nullable ctx);
- typedef enum {
- LAUNCH_DATA_DICTIONARY = 1,
- LAUNCH_DATA_ARRAY,
- LAUNCH_DATA_FD,
- LAUNCH_DATA_INTEGER,
- LAUNCH_DATA_REAL,
- LAUNCH_DATA_BOOL,
- LAUNCH_DATA_STRING,
- LAUNCH_DATA_OPAQUE,
- LAUNCH_DATA_ERRNO,
- LAUNCH_DATA_MACHPORT,
- } launch_data_type_t;
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_MALLOC OS_WARN_RESULT
- launch_data_t
- launch_data_alloc(launch_data_type_t type);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_MALLOC OS_WARN_RESULT OS_NONNULL1
- launch_data_t
- launch_data_copy(launch_data_t ld);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1
- launch_data_type_t
- launch_data_get_type(const launch_data_t ld);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_NONNULL1
- void
- launch_data_free(launch_data_t ld);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_NONNULL1 OS_NONNULL2 OS_NONNULL3
- bool
- launch_data_dict_insert(launch_data_t ldict, const launch_data_t lval,
- const char *key);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1 OS_NONNULL2
- launch_data_t _Nullable
- launch_data_dict_lookup(const launch_data_t ldict, const char *key);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_NONNULL1 OS_NONNULL2
- bool
- launch_data_dict_remove(launch_data_t ldict, const char *key);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_NONNULL1 OS_NONNULL2
- void
- launch_data_dict_iterate(const launch_data_t ldict,
- launch_data_dict_iterator_t iterator, void * _Nullable ctx);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1
- size_t
- launch_data_dict_get_count(const launch_data_t ldict);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_NONNULL1 OS_NONNULL2
- bool
- launch_data_array_set_index(launch_data_t larray, const launch_data_t lval,
- size_t idx);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1
- launch_data_t
- launch_data_array_get_index(const launch_data_t larray, size_t idx);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1
- size_t
- launch_data_array_get_count(const launch_data_t larray);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_MALLOC OS_WARN_RESULT
- launch_data_t
- launch_data_new_fd(int fd);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_MALLOC OS_WARN_RESULT
- launch_data_t
- launch_data_new_machport(mach_port_t val);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_MALLOC OS_WARN_RESULT
- launch_data_t
- launch_data_new_integer(long long val);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_MALLOC OS_WARN_RESULT
- launch_data_t
- launch_data_new_bool(bool val);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_MALLOC OS_WARN_RESULT
- launch_data_t
- launch_data_new_real(double val);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_MALLOC OS_WARN_RESULT
- launch_data_t
- launch_data_new_string(const char *val);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_MALLOC OS_WARN_RESULT
- launch_data_t
- launch_data_new_opaque(const void *bytes, size_t sz);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_NONNULL1
- bool
- launch_data_set_fd(launch_data_t ld, int fd);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_NONNULL1
- bool
- launch_data_set_machport(launch_data_t ld, mach_port_t mp);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_NONNULL1
- bool
- launch_data_set_integer(launch_data_t ld, long long val);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_NONNULL1
- bool
- launch_data_set_bool(launch_data_t ld, bool val);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_NONNULL1
- bool
- launch_data_set_real(launch_data_t ld, double val);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_NONNULL1
- bool
- launch_data_set_string(launch_data_t ld, const char *val);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_NONNULL1
- bool
- launch_data_set_opaque(launch_data_t ld, const void *bytes, size_t sz);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1
- int
- launch_data_get_fd(const launch_data_t ld);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1
- mach_port_t
- launch_data_get_machport(const launch_data_t ld);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1
- long long
- launch_data_get_integer(const launch_data_t ld);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1
- bool
- launch_data_get_bool(const launch_data_t ld);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1
- double
- launch_data_get_real(const launch_data_t ld);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1
- const char *
- launch_data_get_string(const launch_data_t ld);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1
- void *
- launch_data_get_opaque(const launch_data_t ld);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1
- size_t
- launch_data_get_opaque_size(const launch_data_t ld);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT OS_NONNULL1
- int
- launch_data_get_errno(const launch_data_t ld);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_WARN_RESULT
- int
- launch_get_fd(void);
- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
- OS_EXPORT OS_MALLOC OS_WARN_RESULT OS_NONNULL1
- launch_data_t
- launch_msg(const launch_data_t request);
- __END_DECLS
- #if __has_feature(assume_nonnull)
- _Pragma("clang assume_nonnull end")
- #endif
- #endif // __XPC_LAUNCH_H__
|