[launchd-changes] [23733] branches/PR-5092682
source_changes at macosforge.org
source_changes at macosforge.org
Thu Oct 16 16:34:45 PDT 2008
Revision: 23733
http://trac.macosforge.org/projects/launchd/changeset/23733
Author: kvv at apple.com
Date: 2008-10-16 16:34:45 -0700 (Thu, 16 Oct 2008)
Log Message:
-----------
<rdar://problem/5092682> convert launchd to Xcode (remove launchd_libs dependency on libgcc)
Modified Paths:
--------------
branches/PR-5092682/launchd/src/IPC.c
branches/PR-5092682/launchd/src/launchctl.c
branches/PR-5092682/launchd/src/launchd.c
branches/PR-5092682/launchd/src/launchd.h
branches/PR-5092682/launchd/src/launchd_core_logic.c
branches/PR-5092682/launchd/src/launchd_core_logic.h
branches/PR-5092682/launchd/src/launchd_ktrace.h
branches/PR-5092682/launchd/src/launchd_runtime.c
branches/PR-5092682/launchd/src/launchd_runtime.h
branches/PR-5092682/launchd/src/launchd_unix_ipc.c
branches/PR-5092682/launchd/src/launchd_unix_ipc.h
branches/PR-5092682/launchd/src/libbootstrap.c
branches/PR-5092682/launchd/src/liblaunch.c
branches/PR-5092682/launchd/src/libvproc.c
branches/PR-5092682/launchd/src/protocol_job_forward.defs
branches/PR-5092682/launchd/src/protocol_job_reply.defs
Added Paths:
-----------
branches/PR-5092682/launchd/src/bootstrap.h
branches/PR-5092682/launchd/src/bootstrap_priv.h
branches/PR-5092682/launchd/src/launch.h
branches/PR-5092682/launchd/src/launch_internal.h
branches/PR-5092682/launchd/src/launch_priv.h
branches/PR-5092682/launchd/src/protocol_vproc.defs
branches/PR-5092682/launchd/src/vproc.h
branches/PR-5092682/launchd/src/vproc_internal.h
branches/PR-5092682/launchd/src/vproc_priv.h
branches/PR-5092682/launchd.xcodeproj/
branches/PR-5092682/launchd.xcodeproj/project.pbxproj
Removed Paths:
-------------
branches/PR-5092682/launchd/src/libbootstrap_private.h
branches/PR-5092682/launchd/src/libbootstrap_public.h
branches/PR-5092682/launchd/src/liblaunch_internal.h
branches/PR-5092682/launchd/src/liblaunch_private.h
branches/PR-5092682/launchd/src/liblaunch_public.h
branches/PR-5092682/launchd/src/libvproc_internal.h
branches/PR-5092682/launchd/src/libvproc_private.h
branches/PR-5092682/launchd/src/libvproc_public.h
branches/PR-5092682/launchd/src/protocol_job.defs
Property Changed:
----------------
branches/PR-5092682/
Property changes on: branches/PR-5092682
___________________________________________________________________
Added: svn:ignore
+ build
Modified: branches/PR-5092682/launchd/src/IPC.c
===================================================================
--- branches/PR-5092682/launchd/src/IPC.c 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/IPC.c 2008-10-16 23:34:45 UTC (rev 23733)
@@ -30,7 +30,7 @@
#include <CoreFoundation/CoreFoundation.h>
#include <syslog.h>
-#include "libbootstrap_public.h"
+#include "bootstrap.h"
#include "IPC.h"
#include "StartupItems.h"
Copied: branches/PR-5092682/launchd/src/bootstrap.h (from rev 23730, branches/PR-5092682/launchd/src/libbootstrap_public.h)
===================================================================
--- branches/PR-5092682/launchd/src/bootstrap.h (rev 0)
+++ branches/PR-5092682/launchd/src/bootstrap.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -0,0 +1,355 @@
+#ifndef _BOOTSTRAP_H_
+#define _BOOTSTRAP_H_
+/*
+ * Copyright (c) 1999-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+/*
+ * bootstrap -- fundamental service initiator and port server
+ * Mike DeMoney, NeXT, Inc.
+ * Copyright, 1990. All rights reserved.
+ */
+
+/*
+ * Interface: Bootstrap server
+ *
+ * The bootstrap server is the first user-mode task initiated by the Mach
+ * kernel at system boot time. The bootstrap server provides two services,
+ * it initiates other system tasks, and manages a table of name-port bindings
+ * for fundamental system services (e.g. lookupd, Window Manager, etc...).
+ *
+ * Name-port bindings can be established with the bootstrap server by either
+ * of two mechanisms:
+ *
+ * 1. The binding can be indicated, in advance of the service that backs it
+ * being available, via a "service create" request. In this case, bootstrap
+ * will immediately create a port and bind the indicated name with that port.
+ * At a later time, a service may "checkin" for the name-port
+ * binding and will be returned receive rights for the bound port. Lookup's
+ * on bindings created by this mechanism will return send rights to the port,
+ * even if no service has "checked-in". In this case, requests sent to the
+ * bound port will be queued until a server has checked-in and can satisfy the
+ * request.
+ *
+ * 2. Bindings can be established dynamically via a "register" request. In
+ * this case, the register request provides bootstrap with a name and send
+ * rights for a port. Bootstrap will provide send rights for the bound port
+ * to any requestor via the lookup request.
+ *
+ * Bootstrap provides its service port to descendant tasks via the Mach
+ * "bootstrap" special task port. All direct descendants of bootstrap receive
+ * a "privileged" bootstrap service port. System services that initiate
+ * untrusted tasks should replace the Mach bootstrap task special port with
+ * a subset bootstrap port to prevent them from infecting the namespace.
+ *
+ * The bootstrap server creates a "backup" port for each service that it
+ * creates. This is used to detect when a checked out service is no longer
+ * being served. The bootstrap server regains all rights to the port and
+ * it is marked available for check-out again. This allows crashed servers to
+ * resume service to previous clients. Lookup's on this named port will
+ * continue to be serviced by bootstrap while holding receive rights for the
+ * bound port. A client may detect that the service is inactive via the
+ * bootstrap status request. If an inactive service re-registers rather
+ * than "checking-in" the original bound port is destroyed.
+ *
+ * The status of a named service may be obtained via the "status" request.
+ * A service is "active" if a name-port binding exists and receive rights
+ * to the bound port are held by a task other than bootstrap.
+ *
+ * The bootstrap server may also (re)start server processes associated with
+ * with a set of services. The definition of the server process is done
+ * through the "create server" request. The server will be launched in the
+ * same bootstrap context in which it was registered.
+ */
+#include <AvailabilityMacros.h>
+#include <mach/std_types.h>
+#include <mach/message.h>
+#include <sys/types.h>
+#include <sys/cdefs.h>
+#include <stdbool.h>
+
+__BEGIN_DECLS
+
+#pragma GCC visibility push(default)
+
+#define BOOTSTRAP_MAX_NAME_LEN 128
+#define BOOTSTRAP_MAX_CMD_LEN 512
+
+typedef char name_t[BOOTSTRAP_MAX_NAME_LEN];
+typedef char cmd_t[BOOTSTRAP_MAX_CMD_LEN];
+typedef name_t *name_array_t;
+typedef int bootstrap_status_t;
+typedef bootstrap_status_t *bootstrap_status_array_t;
+
+typedef boolean_t *bool_array_t;
+
+#define BOOTSTRAP_MAX_LOOKUP_COUNT 20
+
+#define BOOTSTRAP_SUCCESS 0
+#define BOOTSTRAP_NOT_PRIVILEGED 1100
+#define BOOTSTRAP_NAME_IN_USE 1101
+#define BOOTSTRAP_UNKNOWN_SERVICE 1102
+#define BOOTSTRAP_SERVICE_ACTIVE 1103
+#define BOOTSTRAP_BAD_COUNT 1104
+#define BOOTSTRAP_NO_MEMORY 1105
+
+#define BOOTSTRAP_STATUS_INACTIVE 0
+#define BOOTSTRAP_STATUS_ACTIVE 1
+#define BOOTSTRAP_STATUS_ON_DEMAND 2
+
+/*
+ * After main() starts, it is safe to assume that this variable is always set.
+ */
+extern mach_port_t bootstrap_port;
+
+/*
+ * bootstrap_create_server()
+ *
+ * Declares a server that mach_init will re-spawn within the specified
+ * bootstrap context. The server is considered already "active"
+ * (i.e. will not be re-spawned) until the returned server_port is
+ * deallocated.
+ *
+ * In the meantime, services can be declared against the server,
+ * by using the server_port as the privileged bootstrap target of
+ * subsequent bootstrap_create_service() calls.
+ *
+ * When mach_init re-spawns the server, its task bootstrap port
+ * is set to the privileged sever_port. Through this special
+ * bootstrap port, it can access all of parent bootstrap's context
+ * (and all services are created in the parent's namespace). But
+ * all additional service declarations (and declaration removals)
+ * will be associated with this particular server.
+ *
+ * Only a holder of the server_port privilege bootstrap port can
+ * check in or register over those services.
+ *
+ * When all services associated with a server are deleted, and the server
+ * exits, it will automatically be deleted itself.
+ *
+ * If the server is declared "on_demand," then a non-running server
+ * will be re-launched on first use of one of the service ports
+ * registered against it. Otherwise, it will be re-launched
+ * immediately upon exiting (whether any client is actively using
+ * any of the service ports or not).
+ *
+ * Errors: Returns appropriate kernel errors on rpc failure.
+ * Returns BOOTSTRAP_NOT_PRIVILEGED, bootstrap or uid invalid.
+ */
+kern_return_t bootstrap_create_server(
+ mach_port_t bp,
+ cmd_t server_cmd,
+ uid_t server_uid,
+ boolean_t on_demand,
+ mach_port_t *server_port);
+
+/*
+ * bootstrap_subset()
+ *
+ * Returns a new port to use as a bootstrap port. This port behaves
+ * exactly like the previous bootstrap_port, except that ports dynamically
+ * registered via bootstrap_register() are available only to users of this
+ * specific subset_port. Lookups on the subset_port will return ports
+ * registered with this port specifically, and ports registered with
+ * ancestors of this subset_port. Duplications of services already
+ * registered with an ancestor port may be registered with the subset port
+ * are allowed. Services already advertised may then be effectively removed
+ * by registering PORT_NULL for the service.
+ * When it is detected that the requestor_port is destroyed the subset
+ * port and all services advertized by it are destroyed as well.
+ *
+ * Errors: Returns appropriate kernel errors on rpc failure.
+ */
+kern_return_t bootstrap_subset(
+ mach_port_t bp,
+ mach_port_t requestor_port,
+ mach_port_t *subset_port);
+
+/*
+ * bootstrap_unprivileged()
+ *
+ * Given a bootstrap port, return its unprivileged equivalent. If
+ * the port is already unprivileged, another reference to the same
+ * port is returned.
+ *
+ * This is most often used by servers, which are launched with their
+ * bootstrap port set to the privileged port for the server, to get
+ * an unprivileged version of the same port for use by its unprivileged
+ * children (or any offspring that it does not want to count as part
+ * of the "server" for mach_init registration and re-launch purposes).
+ *
+ * Native launchd jobs are always started with an unprivileged port.
+ */
+kern_return_t bootstrap_unprivileged(
+ mach_port_t bp,
+ mach_port_t *unpriv_port)
+ AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5;
+
+/*
+ * bootstrap_parent()
+ *
+ * Given a bootstrap subset port, return the parent bootstrap port.
+ * If the specified bootstrap port is already the root subset,
+ * the same port will be returned. Much like "." and ".." are the same
+ * in the file system name space for the root directory ("/").
+ *
+ * Errors:
+ * Returns BOOTSTRAP_NOT_PRIVILEGED if the caller is not running
+ * with an effective user id of root (as determined by the security
+ * token in the message trailer).
+ */
+kern_return_t bootstrap_parent(
+ mach_port_t bp,
+ mach_port_t *parent_port);
+
+/*
+ * bootstrap_register()
+ *
+ * Registers a send right for service_port with the service identified by
+ * service_name. Attempts to register a service where an active binding
+ * already exists are rejected.
+ *
+ * If the service was previously declared with bootstrap_create_service(),
+ * but is not currently active, this call can be used to undeclare the
+ * service. The bootstrap port used must have sufficient privilege to
+ * do so. (Registering MACH_PORT_NULL is especially useful for shutting
+ * down declared services).
+ *
+ * This API is deprecated. Old scenarios and recommendations:
+ *
+ * 1) Code that used to call bootstrap_check_in() and then bootstrap_register()
+ * can now always call bootstrap_check_in().
+ *
+ * 2) If the code was registering a well known name, please switch to launchd.
+ *
+ * 3) If the code was registering a dynamically generated string and passing
+ * the string to other applications, please rewrite the code to send a Mach
+ * send-right directly.
+ *
+ * 4) If the launchd job maintained an optional Mach service, please reserve
+ * the name with launchd and control the presense of the service through
+ * ownership of the Mach receive right like so.
+ *
+ * <key>MachServices</key>
+ * <dict>
+ * <key>com.apple.windowserver</key>
+ * <true/>
+ * <key>com.apple.windowserver.active</key>
+ * <dict>
+ * <key>HideUntilCheckIn</key>
+ * <true/>
+ * </dict>
+ * </dict>
+ *
+ *
+ * Errors: Returns appropriate kernel errors on rpc failure.
+ * Returns BOOTSTRAP_NOT_PRIVILEGED, if request directed to
+ * bootstrap port without privilege.
+ * Returns BOOTSTRAP_NAME_IN_USE, if service has already been
+ * register or checked-in.
+ */
+AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5
+kern_return_t
+bootstrap_register(mach_port_t bp, name_t service_name, mach_port_t sp);
+
+/*
+ * bootstrap_create_service()
+ *
+ * Creates a service named "service_name" and returns a send right to that
+ * port in "service_port." The port may later be checked in as if this
+ * port were configured in the bootstrap configuration file.
+ *
+ * This API is deprecated. Please call bootstrap_check_in() instead.
+ *
+ * Errors: Returns appropriate kernel errors on rpc failure.
+ * Returns BOOTSTRAP_SERVICE_ACTIVE, if service already exists.
+ */
+#ifdef AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
+AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
+#endif
+kern_return_t
+bootstrap_create_service(mach_port_t bp, name_t service_name, mach_port_t *sp);
+
+/*
+ * bootstrap_check_in()
+ *
+ * Returns the receive right for the service named by service_name. The
+ * service must have previously been declared in this bootstrap context via
+ * a call to bootstrap_create_service(). Attempts to check_in a service
+ * which is already active are not allowed.
+ *
+ * If the service was declared as being associated with a server, the
+ * check_in must come from the server's privileged port (server_port).
+ *
+ * Errors: Returns appropriate kernel errors on rpc failure.
+ * Returns BOOTSTRAP_UNKNOWN_SERVICE, if service does not exist.
+ * Returns BOOTSTRAP_NOT_PRIVILEGED, if request directed to
+ * bootstrap port without privilege.
+ * Returns BOOTSTRAP_SERVICE_ACTIVE, if service has already been
+ * registered or checked-in.
+ */
+kern_return_t bootstrap_check_in(
+ mach_port_t bp,
+ const name_t service_name,
+ mach_port_t *sp);
+
+/*
+ * bootstrap_look_up()
+ *
+ * Returns a send right for the service port declared/registered under the
+ * name service_name. The service is not guaranteed to be active. Use the
+ * bootstrap_status call to determine the status of the service.
+ *
+ * Errors: Returns appropriate kernel errors on rpc failure.
+ * Returns BOOTSTRAP_UNKNOWN_SERVICE, if service does not exist.
+ */
+kern_return_t bootstrap_look_up(
+ mach_port_t bp,
+ const name_t service_name,
+ mach_port_t *sp);
+
+/*
+ * bootstrap_status()
+ *
+ * In practice, this call was used to preflight whether the following two
+ * APIs would succeed.
+ *
+ * bootstrap_look_up()
+ * bootstrap_check_in()
+ *
+ * Please don't bother. Just call the above two APIs directly and check
+ * for failure.
+ */
+kern_return_t bootstrap_status(
+ mach_port_t bp,
+ name_t service_name,
+ bootstrap_status_t *service_active)
+ AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5;
+
+/* bootstrap_strerror()
+ *
+ * Translate a return value from the bootstrap_*() APIs to a string.
+ */
+const char *bootstrap_strerror(kern_return_t r) __attribute__((__nothrow__, __pure__, __warn_unused_result__));
+
+#pragma GCC visibility pop
+
+__END_DECLS
+
+#endif
Property changes on: branches/PR-5092682/launchd/src/bootstrap.h
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/PR-5898404/launchd/src/libbootstrap_public.h:23681-23700
/branches/PR-5978442/launchd/src/libbootstrap_public.h:23651-23701
Added: svn:eol-style
+ native
Copied: branches/PR-5092682/launchd/src/bootstrap_priv.h (from rev 23730, branches/PR-5092682/launchd/src/libbootstrap_private.h)
===================================================================
--- branches/PR-5092682/launchd/src/bootstrap_priv.h (rev 0)
+++ branches/PR-5092682/launchd/src/bootstrap_priv.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -0,0 +1,49 @@
+#ifndef _BOOTSTRAP_PRIVATE_H_
+#define _BOOTSTRAP_PRIVATE_H_
+/*
+ * Copyright (c) 2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#include <servers/bootstrap.h>
+#include <sys/types.h>
+
+__BEGIN_DECLS
+
+#pragma GCC visibility push(default)
+
+#define BOOTSTRAP_PER_PID_SERVICE 0x1
+#define BOOTSTRAP_ALLOW_LOOKUP 0x2
+#define BOOTSTRAP_DENY_JOB_CREATION 0x4
+#define BOOTSTRAP_PRIVILEGED_SERVER 0x8
+
+kern_return_t bootstrap_register2(mach_port_t bp, name_t service_name, mach_port_t sp, uint64_t flags);
+
+kern_return_t bootstrap_look_up2(mach_port_t bp, const name_t service_name, mach_port_t *sp, pid_t target_pid, uint64_t flags);
+
+kern_return_t bootstrap_check_in2(mach_port_t bp, const name_t service_name, mach_port_t *sp, uint64_t flags);
+
+kern_return_t bootstrap_look_up_per_user(mach_port_t bp, const name_t service_name, uid_t target_user, mach_port_t *sp);
+
+kern_return_t bootstrap_set_policy(mach_port_t bp, pid_t target_pid, uint64_t flags, const char *target_service);
+
+#pragma GCC visibility pop
+
+__END_DECLS
+
+#endif
Property changes on: branches/PR-5092682/launchd/src/bootstrap_priv.h
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/PR-5898404/launchd/src/libbootstrap_private.h:23681-23700
/branches/PR-5978442/launchd/src/libbootstrap_private.h:23651-23701
Copied: branches/PR-5092682/launchd/src/launch.h (from rev 23730, branches/PR-5092682/launchd/src/liblaunch_public.h)
===================================================================
--- branches/PR-5092682/launchd/src/launch.h (rev 0)
+++ branches/PR-5092682/launchd/src/launch.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -0,0 +1,234 @@
+/*
+ * Copyright (c) 2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+#ifndef _LAUNCH_H_
+#define _LAUNCH_H_
+
+#include <mach/mach.h>
+#include <sys/cdefs.h>
+#include <stddef.h>
+#include <stdbool.h>
+
+#pragma GCC visibility push(default)
+
+__BEGIN_DECLS
+
+#ifdef __GNUC__
+#define __ld_normal __attribute__((__nothrow__))
+#define __ld_setter __attribute__((__nothrow__, __nonnull__))
+#define __ld_getter __attribute__((__nothrow__, __nonnull__, __pure__, __warn_unused_result__))
+#define __ld_iterator(x, y) __attribute__((__nonnull__(x, y)))
+#define __ld_allocator __attribute__((__nothrow__, __malloc__, __nonnull__, __warn_unused_result__))
+#else
+#define __ld_normal
+#define __ld_setter
+#define __ld_getter
+#define __ld_iterator(x, y)
+#define __ld_allocator
+#endif
+
+
+#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_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_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_POLICIES "Policies"
+#define LAUNCH_JOBKEY_ENABLETRANSACTIONS "EnableTransactions"
+
+#define LAUNCH_JOBPOLICY_DENYCREATINGOTHERJOBS "DenyCreatingOtherJobs"
+
+#define LAUNCH_JOBINETDCOMPATIBILITY_WAIT "Wait"
+
+#define LAUNCH_JOBKEY_MACH_RESETATCLOSE "ResetAtClose"
+#define LAUNCH_JOBKEY_MACH_HIDEUNTILCHECKIN "HideUntilCheckIn"
+
+#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_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_NODENAME "SockNodeName"
+#define LAUNCH_JOBSOCKETKEY_SERVICENAME "SockServiceName"
+#define LAUNCH_JOBSOCKETKEY_FAMILY "SockFamily"
+#define LAUNCH_JOBSOCKETKEY_PROTOCOL "SockProtocol"
+#define LAUNCH_JOBSOCKETKEY_MULTICASTGROUP "MulticastGroup"
+
+typedef struct _launch_data *launch_data_t;
+
+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;
+
+launch_data_t launch_data_alloc(launch_data_type_t) __ld_allocator;
+launch_data_t launch_data_copy(launch_data_t) __ld_allocator;
+launch_data_type_t launch_data_get_type(const launch_data_t) __ld_getter;
+void launch_data_free(launch_data_t) __ld_setter;
+
+/* Generic Dictionaries */
+/* the value should not be changed while iterating */
+bool launch_data_dict_insert(launch_data_t, const launch_data_t, const char *) __ld_setter;
+launch_data_t launch_data_dict_lookup(const launch_data_t, const char *) __ld_getter;
+bool launch_data_dict_remove(launch_data_t, const char *) __ld_setter;
+void launch_data_dict_iterate(const launch_data_t, void (*)(const launch_data_t, const char *, void *), void *) __ld_iterator(1, 2);
+size_t launch_data_dict_get_count(const launch_data_t) __ld_getter;
+
+/* Generic Arrays */
+bool launch_data_array_set_index(launch_data_t, const launch_data_t, size_t) __ld_setter;
+launch_data_t launch_data_array_get_index(const launch_data_t, size_t) __ld_getter;
+size_t launch_data_array_get_count(const launch_data_t) __ld_getter;
+
+launch_data_t launch_data_new_fd(int) __ld_allocator;
+launch_data_t launch_data_new_machport(mach_port_t) __ld_allocator;
+launch_data_t launch_data_new_integer(long long) __ld_allocator;
+launch_data_t launch_data_new_bool(bool) __ld_allocator;
+launch_data_t launch_data_new_real(double) __ld_allocator;
+launch_data_t launch_data_new_string(const char *) __ld_allocator;
+launch_data_t launch_data_new_opaque(const void *, size_t) __ld_allocator;
+
+bool launch_data_set_fd(launch_data_t, int) __ld_setter;
+bool launch_data_set_machport(launch_data_t, mach_port_t) __ld_setter;
+bool launch_data_set_integer(launch_data_t, long long) __ld_setter;
+bool launch_data_set_bool(launch_data_t, bool) __ld_setter;
+bool launch_data_set_real(launch_data_t, double) __ld_setter;
+bool launch_data_set_string(launch_data_t, const char *) __ld_setter;
+bool launch_data_set_opaque(launch_data_t, const void *, size_t) __ld_setter;
+
+int launch_data_get_fd(const launch_data_t) __ld_getter;
+mach_port_t launch_data_get_machport(const launch_data_t) __ld_getter;
+long long launch_data_get_integer(const launch_data_t) __ld_getter;
+bool launch_data_get_bool(const launch_data_t) __ld_getter;
+double launch_data_get_real(const launch_data_t) __ld_getter;
+const char * launch_data_get_string(const launch_data_t) __ld_getter;
+void * launch_data_get_opaque(const launch_data_t) __ld_getter;
+size_t launch_data_get_opaque_size(const launch_data_t) __ld_getter;
+int launch_data_get_errno(const launch_data_t) __ld_getter;
+
+
+/* launch_get_fd()
+ *
+ * Use this to get the FD if you're doing asynchronous I/O with select(),
+ * poll() or kevent().
+ */
+int launch_get_fd(void) __ld_normal;
+
+/* launch_msg()
+ *
+ * Use this API to send and receive messages.
+ * Calling launch_msg() with no message to send is a valid way to get
+ * asynchronously received messages.
+ *
+ * If a message was to be sent, it returns NULL and errno on failure.
+ *
+ * If no messages were to be sent, it returns NULL and errno is set to zero if
+ * no more asynchronous messages are available.
+ */
+launch_data_t launch_msg(const launch_data_t) __ld_normal;
+
+__END_DECLS
+
+#pragma GCC visibility pop
+
+#endif
Property changes on: branches/PR-5092682/launchd/src/launch.h
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/PR-5898404/launchd/src/liblaunch_public.h:23681-23700
/branches/PR-5978442/launchd/src/liblaunch_public.h:23651-23701
Added: svn:eol-style
+ native
Copied: branches/PR-5092682/launchd/src/launch_internal.h (from rev 23730, branches/PR-5092682/launchd/src/liblaunch_internal.h)
===================================================================
--- branches/PR-5092682/launchd/src/launch_internal.h (rev 0)
+++ branches/PR-5092682/launchd/src/launch_internal.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -0,0 +1,30 @@
+#ifndef _LAUNCH_INTERNAL_H_
+#define _LAUNCH_INTERNAL_H_
+/*
+ * Copyright (c) 2007 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#pragma GCC visibility push(default)
+
+size_t launch_data_pack(launch_data_t d, void *where, size_t len, int *fd_where, size_t *fdslotsleft);
+launch_data_t launch_data_unpack(void *data, size_t data_size, int *fds, size_t fd_cnt, size_t *data_offset, size_t *fdoffset);
+
+#pragma GCC visibility pop
+
+#endif
Property changes on: branches/PR-5092682/launchd/src/launch_internal.h
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/PR-5898404/launchd/src/liblaunch_internal.h:23681-23700
/branches/PR-5978442/launchd/src/liblaunch_internal.h:23651-23701
Copied: branches/PR-5092682/launchd/src/launch_priv.h (from rev 23730, branches/PR-5092682/launchd/src/liblaunch_private.h)
===================================================================
--- branches/PR-5092682/launchd/src/launch_priv.h (rev 0)
+++ branches/PR-5092682/launchd/src/launch_priv.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+#ifndef _LAUNCH_PRIV_H_
+#define _LAUNCH_PRIV_H_
+
+#include <mach/mach.h>
+#include <sys/types.h>
+#include <launch.h>
+#include <unistd.h>
+#include <paths.h>
+
+#pragma GCC visibility push(default)
+
+__BEGIN_DECLS
+
+#define LAUNCH_KEY_SETUSERENVIRONMENT "SetUserEnvironment"
+#define LAUNCH_KEY_UNSETUSERENVIRONMENT "UnsetUserEnvironment"
+#define LAUNCH_KEY_SHUTDOWN "Shutdown"
+#define LAUNCH_KEY_SINGLEUSER "SingleUser"
+#define LAUNCH_KEY_GETRESOURCELIMITS "GetResourceLimits"
+#define LAUNCH_KEY_SETRESOURCELIMITS "SetResourceLimits"
+#define LAUNCH_KEY_GETRUSAGESELF "GetResourceUsageSelf"
+#define LAUNCH_KEY_GETRUSAGECHILDREN "GetResourceUsageChildren"
+
+#define LAUNCHD_SOCKET_ENV "LAUNCHD_SOCKET"
+#define LAUNCHD_SOCK_PREFIX _PATH_VARTMP "launchd"
+#define LAUNCHD_TRUSTED_FD_ENV "__LAUNCHD_FD"
+#define LAUNCHD_ASYNC_MSG_KEY "_AsyncMessage"
+#define LAUNCH_KEY_BATCHCONTROL "BatchControl"
+#define LAUNCH_KEY_BATCHQUERY "BatchQuery"
+#define LAUNCHD_DO_APPLE_INTERNAL_LOGGING "__DoAppleInternalLogging__"
+
+#define LAUNCH_JOBKEY_TRANSACTIONCOUNT "TransactionCount"
+#define LAUNCH_JOBKEY_QUARANTINEDATA "QuarantineData"
+#define LAUNCH_JOBKEY_SANDBOXPROFILE "SandboxProfile"
+#define LAUNCH_JOBKEY_SANDBOXFLAGS "SandboxFlags"
+#define LAUNCH_JOBKEY_SANDBOX_NAMED "Named"
+
+#define LAUNCH_JOBKEY_ENTERKERNELDEBUGGERBEFOREKILL "EnterKernelDebuggerBeforeKill"
+#define LAUNCH_JOBKEY_PERJOBMACHSERVICES "PerJobMachServices"
+#define LAUNCH_JOBKEY_SERVICEIPC "ServiceIPC"
+#define LAUNCH_JOBKEY_BINARYORDERPREFERENCE "BinaryOrderPreference"
+#define LAUNCH_JOBKEY_MACHEXCEPTIONHANDLER "MachExceptionHandler"
+
+#define LAUNCH_JOBKEY_MACH_KUNCSERVER "kUNCServer"
+#define LAUNCH_JOBKEY_MACH_EXCEPTIONSERVER "ExceptionServer"
+#define LAUNCH_JOBKEY_MACH_TASKSPECIALPORT "TaskSpecialPort"
+#define LAUNCH_JOBKEY_MACH_HOSTSPECIALPORT "HostSpecialPort"
+#define LAUNCH_JOBKEY_MACH_ENTERKERNELDEBUGGERONCLOSE "EnterKernelDebuggerOnClose"
+
+typedef struct _launch *launch_t;
+
+launch_t launchd_fdopen(int);
+int launchd_getfd(launch_t);
+void launchd_close(launch_t, __typeof__(close) closefunc);
+
+launch_data_t launch_data_new_errno(int);
+bool launch_data_set_errno(launch_data_t, int);
+
+int launchd_msg_send(launch_t, launch_data_t);
+int launchd_msg_recv(launch_t, void (*)(launch_data_t, void *), void *);
+
+/* For LoginWindow.
+ *
+ * After this call, the task's bootstrap port is set to the per session launchd.
+ *
+ * This returns 1 on success (it used to return otherwise), and -1 on failure.
+ */
+#define LOAD_ONLY_SAFEMODE_LAUNCHAGENTS 1
+pid_t create_and_switch_to_per_session_launchd(const char * /* loginname */, int flags, ...);
+
+/* Also for LoginWindow.
+ *
+ * This is will load jobs at the LoginWindow prompt.
+ */
+void load_launchd_jobs_at_loginwindow_prompt(int flags, ...);
+
+
+/* batch jobs will be implicity re-enabled when the last application who
+ * disabled them exits.
+ *
+ * This API is really a hack to work around the lack of real-time APIs
+ * at the VFS layer.
+ */
+void launchd_batch_enable(bool);
+bool launchd_batch_query(void);
+
+/* For CoreProcesses
+ */
+
+#define SPAWN_VIA_LAUNCHD_STOPPED 0x0001
+
+struct spawn_via_launchd_attr {
+ uint64_t spawn_flags;
+ const char * spawn_path;
+ const char * spawn_chdir;
+ const char *const * spawn_env;
+ const mode_t * spawn_umask;
+ mach_port_t * spawn_observer_port;
+ const cpu_type_t * spawn_binpref;
+ size_t spawn_binpref_cnt;
+ void * spawn_quarantine;
+ const char * spawn_seatbelt_profile;
+ const uint64_t * spawn_seatbelt_flags;
+};
+
+#define spawn_via_launchd(a, b, c) _spawn_via_launchd(a, b, c, 2)
+pid_t _spawn_via_launchd(
+ const char *label,
+ const char *const *argv,
+ const struct spawn_via_launchd_attr *spawn_attrs,
+ int struct_version);
+
+kern_return_t mpm_wait(mach_port_t ajob, int *wstatus);
+
+kern_return_t mpm_uncork_fork(mach_port_t ajob);
+
+
+__END_DECLS
+
+#pragma GCC visibility pop
+
+
+#endif
Property changes on: branches/PR-5092682/launchd/src/launch_priv.h
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/PR-5898404/launchd/src/liblaunch_private.h:23681-23700
/branches/PR-5978442/launchd/src/liblaunch_private.h:23651-23701
Added: svn:eol-style
+ native
Modified: branches/PR-5092682/launchd/src/launchctl.c
===================================================================
--- branches/PR-5092682/launchd/src/launchctl.c 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/launchctl.c 2008-10-16 23:34:45 UTC (rev 23733)
@@ -20,12 +20,12 @@
static const char *const __rcs_file_version__ = "$Revision$";
-#include "liblaunch_public.h"
-#include "liblaunch_private.h"
-#include "libbootstrap_public.h"
-#include "libvproc_public.h"
-#include "libvproc_private.h"
-#include "libvproc_internal.h"
+#include "launch.h"
+#include "launch_priv.h"
+#include "bootstrap.h"
+#include "vproc.h"
+#include "vproc_priv.h"
+#include "vproc_internal.h"
#include <CoreFoundation/CoreFoundation.h>
#include <CoreFoundation/CFPriv.h>
Modified: branches/PR-5092682/launchd/src/launchd.c
===================================================================
--- branches/PR-5092682/launchd/src/launchd.c 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/launchd.c 2008-10-16 23:34:45 UTC (rev 23733)
@@ -69,11 +69,11 @@
#include <sched.h>
#include <pthread.h>
-#include "libbootstrap_public.h"
-#include "libvproc_public.h"
-#include "libvproc_private.h"
-#include "libvproc_internal.h"
-#include "liblaunch_public.h"
+#include "bootstrap.h"
+#include "vproc.h"
+#include "vproc_priv.h"
+#include "vproc_internal.h"
+#include "launch.h"
#include "launchd_runtime.h"
#include "launchd_core_logic.h"
Modified: branches/PR-5092682/launchd/src/launchd.h
===================================================================
--- branches/PR-5092682/launchd/src/launchd.h 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/launchd.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -22,8 +22,8 @@
#include <mach/mach.h>
#include <mach/port.h>
-#include "liblaunch_public.h"
-#include "libbootstrap_public.h"
+#include "launch.h"
+#include "bootstrap.h"
#include "launchd_runtime.h"
struct kevent;
Modified: branches/PR-5092682/launchd/src/launchd_core_logic.c
===================================================================
--- branches/PR-5092682/launchd/src/launchd_core_logic.c 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/launchd_core_logic.c 2008-10-16 23:34:45 UTC (rev 23733)
@@ -81,13 +81,13 @@
#include <quarantine.h>
#endif
-#include "liblaunch_public.h"
-#include "liblaunch_private.h"
-#include "liblaunch_internal.h"
-#include "libbootstrap_public.h"
-#include "libbootstrap_private.h"
-#include "libvproc_public.h"
-#include "libvproc_internal.h"
+#include "launch.h"
+#include "launch_priv.h"
+#include "launch_internal.h"
+#include "bootstrap.h"
+#include "bootstrap_priv.h"
+#include "vproc.h"
+#include "vproc_internal.h"
#include "reboot2.h"
@@ -96,8 +96,8 @@
#include "launchd_unix_ipc.h"
#include "protocol_vproc.h"
#include "protocol_vprocServer.h"
-#include "job_reply.h"
-#include "job_forward.h"
+#include "protocol_job_reply.h"
+#include "protocol_job_forward.h"
/*
* LAUNCHD_SAMPLE_TIMEOUT
@@ -1787,7 +1787,8 @@
}
void
-job_import_opaque(job_t j, const char *key, launch_data_t value)
+job_import_opaque(job_t j __attribute__((unused)),
+ const char *key, launch_data_t value __attribute__((unused)))
{
switch (key[0]) {
case 'q':
@@ -3123,7 +3124,9 @@
errno = psf(NULL, file2exec, NULL, &spattr, (char *const*)argv, environ);
job_log_error(j, LOG_ERR, "posix_spawn(\"%s\", ...)", file2exec);
+#if HAVE_SANDBOX
out_bad:
+#endif
_exit(EXIT_FAILURE);
}
Modified: branches/PR-5092682/launchd/src/launchd_core_logic.h
===================================================================
--- branches/PR-5092682/launchd/src/launchd_core_logic.h 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/launchd_core_logic.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -21,8 +21,8 @@
*/
#include <launchd_runtime.h>
-#include "libbootstrap_public.h"
-#include "liblaunch_public.h"
+#include "bootstrap.h"
+#include "launch.h"
typedef struct job_s *job_t;
typedef struct jobmgr_s *jobmgr_t;
Modified: branches/PR-5092682/launchd/src/launchd_ktrace.h
===================================================================
--- branches/PR-5092682/launchd/src/launchd_ktrace.h 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/launchd_ktrace.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -6,11 +6,13 @@
extern bool do_apple_internal_logging;
+#ifndef INTERNAL_ABI
#ifdef __i386__
#define INTERNAL_ABI __attribute__((regparm(3))) /* Enable register-passing for the first 3 arguments on i386. */
#else
#define INTERNAL_ABI
#endif
+#endif
#ifndef DBG_LAUNCHD
#define DBG_LAUNCHD 34
Modified: branches/PR-5092682/launchd/src/launchd_runtime.c
===================================================================
--- branches/PR-5092682/launchd/src/launchd_runtime.c 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/launchd_runtime.c 2008-10-16 23:34:45 UTC (rev 23733)
@@ -64,16 +64,16 @@
#include "launchd_internalServer.h"
#include "launchd_internal.h"
#include "notifyServer.h"
-#include "mach_excServer.h"
+#include "excServer.h"
/* We shouldn't be including these */
#include "launch.h"
#include "launchd.h"
#include "launchd_core_logic.h"
-#include "libvproc_public.h"
-#include "libvproc_private.h"
-#include "libvproc_internal.h"
-#include "job_reply.h"
+#include "vproc.h"
+#include "vproc_priv.h"
+#include "vproc_internal.h"
+#include "protocol_job_reply.h"
static mach_port_t ipc_port_set;
static mach_port_t demand_port_set;
@@ -901,7 +901,7 @@
} else if (notify_server_routine(Request)) {
return notify_server(Request, Reply);
} else {
- return mach_exc_server(Request, Reply);
+ return exc_server(Request, Reply);
}
}
@@ -1507,8 +1507,8 @@
}
kern_return_t
-catch_mach_exception_raise(mach_port_t exception_port __attribute__((unused)), mach_port_t thread, mach_port_t task,
- exception_type_t exception, mach_exception_data_t code, mach_msg_type_number_t codeCnt)
+catch_exception_raise(mach_port_t exception_port __attribute__((unused)), mach_port_t thread, mach_port_t task,
+ exception_type_t exception, exception_data_t code, mach_msg_type_number_t codeCnt)
{
pid_t p4t = -1;
@@ -1524,8 +1524,8 @@
}
kern_return_t
-catch_mach_exception_raise_state(mach_port_t exception_port __attribute__((unused)),
- exception_type_t exception, const mach_exception_data_t code, mach_msg_type_number_t codeCnt,
+catch_exception_raise_state(mach_port_t exception_port __attribute__((unused)),
+ exception_type_t exception, const exception_data_t code, mach_msg_type_number_t codeCnt,
int *flavor, const thread_state_t old_state, mach_msg_type_number_t old_stateCnt,
thread_state_t new_state, mach_msg_type_number_t *new_stateCnt)
{
@@ -1539,8 +1539,8 @@
}
kern_return_t
-catch_mach_exception_raise_state_identity(mach_port_t exception_port __attribute__((unused)), mach_port_t thread, mach_port_t task,
- exception_type_t exception, mach_exception_data_t code, mach_msg_type_number_t codeCnt,
+catch_exception_raise_state_identity(mach_port_t exception_port __attribute__((unused)), mach_port_t thread, mach_port_t task,
+ exception_type_t exception, exception_data_t code, mach_msg_type_number_t codeCnt,
int *flavor, thread_state_t old_state, mach_msg_type_number_t old_stateCnt,
thread_state_t new_state, mach_msg_type_number_t *new_stateCnt)
{
Modified: branches/PR-5092682/launchd/src/launchd_runtime.h
===================================================================
--- branches/PR-5092682/launchd/src/launchd_runtime.h 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/launchd_runtime.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -71,11 +71,13 @@
#endif
+#ifndef INTERNAL_ABI
#ifdef __i386__
#define INTERNAL_ABI __attribute__((regparm(3)))
#else
#define INTERNAL_ABI
#endif
+#endif
#define likely(x) __builtin_expect((bool)(x), true)
#define unlikely(x) __builtin_expect((bool)(x), false)
Modified: branches/PR-5092682/launchd/src/launchd_unix_ipc.c
===================================================================
--- branches/PR-5092682/launchd/src/launchd_unix_ipc.c 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/launchd_unix_ipc.c 2008-10-16 23:34:45 UTC (rev 23733)
@@ -47,8 +47,8 @@
#include <paths.h>
#include <string.h>
-#include "liblaunch_public.h"
-#include "liblaunch_private.h"
+#include "launch.h"
+#include "launch_priv.h"
#include "launchd.h"
#include "launchd_runtime.h"
#include "launchd_core_logic.h"
Modified: branches/PR-5092682/launchd/src/launchd_unix_ipc.h
===================================================================
--- branches/PR-5092682/launchd/src/launchd_unix_ipc.h 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/launchd_unix_ipc.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -24,7 +24,7 @@
#include "launchd_runtime.h"
#include "launchd_core_logic.h"
-#include "liblaunch_private.h"
+#include "launch_priv.h"
struct conncb {
kq_callback kqconn_callback;
Modified: branches/PR-5092682/launchd/src/libbootstrap.c
===================================================================
--- branches/PR-5092682/launchd/src/libbootstrap.c 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/libbootstrap.c 2008-10-16 23:34:45 UTC (rev 23733)
@@ -19,12 +19,12 @@
*/
#include "config.h"
-#include "libbootstrap_public.h"
-#include "libbootstrap_private.h"
+#include "launch.h"
+#include "launch_priv.h"
+#include "bootstrap_priv.h"
+#include "vproc.h"
+#include "vproc_priv.h"
-#include "libvproc_public.h"
-#include "libvproc_private.h"
-
#include <mach/mach.h>
#include <mach/vm_map.h>
#include <sys/types.h>
Deleted: branches/PR-5092682/launchd/src/libbootstrap_private.h
===================================================================
--- branches/PR-5092682/launchd/src/libbootstrap_private.h 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/libbootstrap_private.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -1,49 +0,0 @@
-#ifndef _BOOTSTRAP_PRIVATE_H_
-#define _BOOTSTRAP_PRIVATE_H_
-/*
- * Copyright (c) 2007 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#include <servers/bootstrap.h>
-#include <sys/types.h>
-
-__BEGIN_DECLS
-
-#pragma GCC visibility push(default)
-
-#define BOOTSTRAP_PER_PID_SERVICE 0x1
-#define BOOTSTRAP_ALLOW_LOOKUP 0x2
-#define BOOTSTRAP_DENY_JOB_CREATION 0x4
-#define BOOTSTRAP_PRIVILEGED_SERVER 0x8
-
-kern_return_t bootstrap_register2(mach_port_t bp, name_t service_name, mach_port_t sp, uint64_t flags);
-
-kern_return_t bootstrap_look_up2(mach_port_t bp, const name_t service_name, mach_port_t *sp, pid_t target_pid, uint64_t flags);
-
-kern_return_t bootstrap_check_in2(mach_port_t bp, const name_t service_name, mach_port_t *sp, uint64_t flags);
-
-kern_return_t bootstrap_look_up_per_user(mach_port_t bp, const name_t service_name, uid_t target_user, mach_port_t *sp);
-
-kern_return_t bootstrap_set_policy(mach_port_t bp, pid_t target_pid, uint64_t flags, const char *target_service);
-
-#pragma GCC visibility pop
-
-__END_DECLS
-
-#endif
Deleted: branches/PR-5092682/launchd/src/libbootstrap_public.h
===================================================================
--- branches/PR-5092682/launchd/src/libbootstrap_public.h 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/libbootstrap_public.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -1,355 +0,0 @@
-#ifndef _BOOTSTRAP_H_
-#define _BOOTSTRAP_H_
-/*
- * Copyright (c) 1999-2005 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-/*
- * bootstrap -- fundamental service initiator and port server
- * Mike DeMoney, NeXT, Inc.
- * Copyright, 1990. All rights reserved.
- */
-
-/*
- * Interface: Bootstrap server
- *
- * The bootstrap server is the first user-mode task initiated by the Mach
- * kernel at system boot time. The bootstrap server provides two services,
- * it initiates other system tasks, and manages a table of name-port bindings
- * for fundamental system services (e.g. lookupd, Window Manager, etc...).
- *
- * Name-port bindings can be established with the bootstrap server by either
- * of two mechanisms:
- *
- * 1. The binding can be indicated, in advance of the service that backs it
- * being available, via a "service create" request. In this case, bootstrap
- * will immediately create a port and bind the indicated name with that port.
- * At a later time, a service may "checkin" for the name-port
- * binding and will be returned receive rights for the bound port. Lookup's
- * on bindings created by this mechanism will return send rights to the port,
- * even if no service has "checked-in". In this case, requests sent to the
- * bound port will be queued until a server has checked-in and can satisfy the
- * request.
- *
- * 2. Bindings can be established dynamically via a "register" request. In
- * this case, the register request provides bootstrap with a name and send
- * rights for a port. Bootstrap will provide send rights for the bound port
- * to any requestor via the lookup request.
- *
- * Bootstrap provides its service port to descendant tasks via the Mach
- * "bootstrap" special task port. All direct descendants of bootstrap receive
- * a "privileged" bootstrap service port. System services that initiate
- * untrusted tasks should replace the Mach bootstrap task special port with
- * a subset bootstrap port to prevent them from infecting the namespace.
- *
- * The bootstrap server creates a "backup" port for each service that it
- * creates. This is used to detect when a checked out service is no longer
- * being served. The bootstrap server regains all rights to the port and
- * it is marked available for check-out again. This allows crashed servers to
- * resume service to previous clients. Lookup's on this named port will
- * continue to be serviced by bootstrap while holding receive rights for the
- * bound port. A client may detect that the service is inactive via the
- * bootstrap status request. If an inactive service re-registers rather
- * than "checking-in" the original bound port is destroyed.
- *
- * The status of a named service may be obtained via the "status" request.
- * A service is "active" if a name-port binding exists and receive rights
- * to the bound port are held by a task other than bootstrap.
- *
- * The bootstrap server may also (re)start server processes associated with
- * with a set of services. The definition of the server process is done
- * through the "create server" request. The server will be launched in the
- * same bootstrap context in which it was registered.
- */
-#include <AvailabilityMacros.h>
-#include <mach/std_types.h>
-#include <mach/message.h>
-#include <sys/types.h>
-#include <sys/cdefs.h>
-#include <stdbool.h>
-
-__BEGIN_DECLS
-
-#pragma GCC visibility push(default)
-
-#define BOOTSTRAP_MAX_NAME_LEN 128
-#define BOOTSTRAP_MAX_CMD_LEN 512
-
-typedef char name_t[BOOTSTRAP_MAX_NAME_LEN];
-typedef char cmd_t[BOOTSTRAP_MAX_CMD_LEN];
-typedef name_t *name_array_t;
-typedef int bootstrap_status_t;
-typedef bootstrap_status_t *bootstrap_status_array_t;
-
-typedef boolean_t *bool_array_t;
-
-#define BOOTSTRAP_MAX_LOOKUP_COUNT 20
-
-#define BOOTSTRAP_SUCCESS 0
-#define BOOTSTRAP_NOT_PRIVILEGED 1100
-#define BOOTSTRAP_NAME_IN_USE 1101
-#define BOOTSTRAP_UNKNOWN_SERVICE 1102
-#define BOOTSTRAP_SERVICE_ACTIVE 1103
-#define BOOTSTRAP_BAD_COUNT 1104
-#define BOOTSTRAP_NO_MEMORY 1105
-
-#define BOOTSTRAP_STATUS_INACTIVE 0
-#define BOOTSTRAP_STATUS_ACTIVE 1
-#define BOOTSTRAP_STATUS_ON_DEMAND 2
-
-/*
- * After main() starts, it is safe to assume that this variable is always set.
- */
-extern mach_port_t bootstrap_port;
-
-/*
- * bootstrap_create_server()
- *
- * Declares a server that mach_init will re-spawn within the specified
- * bootstrap context. The server is considered already "active"
- * (i.e. will not be re-spawned) until the returned server_port is
- * deallocated.
- *
- * In the meantime, services can be declared against the server,
- * by using the server_port as the privileged bootstrap target of
- * subsequent bootstrap_create_service() calls.
- *
- * When mach_init re-spawns the server, its task bootstrap port
- * is set to the privileged sever_port. Through this special
- * bootstrap port, it can access all of parent bootstrap's context
- * (and all services are created in the parent's namespace). But
- * all additional service declarations (and declaration removals)
- * will be associated with this particular server.
- *
- * Only a holder of the server_port privilege bootstrap port can
- * check in or register over those services.
- *
- * When all services associated with a server are deleted, and the server
- * exits, it will automatically be deleted itself.
- *
- * If the server is declared "on_demand," then a non-running server
- * will be re-launched on first use of one of the service ports
- * registered against it. Otherwise, it will be re-launched
- * immediately upon exiting (whether any client is actively using
- * any of the service ports or not).
- *
- * Errors: Returns appropriate kernel errors on rpc failure.
- * Returns BOOTSTRAP_NOT_PRIVILEGED, bootstrap or uid invalid.
- */
-kern_return_t bootstrap_create_server(
- mach_port_t bp,
- cmd_t server_cmd,
- uid_t server_uid,
- boolean_t on_demand,
- mach_port_t *server_port);
-
-/*
- * bootstrap_subset()
- *
- * Returns a new port to use as a bootstrap port. This port behaves
- * exactly like the previous bootstrap_port, except that ports dynamically
- * registered via bootstrap_register() are available only to users of this
- * specific subset_port. Lookups on the subset_port will return ports
- * registered with this port specifically, and ports registered with
- * ancestors of this subset_port. Duplications of services already
- * registered with an ancestor port may be registered with the subset port
- * are allowed. Services already advertised may then be effectively removed
- * by registering PORT_NULL for the service.
- * When it is detected that the requestor_port is destroyed the subset
- * port and all services advertized by it are destroyed as well.
- *
- * Errors: Returns appropriate kernel errors on rpc failure.
- */
-kern_return_t bootstrap_subset(
- mach_port_t bp,
- mach_port_t requestor_port,
- mach_port_t *subset_port);
-
-/*
- * bootstrap_unprivileged()
- *
- * Given a bootstrap port, return its unprivileged equivalent. If
- * the port is already unprivileged, another reference to the same
- * port is returned.
- *
- * This is most often used by servers, which are launched with their
- * bootstrap port set to the privileged port for the server, to get
- * an unprivileged version of the same port for use by its unprivileged
- * children (or any offspring that it does not want to count as part
- * of the "server" for mach_init registration and re-launch purposes).
- *
- * Native launchd jobs are always started with an unprivileged port.
- */
-kern_return_t bootstrap_unprivileged(
- mach_port_t bp,
- mach_port_t *unpriv_port)
- AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5;
-
-/*
- * bootstrap_parent()
- *
- * Given a bootstrap subset port, return the parent bootstrap port.
- * If the specified bootstrap port is already the root subset,
- * the same port will be returned. Much like "." and ".." are the same
- * in the file system name space for the root directory ("/").
- *
- * Errors:
- * Returns BOOTSTRAP_NOT_PRIVILEGED if the caller is not running
- * with an effective user id of root (as determined by the security
- * token in the message trailer).
- */
-kern_return_t bootstrap_parent(
- mach_port_t bp,
- mach_port_t *parent_port);
-
-/*
- * bootstrap_register()
- *
- * Registers a send right for service_port with the service identified by
- * service_name. Attempts to register a service where an active binding
- * already exists are rejected.
- *
- * If the service was previously declared with bootstrap_create_service(),
- * but is not currently active, this call can be used to undeclare the
- * service. The bootstrap port used must have sufficient privilege to
- * do so. (Registering MACH_PORT_NULL is especially useful for shutting
- * down declared services).
- *
- * This API is deprecated. Old scenarios and recommendations:
- *
- * 1) Code that used to call bootstrap_check_in() and then bootstrap_register()
- * can now always call bootstrap_check_in().
- *
- * 2) If the code was registering a well known name, please switch to launchd.
- *
- * 3) If the code was registering a dynamically generated string and passing
- * the string to other applications, please rewrite the code to send a Mach
- * send-right directly.
- *
- * 4) If the launchd job maintained an optional Mach service, please reserve
- * the name with launchd and control the presense of the service through
- * ownership of the Mach receive right like so.
- *
- * <key>MachServices</key>
- * <dict>
- * <key>com.apple.windowserver</key>
- * <true/>
- * <key>com.apple.windowserver.active</key>
- * <dict>
- * <key>HideUntilCheckIn</key>
- * <true/>
- * </dict>
- * </dict>
- *
- *
- * Errors: Returns appropriate kernel errors on rpc failure.
- * Returns BOOTSTRAP_NOT_PRIVILEGED, if request directed to
- * bootstrap port without privilege.
- * Returns BOOTSTRAP_NAME_IN_USE, if service has already been
- * register or checked-in.
- */
-AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5
-kern_return_t
-bootstrap_register(mach_port_t bp, name_t service_name, mach_port_t sp);
-
-/*
- * bootstrap_create_service()
- *
- * Creates a service named "service_name" and returns a send right to that
- * port in "service_port." The port may later be checked in as if this
- * port were configured in the bootstrap configuration file.
- *
- * This API is deprecated. Please call bootstrap_check_in() instead.
- *
- * Errors: Returns appropriate kernel errors on rpc failure.
- * Returns BOOTSTRAP_SERVICE_ACTIVE, if service already exists.
- */
-#ifdef AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
-AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
-#endif
-kern_return_t
-bootstrap_create_service(mach_port_t bp, name_t service_name, mach_port_t *sp);
-
-/*
- * bootstrap_check_in()
- *
- * Returns the receive right for the service named by service_name. The
- * service must have previously been declared in this bootstrap context via
- * a call to bootstrap_create_service(). Attempts to check_in a service
- * which is already active are not allowed.
- *
- * If the service was declared as being associated with a server, the
- * check_in must come from the server's privileged port (server_port).
- *
- * Errors: Returns appropriate kernel errors on rpc failure.
- * Returns BOOTSTRAP_UNKNOWN_SERVICE, if service does not exist.
- * Returns BOOTSTRAP_NOT_PRIVILEGED, if request directed to
- * bootstrap port without privilege.
- * Returns BOOTSTRAP_SERVICE_ACTIVE, if service has already been
- * registered or checked-in.
- */
-kern_return_t bootstrap_check_in(
- mach_port_t bp,
- const name_t service_name,
- mach_port_t *sp);
-
-/*
- * bootstrap_look_up()
- *
- * Returns a send right for the service port declared/registered under the
- * name service_name. The service is not guaranteed to be active. Use the
- * bootstrap_status call to determine the status of the service.
- *
- * Errors: Returns appropriate kernel errors on rpc failure.
- * Returns BOOTSTRAP_UNKNOWN_SERVICE, if service does not exist.
- */
-kern_return_t bootstrap_look_up(
- mach_port_t bp,
- const name_t service_name,
- mach_port_t *sp);
-
-/*
- * bootstrap_status()
- *
- * In practice, this call was used to preflight whether the following two
- * APIs would succeed.
- *
- * bootstrap_look_up()
- * bootstrap_check_in()
- *
- * Please don't bother. Just call the above two APIs directly and check
- * for failure.
- */
-kern_return_t bootstrap_status(
- mach_port_t bp,
- name_t service_name,
- bootstrap_status_t *service_active)
- AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5;
-
-/* bootstrap_strerror()
- *
- * Translate a return value from the bootstrap_*() APIs to a string.
- */
-const char *bootstrap_strerror(kern_return_t r) __attribute__((__nothrow__, __pure__, __warn_unused_result__));
-
-#pragma GCC visibility pop
-
-__END_DECLS
-
-#endif
Modified: branches/PR-5092682/launchd/src/liblaunch.c
===================================================================
--- branches/PR-5092682/launchd/src/liblaunch.c 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/liblaunch.c 2008-10-16 23:34:45 UTC (rev 23733)
@@ -19,9 +19,9 @@
*/
#include "config.h"
-#include "liblaunch_public.h"
-#include "liblaunch_private.h"
-#include "liblaunch_internal.h"
+#include "launch.h"
+#include "launch_priv.h"
+#include "launch_internal.h"
#include "launchd_ktrace.h"
#include <mach/mach.h>
@@ -57,10 +57,10 @@
(__DARWIN_ALIGN32(sizeof(struct cmsghdr)) + (l))
#endif
-#include "libbootstrap_public.h"
-#include "libvproc_public.h"
-#include "libvproc_private.h"
-#include "libvproc_internal.h"
+#include "bootstrap.h"
+#include "vproc.h"
+#include "vproc_priv.h"
+#include "vproc_internal.h"
/* __OSBogusByteSwap__() must not really exist in the symbol namespace
* in order for the following to generate an error at build time.
Deleted: branches/PR-5092682/launchd/src/liblaunch_internal.h
===================================================================
--- branches/PR-5092682/launchd/src/liblaunch_internal.h 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/liblaunch_internal.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -1,30 +0,0 @@
-#ifndef _LAUNCH_INTERNAL_H_
-#define _LAUNCH_INTERNAL_H_
-/*
- * Copyright (c) 2007 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#pragma GCC visibility push(default)
-
-size_t launch_data_pack(launch_data_t d, void *where, size_t len, int *fd_where, size_t *fdslotsleft);
-launch_data_t launch_data_unpack(void *data, size_t data_size, int *fds, size_t fd_cnt, size_t *data_offset, size_t *fdoffset);
-
-#pragma GCC visibility pop
-
-#endif
Deleted: branches/PR-5092682/launchd/src/liblaunch_private.h
===================================================================
--- branches/PR-5092682/launchd/src/liblaunch_private.h 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/liblaunch_private.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -1,141 +0,0 @@
-/*
- * Copyright (c) 2005 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-#ifndef _LAUNCH_PRIV_H_
-#define _LAUNCH_PRIV_H_
-
-#include <mach/mach.h>
-#include <sys/types.h>
-#include <launch.h>
-#include <unistd.h>
-#include <paths.h>
-
-#pragma GCC visibility push(default)
-
-__BEGIN_DECLS
-
-#define LAUNCH_KEY_SETUSERENVIRONMENT "SetUserEnvironment"
-#define LAUNCH_KEY_UNSETUSERENVIRONMENT "UnsetUserEnvironment"
-#define LAUNCH_KEY_SHUTDOWN "Shutdown"
-#define LAUNCH_KEY_SINGLEUSER "SingleUser"
-#define LAUNCH_KEY_GETRESOURCELIMITS "GetResourceLimits"
-#define LAUNCH_KEY_SETRESOURCELIMITS "SetResourceLimits"
-#define LAUNCH_KEY_GETRUSAGESELF "GetResourceUsageSelf"
-#define LAUNCH_KEY_GETRUSAGECHILDREN "GetResourceUsageChildren"
-
-#define LAUNCHD_SOCKET_ENV "LAUNCHD_SOCKET"
-#define LAUNCHD_SOCK_PREFIX _PATH_VARTMP "launchd"
-#define LAUNCHD_TRUSTED_FD_ENV "__LAUNCHD_FD"
-#define LAUNCHD_ASYNC_MSG_KEY "_AsyncMessage"
-#define LAUNCH_KEY_BATCHCONTROL "BatchControl"
-#define LAUNCH_KEY_BATCHQUERY "BatchQuery"
-#define LAUNCHD_DO_APPLE_INTERNAL_LOGGING "__DoAppleInternalLogging__"
-
-#define LAUNCH_JOBKEY_TRANSACTIONCOUNT "TransactionCount"
-#define LAUNCH_JOBKEY_QUARANTINEDATA "QuarantineData"
-#define LAUNCH_JOBKEY_SANDBOXPROFILE "SandboxProfile"
-#define LAUNCH_JOBKEY_SANDBOXFLAGS "SandboxFlags"
-#define LAUNCH_JOBKEY_SANDBOX_NAMED "Named"
-
-#define LAUNCH_JOBKEY_ENTERKERNELDEBUGGERBEFOREKILL "EnterKernelDebuggerBeforeKill"
-#define LAUNCH_JOBKEY_PERJOBMACHSERVICES "PerJobMachServices"
-#define LAUNCH_JOBKEY_SERVICEIPC "ServiceIPC"
-#define LAUNCH_JOBKEY_BINARYORDERPREFERENCE "BinaryOrderPreference"
-#define LAUNCH_JOBKEY_MACHEXCEPTIONHANDLER "MachExceptionHandler"
-
-#define LAUNCH_JOBKEY_MACH_KUNCSERVER "kUNCServer"
-#define LAUNCH_JOBKEY_MACH_EXCEPTIONSERVER "ExceptionServer"
-#define LAUNCH_JOBKEY_MACH_TASKSPECIALPORT "TaskSpecialPort"
-#define LAUNCH_JOBKEY_MACH_HOSTSPECIALPORT "HostSpecialPort"
-#define LAUNCH_JOBKEY_MACH_ENTERKERNELDEBUGGERONCLOSE "EnterKernelDebuggerOnClose"
-
-typedef struct _launch *launch_t;
-
-launch_t launchd_fdopen(int);
-int launchd_getfd(launch_t);
-void launchd_close(launch_t, __typeof__(close) closefunc);
-
-launch_data_t launch_data_new_errno(int);
-bool launch_data_set_errno(launch_data_t, int);
-
-int launchd_msg_send(launch_t, launch_data_t);
-int launchd_msg_recv(launch_t, void (*)(launch_data_t, void *), void *);
-
-/* For LoginWindow.
- *
- * After this call, the task's bootstrap port is set to the per session launchd.
- *
- * This returns 1 on success (it used to return otherwise), and -1 on failure.
- */
-#define LOAD_ONLY_SAFEMODE_LAUNCHAGENTS 1
-pid_t create_and_switch_to_per_session_launchd(const char * /* loginname */, int flags, ...);
-
-/* Also for LoginWindow.
- *
- * This is will load jobs at the LoginWindow prompt.
- */
-void load_launchd_jobs_at_loginwindow_prompt(int flags, ...);
-
-
-/* batch jobs will be implicity re-enabled when the last application who
- * disabled them exits.
- *
- * This API is really a hack to work around the lack of real-time APIs
- * at the VFS layer.
- */
-void launchd_batch_enable(bool);
-bool launchd_batch_query(void);
-
-/* For CoreProcesses
- */
-
-#define SPAWN_VIA_LAUNCHD_STOPPED 0x0001
-
-struct spawn_via_launchd_attr {
- uint64_t spawn_flags;
- const char * spawn_path;
- const char * spawn_chdir;
- const char *const * spawn_env;
- const mode_t * spawn_umask;
- mach_port_t * spawn_observer_port;
- const cpu_type_t * spawn_binpref;
- size_t spawn_binpref_cnt;
- void * spawn_quarantine;
- const char * spawn_seatbelt_profile;
- const uint64_t * spawn_seatbelt_flags;
-};
-
-#define spawn_via_launchd(a, b, c) _spawn_via_launchd(a, b, c, 2)
-pid_t _spawn_via_launchd(
- const char *label,
- const char *const *argv,
- const struct spawn_via_launchd_attr *spawn_attrs,
- int struct_version);
-
-kern_return_t mpm_wait(mach_port_t ajob, int *wstatus);
-
-kern_return_t mpm_uncork_fork(mach_port_t ajob);
-
-
-__END_DECLS
-
-#pragma GCC visibility pop
-
-
-#endif
Deleted: branches/PR-5092682/launchd/src/liblaunch_public.h
===================================================================
--- branches/PR-5092682/launchd/src/liblaunch_public.h 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/liblaunch_public.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -1,234 +0,0 @@
-/*
- * Copyright (c) 2005 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-#ifndef _LAUNCH_H_
-#define _LAUNCH_H_
-
-#include <mach/mach.h>
-#include <sys/cdefs.h>
-#include <stddef.h>
-#include <stdbool.h>
-
-#pragma GCC visibility push(default)
-
-__BEGIN_DECLS
-
-#ifdef __GNUC__
-#define __ld_normal __attribute__((__nothrow__))
-#define __ld_setter __attribute__((__nothrow__, __nonnull__))
-#define __ld_getter __attribute__((__nothrow__, __nonnull__, __pure__, __warn_unused_result__))
-#define __ld_iterator(x, y) __attribute__((__nonnull__(x, y)))
-#define __ld_allocator __attribute__((__nothrow__, __malloc__, __nonnull__, __warn_unused_result__))
-#else
-#define __ld_normal
-#define __ld_setter
-#define __ld_getter
-#define __ld_iterator(x, y)
-#define __ld_allocator
-#endif
-
-
-#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_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_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_POLICIES "Policies"
-#define LAUNCH_JOBKEY_ENABLETRANSACTIONS "EnableTransactions"
-
-#define LAUNCH_JOBPOLICY_DENYCREATINGOTHERJOBS "DenyCreatingOtherJobs"
-
-#define LAUNCH_JOBINETDCOMPATIBILITY_WAIT "Wait"
-
-#define LAUNCH_JOBKEY_MACH_RESETATCLOSE "ResetAtClose"
-#define LAUNCH_JOBKEY_MACH_HIDEUNTILCHECKIN "HideUntilCheckIn"
-
-#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_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_NODENAME "SockNodeName"
-#define LAUNCH_JOBSOCKETKEY_SERVICENAME "SockServiceName"
-#define LAUNCH_JOBSOCKETKEY_FAMILY "SockFamily"
-#define LAUNCH_JOBSOCKETKEY_PROTOCOL "SockProtocol"
-#define LAUNCH_JOBSOCKETKEY_MULTICASTGROUP "MulticastGroup"
-
-typedef struct _launch_data *launch_data_t;
-
-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;
-
-launch_data_t launch_data_alloc(launch_data_type_t) __ld_allocator;
-launch_data_t launch_data_copy(launch_data_t) __ld_allocator;
-launch_data_type_t launch_data_get_type(const launch_data_t) __ld_getter;
-void launch_data_free(launch_data_t) __ld_setter;
-
-/* Generic Dictionaries */
-/* the value should not be changed while iterating */
-bool launch_data_dict_insert(launch_data_t, const launch_data_t, const char *) __ld_setter;
-launch_data_t launch_data_dict_lookup(const launch_data_t, const char *) __ld_getter;
-bool launch_data_dict_remove(launch_data_t, const char *) __ld_setter;
-void launch_data_dict_iterate(const launch_data_t, void (*)(const launch_data_t, const char *, void *), void *) __ld_iterator(1, 2);
-size_t launch_data_dict_get_count(const launch_data_t) __ld_getter;
-
-/* Generic Arrays */
-bool launch_data_array_set_index(launch_data_t, const launch_data_t, size_t) __ld_setter;
-launch_data_t launch_data_array_get_index(const launch_data_t, size_t) __ld_getter;
-size_t launch_data_array_get_count(const launch_data_t) __ld_getter;
-
-launch_data_t launch_data_new_fd(int) __ld_allocator;
-launch_data_t launch_data_new_machport(mach_port_t) __ld_allocator;
-launch_data_t launch_data_new_integer(long long) __ld_allocator;
-launch_data_t launch_data_new_bool(bool) __ld_allocator;
-launch_data_t launch_data_new_real(double) __ld_allocator;
-launch_data_t launch_data_new_string(const char *) __ld_allocator;
-launch_data_t launch_data_new_opaque(const void *, size_t) __ld_allocator;
-
-bool launch_data_set_fd(launch_data_t, int) __ld_setter;
-bool launch_data_set_machport(launch_data_t, mach_port_t) __ld_setter;
-bool launch_data_set_integer(launch_data_t, long long) __ld_setter;
-bool launch_data_set_bool(launch_data_t, bool) __ld_setter;
-bool launch_data_set_real(launch_data_t, double) __ld_setter;
-bool launch_data_set_string(launch_data_t, const char *) __ld_setter;
-bool launch_data_set_opaque(launch_data_t, const void *, size_t) __ld_setter;
-
-int launch_data_get_fd(const launch_data_t) __ld_getter;
-mach_port_t launch_data_get_machport(const launch_data_t) __ld_getter;
-long long launch_data_get_integer(const launch_data_t) __ld_getter;
-bool launch_data_get_bool(const launch_data_t) __ld_getter;
-double launch_data_get_real(const launch_data_t) __ld_getter;
-const char * launch_data_get_string(const launch_data_t) __ld_getter;
-void * launch_data_get_opaque(const launch_data_t) __ld_getter;
-size_t launch_data_get_opaque_size(const launch_data_t) __ld_getter;
-int launch_data_get_errno(const launch_data_t) __ld_getter;
-
-
-/* launch_get_fd()
- *
- * Use this to get the FD if you're doing asynchronous I/O with select(),
- * poll() or kevent().
- */
-int launch_get_fd(void) __ld_normal;
-
-/* launch_msg()
- *
- * Use this API to send and receive messages.
- * Calling launch_msg() with no message to send is a valid way to get
- * asynchronously received messages.
- *
- * If a message was to be sent, it returns NULL and errno on failure.
- *
- * If no messages were to be sent, it returns NULL and errno is set to zero if
- * no more asynchronous messages are available.
- */
-launch_data_t launch_msg(const launch_data_t) __ld_normal;
-
-__END_DECLS
-
-#pragma GCC visibility pop
-
-#endif
Modified: branches/PR-5092682/launchd/src/libvproc.c
===================================================================
--- branches/PR-5092682/launchd/src/libvproc.c 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/libvproc.c 2008-10-16 23:34:45 UTC (rev 23733)
@@ -19,9 +19,9 @@
*/
#include "config.h"
-#include "libvproc_public.h"
-#include "libvproc_private.h"
-#include "libvproc_internal.h"
+#include "vproc.h"
+#include "vproc_priv.h"
+#include "vproc_internal.h"
#include <mach/mach.h>
#include <mach/vm_map.h>
@@ -38,9 +38,9 @@
#include <quarantine.h>
#endif
-#include "liblaunch_public.h"
-#include "liblaunch_private.h"
-#include "liblaunch_internal.h"
+#include "launch.h"
+#include "launch_priv.h"
+#include "launch_internal.h"
#include "launchd_ktrace.h"
#include "protocol_vproc.h"
Deleted: branches/PR-5092682/launchd/src/libvproc_internal.h
===================================================================
--- branches/PR-5092682/launchd/src/libvproc_internal.h 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/libvproc_internal.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -1,115 +0,0 @@
-#ifndef _VPROC_INTERNAL_H_
-#define _VPROC_INTERNAL_H_
-/*
- * Copyright (c) 2006-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#include <mach/mach.h>
-#include <sys/queue.h>
-#include <sys/time.h>
-#include <stdarg.h>
-#include "liblaunch_public.h"
-#include "libbootstrap_public.h"
-#include "libvproc_public.h"
-
-typedef char * _internal_string_t;
-typedef char * logmsg_t;
-typedef pid_t * pid_array_t;
-typedef mach_port_t vproc_mig_t;
-
-#define VPROC_SHMEM_EXITING 0x1
-
-struct vproc_shmem_s {
- int32_t vp_shmem_transaction_cnt;
- int32_t vp_shmem_standby_cnt;
- uint32_t vp_shmem_standby_timeout;
- int32_t vp_shmem_flags;
-};
-
-#ifdef protocol_vproc_MSG_COUNT
-/* HACK */
-#include "launchd_core_logic.h"
-#endif
-
-#define VPROC_ERR_TRY_PER_USER 1099
-
-#pragma GCC visibility push(default)
-
-vproc_err_t _vprocmgr_init(const char *session_type);
-vproc_err_t _vproc_post_fork_ping(void);
-
-#define SPAWN_HAS_PATH 0x0001
-#define SPAWN_HAS_WDIR 0x0002
-#define SPAWN_HAS_UMASK 0x0004
-#define SPAWN_WANTS_WAIT4DEBUGGER 0x0008
-
-kern_return_t
-_vproc_grab_subset(mach_port_t bp, mach_port_t *reqport, mach_port_t *rcvright, launch_data_t *outval,
- mach_port_array_t *ports, mach_msg_type_number_t *portCnt);
-
-kern_return_t _vprocmgr_getsocket(name_t);
-
-
-struct logmsg_s {
- union {
- STAILQ_ENTRY(logmsg_s) sqe;
- uint64_t __pad;
- };
- int64_t when;
- pid_t from_pid;
- pid_t about_pid;
- uid_t sender_uid;
- gid_t sender_gid;
- int err_num;
- int pri;
- union {
- const char *from_name;
- uint64_t from_name_offset;
- };
- union {
- const char *about_name;
- uint64_t about_name_offset;
- };
- union {
- const char *session_name;
- uint64_t session_name_offset;
- };
- union {
- const char *msg;
- uint64_t msg_offset;
- };
- uint64_t obj_sz;
- char data[0];
-};
-
-
-vproc_err_t _vprocmgr_log_forward(mach_port_t mp, void *data, size_t len);
-
-
-kern_return_t
-bootstrap_info(
- mach_port_t bp,
- name_array_t *service_names,
- mach_msg_type_number_t *service_namesCnt,
- bootstrap_status_array_t *service_active,
- mach_msg_type_number_t *service_activeCnt);
-
-#pragma GCC visibility pop
-
-#endif
Deleted: branches/PR-5092682/launchd/src/libvproc_private.h
===================================================================
--- branches/PR-5092682/launchd/src/libvproc_private.h 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/libvproc_private.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -1,100 +0,0 @@
-#ifndef _VPROC_PRIVATE_H_
-#define _VPROC_PRIVATE_H_
-/*
- * Copyright (c) 2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#include <Availability.h>
-#include <sys/types.h>
-#include <sys/cdefs.h>
-#include <sys/syslog.h>
-#include <sys/time.h>
-#include <stdbool.h>
-#include <launch.h>
-
-#define VPROC_HAS_TRANSACTIONS 1
-
-__BEGIN_DECLS
-
-#pragma GCC visibility push(default)
-
-/* DO NOT use this. This is a hack for 'launchctl' */
-#define VPROC_MAGIC_UNLOAD_SIGNAL 0x4141504C
-/* DO NOT use this. This is a hack for 'loginwindow' */
-#define VPROC_MAGIC_TRYKILL_SIGNAL 0x6161706C
-
-typedef enum {
- VPROC_GSK_LAST_EXIT_STATUS = 1,
- VPROC_GSK_GLOBAL_ON_DEMAND,
- VPROC_GSK_MGR_UID,
- VPROC_GSK_MGR_PID,
- VPROC_GSK_IS_MANAGED,
- VPROC_GSK_BASIC_KEEPALIVE,
- VPROC_GSK_START_INTERVAL,
- VPROC_GSK_IDLE_TIMEOUT,
- VPROC_GSK_EXIT_TIMEOUT,
- VPROC_GSK_ENVIRONMENT,
- VPROC_GSK_ALLJOBS,
- VPROC_GSK_GLOBAL_LOG_MASK,
- VPROC_GSK_GLOBAL_UMASK,
- VPROC_GSK_ABANDON_PROCESS_GROUP,
- VPROC_GSK_TRANSACTIONS_ENABLED
-} vproc_gsk_t;
-
-vproc_err_t vproc_swap_integer(vproc_t vp, vproc_gsk_t key, int64_t *inval, int64_t *outval);
-vproc_err_t vproc_swap_complex(vproc_t vp, vproc_gsk_t key, launch_data_t inval, launch_data_t *outval);
-
-vproc_err_t _vproc_get_last_exit_status(int *wstatus);
-vproc_err_t _vproc_set_global_on_demand(bool val);
-
-typedef void (*_vprocmgr_log_drain_callback_t)(struct timeval *when, pid_t from_pid, pid_t about_pid, uid_t sender_uid, gid_t sender_gid, int priority, const char *from_name, const char *about_name, const char *session_name, const char *msg);
-
-vproc_err_t _vprocmgr_log_drain(vproc_t vp, pthread_mutex_t *optional_mutex_around_callback, _vprocmgr_log_drain_callback_t func);
-
-vproc_err_t _vproc_send_signal_by_label(const char *label, int sig);
-vproc_err_t _vproc_kickstart_by_label(const char *label, pid_t *out_pid, mach_port_t *out_port_name);
-vproc_err_t _vproc_wait_by_label(const char *label, int *out_wstatus);
-
-void _vproc_log(int pri, const char *msg, ...) __attribute__((format(printf, 2, 3)));
-void _vproc_log_error(int pri, const char *msg, ...) __attribute__((format(printf, 2, 3)));
-void _vproc_logv(int pri, int err, const char *msg, va_list ap) __attribute__((format(printf, 3, 0)));
-
-#define VPROCMGR_SESSION_LOGINWINDOW "LoginWindow"
-#define VPROCMGR_SESSION_BACKGROUND "Background"
-#define VPROCMGR_SESSION_AQUA "Aqua"
-#define VPROCMGR_SESSION_STANDARDIO "StandardIO"
-#define VPROCMGR_SESSION_SYSTEM "System"
-
-vproc_err_t _vprocmgr_move_subset_to_user(uid_t target_user, const char *session_type);
-
-void _vproc_standby_begin(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
-void _vproc_standby_end(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
-size_t _vproc_standby_count(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
-size_t _vproc_standby_timeout(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
-
-void _vproc_transaction_try_exit(int status) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
-void _vproc_transaction_begin(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
-void _vproc_transaction_end(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
-size_t _vproc_transaction_count(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
-
-#pragma GCC visibility pop
-
-__END_DECLS
-
-#endif
Deleted: branches/PR-5092682/launchd/src/libvproc_public.h
===================================================================
--- branches/PR-5092682/launchd/src/libvproc_public.h 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/libvproc_public.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -1,161 +0,0 @@
-#ifndef _VPROC_H_
-#define _VPROC_H_
-/*
- * Copyright (c) 2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-__BEGIN_DECLS
-
-#pragma GCC visibility push(default)
-
-typedef void * vproc_err_t;
-
-typedef void * vproc_t;
-typedef void * vprocmgr_t;
-
-const char *vproc_strerror(vproc_err_t r);
-
-/*!
- * @header vproc
- *
- * Processes have two reference counts associated with them:
- *
- * Transactions Tracks unfinished work. For example: saving a modified
- * document.
- * Standby Tracks outstanding callbacks from external subsystems.
- *
- * Descriptive aliases:
- *
- * A process with no outstanding transactions is called "clean."
- * A process with outstanding transactions is called "dirty."
- * A process with no standby work is called "idle."
- *
- * Sometimes, the operating system needs processes to exit. Unix has two
- * primary signals to kill applications:
- *
- * SIGKILL Not catchable by the application.
- * SIGTERM Catchable by the application.
- *
- * If a process is clean, the operating system is free to SIGKILL it at
- * shutdown or logout. This behavior is opt in.
- *
- * If a process is clean and idle, the operating system may send SIGKILL after
- * a application specified timeout. This behavior is opt in.
- *
- * If a process is dirty and idle, the operating system may send SIGTERM after
- * a application specified timeout. This behavior is opt in.
- *
- *
- * launchd jobs should update their property lists accordingly.
- *
- * We plan to have LaunchServices use private methods to coordinate
- * whether GUI applications have opted into this design.
- */
-
-/*!
- * @typedef vproc_transaction_t
- *
- * @abstract
- * An opaque handle used to track outstanding transactions.
- */
-typedef struct vproc_transaction_s *vproc_transaction_t;
-
-/*!
- * @function vproc_transaction_begin
- *
- * @param virtual_proc
- * This is meant for future API improvements. Pass NULL for now.
- *
- * @result
- * Returns an opaque handle to be passed to vproc_transaction_end().
- *
- * @abstract
- * Call this API before creating data that needs to be saved via I/O later.
- */
-vproc_transaction_t
-vproc_transaction_begin(vproc_t virtual_proc);
-
-/*!
- * @function vproc_transaction_end
- *
- * @param virtual_proc
- * This is meant for future API improvements. Pass NULL for now.
- *
- * @param handle
- * The handle previously created with vproc_transaction_begin().
- *
- * @abstract
- * Call this API after the data has either been flushed or otherwise resolved.
- *
- * @discussion
- * Calling this API with the same handle more than once is undefined.
- */
-void
-vproc_transaction_end(vproc_t virtual_proc, vproc_transaction_t handle);
-
-/*!
- * @typedef vproc_standby_t
- *
- * @abstract
- * An opaque handle used to track outstanding standby requests.
- */
-typedef struct vproc_standby_s *vproc_standby_t;
-
-/*!
- * @function vproc_standby_begin
- *
- * @param virtual_proc
- * This is meant for future API improvements. Pass NULL for now.
- *
- * @result
- * Returns an opaque handle to be passed to vproc_standby_end().
- *
- * @abstract
- * Call this API before registering notifications. For example: timers network
- * state change, or when monitoring keyboard/mouse events.
- */
-vproc_standby_t
-vproc_standby_begin(vproc_t virtual_proc);
-
-/*!
- * @function vproc_standby_end
- *
- * @param virtual_proc
- * This is meant for future API improvements. Pass NULL for now.
- *
- * @param handle
- * The handle previously created with vproc_standby_begin().
- *
- * @abstract
- * Call this API when deregistering notifications.
- *
- * @discussion
- * Calling this API with the same handle more than once is undefined.
- */
-void
-vproc_standby_end(vproc_t virtual_proc, vproc_standby_t handle);
-
-#pragma GCC visibility pop
-
-__END_DECLS
-
-#endif
Deleted: branches/PR-5092682/launchd/src/protocol_job.defs
===================================================================
--- branches/PR-5092682/launchd/src/protocol_job.defs 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/protocol_job.defs 2008-10-16 23:34:45 UTC (rev 23733)
@@ -1,182 +0,0 @@
-/*
- * Copyright (c) 1999-2004 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-/*
- * bootstrap -- fundamental service initiator and port server
- * Mike DeMoney, NeXT, Inc.
- * Copyright, 1990. All rights reserved.
- */
-
-subsystem protocol_vproc 400;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-#include "launchd_mig_types.defs"
-import "libvproc_public.h";
-import "libvproc_private.h";
-import "libvproc_internal.h";
-
-type mach_port_move_send_array_t = array[] of mach_port_move_send_t
- ctype: mach_port_array_t;
-
-
-userprefix vproc_mig_;
-serverprefix job_mig_;
-
-routine create_server(
- __bs_port : job_t;
- __server_cmd : cmd_t;
- __server_uid : uid_t;
- __on_demand : boolean_t;
- out __server_port : mach_port_make_send_t);
-
-routine reboot2(
- __bs_port : job_t;
- __flags : uint64_t);
-
-routine check_in2(
- __bs_port : job_t;
- __service_name : name_t;
- out __service_port : mach_port_move_receive_t;
- __flags : uint64_t);
-
-routine register2(
- __bs_port : job_t;
- __service_name : name_t;
- __service_port : mach_port_t;
- __flags : uint64_t);
-
-routine look_up2(
- __bs_port : job_t;
- sreplyport __rport : mach_port_make_send_once_t;
- __service_name : name_t;
- out __service_port : mach_port_t;
- UserAuditToken __server_cred: audit_token_t;
- __target_pid : pid_t;
- __flags : uint64_t);
-
-routine send_signal(
- __bs_port : job_t;
- sreplyport __rport : mach_port_make_send_once_t;
- __label : name_t;
- __signal : integer_t);
-
-routine parent(
- __bs_port : job_t;
- sreplyport __rport : mach_port_make_send_once_t;
- out __parent_port : mach_port_make_send_t);
-
-routine post_fork_ping(
- __bs_port : job_t;
- __task_port : task_t);
-
-routine info(
- __bs_port : job_t;
- out __service_names : name_array_t, dealloc;
- out __service_active : bootstrap_status_array_t, dealloc);
-
-routine subset(
- __bs_port : job_t;
- __requestor_port: mach_port_t;
- out __subset_port : mach_port_make_send_t);
-
-routine setup_shmem(
- __bs_port : job_t;
- out __shmem_port : mach_port_move_send_t);
-
-routine take_subset(
- __bs_port : job_t;
- out __bs_reqport : mach_port_move_send_t;
- out __bs_rcvright : mach_port_move_receive_t;
- out __outdata : pointer_t, dealloc;
- out __service_ports : mach_port_move_send_array_t, dealloc);
-
-routine getsocket(
- __bs_port : job_t;
- out __sockpath : name_t);
-
-routine spawn(
- __bs_port : job_t;
- __indata : pointer_t;
- out __pid : pid_t;
- out __obsvr_port : mach_port_make_send_t);
-
-routine wait(
- __bs_port : job_t;
- sreplyport __rport : mach_port_make_send_once_t;
- out __waitval : integer_t);
-
-routine uncork_fork(
- __bs_port : job_t);
-
-routine swap_integer(
- __bs_port : job_t;
- __inkey : vproc_gsk_t;
- __outkey : vproc_gsk_t;
- __inval : int64_t;
- out __outval : int64_t);
-
-routine set_service_policy(
- __bs_port : job_t;
- __target_pid : pid_t;
- __flags : uint64_t;
- __service : name_t);
-
-routine log(
- __bs_port : job_t;
- __pri : integer_t;
- __err : integer_t;
- __msg : logmsg_t);
-
-routine lookup_per_user_context(
- __bs_port : job_t;
- __wu : uid_t;
- out __u_cont : mach_port_t);
-
-routine move_subset(
- __bs_port : job_t;
- __target_port : mach_port_t;
- __sessiontype : name_t);
-
-routine swap_complex(
- __bs_port : job_t;
- __inkey : vproc_gsk_t;
- __outkey : vproc_gsk_t;
- __inval : pointer_t;
- out __outval : pointer_t, dealloc);
-
-routine log_drain(
- __bs_port : job_t;
- sreplyport __rport : mach_port_make_send_once_t;
- out __outval : pointer_t, dealloc);
-
-routine log_forward(
- __bs_port : job_t;
- __inval : pointer_t);
-
-routine embedded_kickstart(
- __bs_port : job_t;
- __label : name_t;
- out __pid : pid_t;
- out __name_port : mach_port_t);
-
-routine embedded_wait(
- __bs_port : job_t;
- __label : name_t;
- out __waitval : integer_t);
Modified: branches/PR-5092682/launchd/src/protocol_job_forward.defs
===================================================================
--- branches/PR-5092682/launchd/src/protocol_job_forward.defs 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/protocol_job_forward.defs 2008-10-16 23:34:45 UTC (rev 23733)
@@ -23,9 +23,9 @@
#include <mach/std_types.defs>
#include <mach/mach_types.defs>
#include "launchd_mig_types.defs"
-import "libvproc_public.h";
-import "libvproc_private.h";
-import "libvproc_internal.h";
+import "vproc.h";
+import "vproc_priv.h";
+import "vproc_internal.h";
userprefix vproc_mig_;
serverprefix job_mig_;
Modified: branches/PR-5092682/launchd/src/protocol_job_reply.defs
===================================================================
--- branches/PR-5092682/launchd/src/protocol_job_reply.defs 2008-10-16 21:37:41 UTC (rev 23732)
+++ branches/PR-5092682/launchd/src/protocol_job_reply.defs 2008-10-16 23:34:45 UTC (rev 23733)
@@ -23,9 +23,9 @@
#include <mach/std_types.defs>
#include <mach/mach_types.defs>
#include "launchd_mig_types.defs"
-import "libbootstrap_public.h";
-import "libvproc_public.h";
-import "libvproc_internal.h";
+import "bootstrap.h";
+import "vproc.h";
+import "vproc_internal.h";
skip; /* create_server */
Copied: branches/PR-5092682/launchd/src/protocol_vproc.defs (from rev 23730, branches/PR-5092682/launchd/src/protocol_job.defs)
===================================================================
--- branches/PR-5092682/launchd/src/protocol_vproc.defs (rev 0)
+++ branches/PR-5092682/launchd/src/protocol_vproc.defs 2008-10-16 23:34:45 UTC (rev 23733)
@@ -0,0 +1,182 @@
+/*
+ * Copyright (c) 1999-2004 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+/*
+ * bootstrap -- fundamental service initiator and port server
+ * Mike DeMoney, NeXT, Inc.
+ * Copyright, 1990. All rights reserved.
+ */
+
+subsystem protocol_vproc 400;
+
+#include <mach/std_types.defs>
+#include <mach/mach_types.defs>
+#include "launchd_mig_types.defs"
+import "vproc.h";
+import "vproc_priv.h";
+import "vproc_internal.h";
+
+type mach_port_move_send_array_t = array[] of mach_port_move_send_t
+ ctype: mach_port_array_t;
+
+
+userprefix vproc_mig_;
+serverprefix job_mig_;
+
+routine create_server(
+ __bs_port : job_t;
+ __server_cmd : cmd_t;
+ __server_uid : uid_t;
+ __on_demand : boolean_t;
+ out __server_port : mach_port_make_send_t);
+
+routine reboot2(
+ __bs_port : job_t;
+ __flags : uint64_t);
+
+routine check_in2(
+ __bs_port : job_t;
+ __service_name : name_t;
+ out __service_port : mach_port_move_receive_t;
+ __flags : uint64_t);
+
+routine register2(
+ __bs_port : job_t;
+ __service_name : name_t;
+ __service_port : mach_port_t;
+ __flags : uint64_t);
+
+routine look_up2(
+ __bs_port : job_t;
+ sreplyport __rport : mach_port_make_send_once_t;
+ __service_name : name_t;
+ out __service_port : mach_port_t;
+ UserAuditToken __server_cred: audit_token_t;
+ __target_pid : pid_t;
+ __flags : uint64_t);
+
+routine send_signal(
+ __bs_port : job_t;
+ sreplyport __rport : mach_port_make_send_once_t;
+ __label : name_t;
+ __signal : integer_t);
+
+routine parent(
+ __bs_port : job_t;
+ sreplyport __rport : mach_port_make_send_once_t;
+ out __parent_port : mach_port_make_send_t);
+
+routine post_fork_ping(
+ __bs_port : job_t;
+ __task_port : task_t);
+
+routine info(
+ __bs_port : job_t;
+ out __service_names : name_array_t, dealloc;
+ out __service_active : bootstrap_status_array_t, dealloc);
+
+routine subset(
+ __bs_port : job_t;
+ __requestor_port: mach_port_t;
+ out __subset_port : mach_port_make_send_t);
+
+routine setup_shmem(
+ __bs_port : job_t;
+ out __shmem_port : mach_port_move_send_t);
+
+routine take_subset(
+ __bs_port : job_t;
+ out __bs_reqport : mach_port_move_send_t;
+ out __bs_rcvright : mach_port_move_receive_t;
+ out __outdata : pointer_t, dealloc;
+ out __service_ports : mach_port_move_send_array_t, dealloc);
+
+routine getsocket(
+ __bs_port : job_t;
+ out __sockpath : name_t);
+
+routine spawn(
+ __bs_port : job_t;
+ __indata : pointer_t;
+ out __pid : pid_t;
+ out __obsvr_port : mach_port_make_send_t);
+
+routine wait(
+ __bs_port : job_t;
+ sreplyport __rport : mach_port_make_send_once_t;
+ out __waitval : integer_t);
+
+routine uncork_fork(
+ __bs_port : job_t);
+
+routine swap_integer(
+ __bs_port : job_t;
+ __inkey : vproc_gsk_t;
+ __outkey : vproc_gsk_t;
+ __inval : int64_t;
+ out __outval : int64_t);
+
+routine set_service_policy(
+ __bs_port : job_t;
+ __target_pid : pid_t;
+ __flags : uint64_t;
+ __service : name_t);
+
+routine log(
+ __bs_port : job_t;
+ __pri : integer_t;
+ __err : integer_t;
+ __msg : logmsg_t);
+
+routine lookup_per_user_context(
+ __bs_port : job_t;
+ __wu : uid_t;
+ out __u_cont : mach_port_t);
+
+routine move_subset(
+ __bs_port : job_t;
+ __target_port : mach_port_t;
+ __sessiontype : name_t);
+
+routine swap_complex(
+ __bs_port : job_t;
+ __inkey : vproc_gsk_t;
+ __outkey : vproc_gsk_t;
+ __inval : pointer_t;
+ out __outval : pointer_t, dealloc);
+
+routine log_drain(
+ __bs_port : job_t;
+ sreplyport __rport : mach_port_make_send_once_t;
+ out __outval : pointer_t, dealloc);
+
+routine log_forward(
+ __bs_port : job_t;
+ __inval : pointer_t);
+
+routine embedded_kickstart(
+ __bs_port : job_t;
+ __label : name_t;
+ out __pid : pid_t;
+ out __name_port : mach_port_t);
+
+routine embedded_wait(
+ __bs_port : job_t;
+ __label : name_t;
+ out __waitval : integer_t);
Property changes on: branches/PR-5092682/launchd/src/protocol_vproc.defs
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/PR-5898404/launchd/src/protocol_job.defs:23681-23700
/branches/PR-5978442/launchd/src/protocol_job.defs:23651-23701
Added: svn:eol-style
+ native
Copied: branches/PR-5092682/launchd/src/vproc.h (from rev 23730, branches/PR-5092682/launchd/src/libvproc_public.h)
===================================================================
--- branches/PR-5092682/launchd/src/vproc.h (rev 0)
+++ branches/PR-5092682/launchd/src/vproc.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -0,0 +1,161 @@
+#ifndef _VPROC_H_
+#define _VPROC_H_
+/*
+ * Copyright (c) 2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#include <sys/cdefs.h>
+#include <sys/types.h>
+
+__BEGIN_DECLS
+
+#pragma GCC visibility push(default)
+
+typedef void * vproc_err_t;
+
+typedef void * vproc_t;
+typedef void * vprocmgr_t;
+
+const char *vproc_strerror(vproc_err_t r);
+
+/*!
+ * @header vproc
+ *
+ * Processes have two reference counts associated with them:
+ *
+ * Transactions Tracks unfinished work. For example: saving a modified
+ * document.
+ * Standby Tracks outstanding callbacks from external subsystems.
+ *
+ * Descriptive aliases:
+ *
+ * A process with no outstanding transactions is called "clean."
+ * A process with outstanding transactions is called "dirty."
+ * A process with no standby work is called "idle."
+ *
+ * Sometimes, the operating system needs processes to exit. Unix has two
+ * primary signals to kill applications:
+ *
+ * SIGKILL Not catchable by the application.
+ * SIGTERM Catchable by the application.
+ *
+ * If a process is clean, the operating system is free to SIGKILL it at
+ * shutdown or logout. This behavior is opt in.
+ *
+ * If a process is clean and idle, the operating system may send SIGKILL after
+ * a application specified timeout. This behavior is opt in.
+ *
+ * If a process is dirty and idle, the operating system may send SIGTERM after
+ * a application specified timeout. This behavior is opt in.
+ *
+ *
+ * launchd jobs should update their property lists accordingly.
+ *
+ * We plan to have LaunchServices use private methods to coordinate
+ * whether GUI applications have opted into this design.
+ */
+
+/*!
+ * @typedef vproc_transaction_t
+ *
+ * @abstract
+ * An opaque handle used to track outstanding transactions.
+ */
+typedef struct vproc_transaction_s *vproc_transaction_t;
+
+/*!
+ * @function vproc_transaction_begin
+ *
+ * @param virtual_proc
+ * This is meant for future API improvements. Pass NULL for now.
+ *
+ * @result
+ * Returns an opaque handle to be passed to vproc_transaction_end().
+ *
+ * @abstract
+ * Call this API before creating data that needs to be saved via I/O later.
+ */
+vproc_transaction_t
+vproc_transaction_begin(vproc_t virtual_proc);
+
+/*!
+ * @function vproc_transaction_end
+ *
+ * @param virtual_proc
+ * This is meant for future API improvements. Pass NULL for now.
+ *
+ * @param handle
+ * The handle previously created with vproc_transaction_begin().
+ *
+ * @abstract
+ * Call this API after the data has either been flushed or otherwise resolved.
+ *
+ * @discussion
+ * Calling this API with the same handle more than once is undefined.
+ */
+void
+vproc_transaction_end(vproc_t virtual_proc, vproc_transaction_t handle);
+
+/*!
+ * @typedef vproc_standby_t
+ *
+ * @abstract
+ * An opaque handle used to track outstanding standby requests.
+ */
+typedef struct vproc_standby_s *vproc_standby_t;
+
+/*!
+ * @function vproc_standby_begin
+ *
+ * @param virtual_proc
+ * This is meant for future API improvements. Pass NULL for now.
+ *
+ * @result
+ * Returns an opaque handle to be passed to vproc_standby_end().
+ *
+ * @abstract
+ * Call this API before registering notifications. For example: timers network
+ * state change, or when monitoring keyboard/mouse events.
+ */
+vproc_standby_t
+vproc_standby_begin(vproc_t virtual_proc);
+
+/*!
+ * @function vproc_standby_end
+ *
+ * @param virtual_proc
+ * This is meant for future API improvements. Pass NULL for now.
+ *
+ * @param handle
+ * The handle previously created with vproc_standby_begin().
+ *
+ * @abstract
+ * Call this API when deregistering notifications.
+ *
+ * @discussion
+ * Calling this API with the same handle more than once is undefined.
+ */
+void
+vproc_standby_end(vproc_t virtual_proc, vproc_standby_t handle);
+
+#pragma GCC visibility pop
+
+__END_DECLS
+
+#endif
Property changes on: branches/PR-5092682/launchd/src/vproc.h
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/PR-5898404/launchd/src/libvproc_public.h:23681-23700
/branches/PR-5978442/launchd/src/libvproc_public.h:23651-23701
Copied: branches/PR-5092682/launchd/src/vproc_internal.h (from rev 23730, branches/PR-5092682/launchd/src/libvproc_internal.h)
===================================================================
--- branches/PR-5092682/launchd/src/vproc_internal.h (rev 0)
+++ branches/PR-5092682/launchd/src/vproc_internal.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -0,0 +1,115 @@
+#ifndef _VPROC_INTERNAL_H_
+#define _VPROC_INTERNAL_H_
+/*
+ * Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#include <mach/mach.h>
+#include <sys/queue.h>
+#include <sys/time.h>
+#include <stdarg.h>
+#include "launch.h"
+#include "bootstrap.h"
+#include "vproc.h"
+
+typedef char * _internal_string_t;
+typedef char * logmsg_t;
+typedef pid_t * pid_array_t;
+typedef mach_port_t vproc_mig_t;
+
+#define VPROC_SHMEM_EXITING 0x1
+
+struct vproc_shmem_s {
+ int32_t vp_shmem_transaction_cnt;
+ int32_t vp_shmem_standby_cnt;
+ uint32_t vp_shmem_standby_timeout;
+ int32_t vp_shmem_flags;
+};
+
+#ifdef protocol_vproc_MSG_COUNT
+/* HACK */
+#include "launchd_core_logic.h"
+#endif
+
+#define VPROC_ERR_TRY_PER_USER 1099
+
+#pragma GCC visibility push(default)
+
+vproc_err_t _vprocmgr_init(const char *session_type);
+vproc_err_t _vproc_post_fork_ping(void);
+
+#define SPAWN_HAS_PATH 0x0001
+#define SPAWN_HAS_WDIR 0x0002
+#define SPAWN_HAS_UMASK 0x0004
+#define SPAWN_WANTS_WAIT4DEBUGGER 0x0008
+
+kern_return_t
+_vproc_grab_subset(mach_port_t bp, mach_port_t *reqport, mach_port_t *rcvright, launch_data_t *outval,
+ mach_port_array_t *ports, mach_msg_type_number_t *portCnt);
+
+kern_return_t _vprocmgr_getsocket(name_t);
+
+
+struct logmsg_s {
+ union {
+ STAILQ_ENTRY(logmsg_s) sqe;
+ uint64_t __pad;
+ };
+ int64_t when;
+ pid_t from_pid;
+ pid_t about_pid;
+ uid_t sender_uid;
+ gid_t sender_gid;
+ int err_num;
+ int pri;
+ union {
+ const char *from_name;
+ uint64_t from_name_offset;
+ };
+ union {
+ const char *about_name;
+ uint64_t about_name_offset;
+ };
+ union {
+ const char *session_name;
+ uint64_t session_name_offset;
+ };
+ union {
+ const char *msg;
+ uint64_t msg_offset;
+ };
+ uint64_t obj_sz;
+ char data[0];
+};
+
+
+vproc_err_t _vprocmgr_log_forward(mach_port_t mp, void *data, size_t len);
+
+
+kern_return_t
+bootstrap_info(
+ mach_port_t bp,
+ name_array_t *service_names,
+ mach_msg_type_number_t *service_namesCnt,
+ bootstrap_status_array_t *service_active,
+ mach_msg_type_number_t *service_activeCnt);
+
+#pragma GCC visibility pop
+
+#endif
Property changes on: branches/PR-5092682/launchd/src/vproc_internal.h
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/PR-5898404/launchd/src/libvproc_internal.h:23681-23700
/branches/PR-5978442/launchd/src/libvproc_internal.h:23651-23701
Added: svn:eol-style
+ native
Copied: branches/PR-5092682/launchd/src/vproc_priv.h (from rev 23730, branches/PR-5092682/launchd/src/libvproc_private.h)
===================================================================
--- branches/PR-5092682/launchd/src/vproc_priv.h (rev 0)
+++ branches/PR-5092682/launchd/src/vproc_priv.h 2008-10-16 23:34:45 UTC (rev 23733)
@@ -0,0 +1,100 @@
+#ifndef _VPROC_PRIVATE_H_
+#define _VPROC_PRIVATE_H_
+/*
+ * Copyright (c) 2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#include <Availability.h>
+#include <sys/types.h>
+#include <sys/cdefs.h>
+#include <sys/syslog.h>
+#include <sys/time.h>
+#include <stdbool.h>
+#include <launch.h>
+
+#define VPROC_HAS_TRANSACTIONS 1
+
+__BEGIN_DECLS
+
+#pragma GCC visibility push(default)
+
+/* DO NOT use this. This is a hack for 'launchctl' */
+#define VPROC_MAGIC_UNLOAD_SIGNAL 0x4141504C
+/* DO NOT use this. This is a hack for 'loginwindow' */
+#define VPROC_MAGIC_TRYKILL_SIGNAL 0x6161706C
+
+typedef enum {
+ VPROC_GSK_LAST_EXIT_STATUS = 1,
+ VPROC_GSK_GLOBAL_ON_DEMAND,
+ VPROC_GSK_MGR_UID,
+ VPROC_GSK_MGR_PID,
+ VPROC_GSK_IS_MANAGED,
+ VPROC_GSK_BASIC_KEEPALIVE,
+ VPROC_GSK_START_INTERVAL,
+ VPROC_GSK_IDLE_TIMEOUT,
+ VPROC_GSK_EXIT_TIMEOUT,
+ VPROC_GSK_ENVIRONMENT,
+ VPROC_GSK_ALLJOBS,
+ VPROC_GSK_GLOBAL_LOG_MASK,
+ VPROC_GSK_GLOBAL_UMASK,
+ VPROC_GSK_ABANDON_PROCESS_GROUP,
+ VPROC_GSK_TRANSACTIONS_ENABLED
+} vproc_gsk_t;
+
+vproc_err_t vproc_swap_integer(vproc_t vp, vproc_gsk_t key, int64_t *inval, int64_t *outval);
+vproc_err_t vproc_swap_complex(vproc_t vp, vproc_gsk_t key, launch_data_t inval, launch_data_t *outval);
+
+vproc_err_t _vproc_get_last_exit_status(int *wstatus);
+vproc_err_t _vproc_set_global_on_demand(bool val);
+
+typedef void (*_vprocmgr_log_drain_callback_t)(struct timeval *when, pid_t from_pid, pid_t about_pid, uid_t sender_uid, gid_t sender_gid, int priority, const char *from_name, const char *about_name, const char *session_name, const char *msg);
+
+vproc_err_t _vprocmgr_log_drain(vproc_t vp, pthread_mutex_t *optional_mutex_around_callback, _vprocmgr_log_drain_callback_t func);
+
+vproc_err_t _vproc_send_signal_by_label(const char *label, int sig);
+vproc_err_t _vproc_kickstart_by_label(const char *label, pid_t *out_pid, mach_port_t *out_port_name);
+vproc_err_t _vproc_wait_by_label(const char *label, int *out_wstatus);
+
+void _vproc_log(int pri, const char *msg, ...) __attribute__((format(printf, 2, 3)));
+void _vproc_log_error(int pri, const char *msg, ...) __attribute__((format(printf, 2, 3)));
+void _vproc_logv(int pri, int err, const char *msg, va_list ap) __attribute__((format(printf, 3, 0)));
+
+#define VPROCMGR_SESSION_LOGINWINDOW "LoginWindow"
+#define VPROCMGR_SESSION_BACKGROUND "Background"
+#define VPROCMGR_SESSION_AQUA "Aqua"
+#define VPROCMGR_SESSION_STANDARDIO "StandardIO"
+#define VPROCMGR_SESSION_SYSTEM "System"
+
+vproc_err_t _vprocmgr_move_subset_to_user(uid_t target_user, const char *session_type);
+
+void _vproc_standby_begin(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+void _vproc_standby_end(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+size_t _vproc_standby_count(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+size_t _vproc_standby_timeout(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+
+void _vproc_transaction_try_exit(int status) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+void _vproc_transaction_begin(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+void _vproc_transaction_end(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+size_t _vproc_transaction_count(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);
+
+#pragma GCC visibility pop
+
+__END_DECLS
+
+#endif
Property changes on: branches/PR-5092682/launchd/src/vproc_priv.h
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/PR-5898404/launchd/src/libvproc_private.h:23681-23700
/branches/PR-5978442/launchd/src/libvproc_private.h:23651-23701
Property changes on: branches/PR-5092682/launchd.xcodeproj
___________________________________________________________________
Added: svn:ignore
+ *.mode1v3
*.pbxuser
Added: branches/PR-5092682/launchd.xcodeproj/project.pbxproj
===================================================================
--- branches/PR-5092682/launchd.xcodeproj/project.pbxproj (rev 0)
+++ branches/PR-5092682/launchd.xcodeproj/project.pbxproj 2008-10-16 23:34:45 UTC (rev 23733)
@@ -0,0 +1,1078 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXAggregateTarget section */
+ FC59A0750E8C88AC00D41150 /* Default */ = {
+ isa = PBXAggregateTarget;
+ buildConfigurationList = FC59A08A0E8C890A00D41150 /* Build configuration list for PBXAggregateTarget "Default" */;
+ buildPhases = (
+ );
+ dependencies = (
+ FC59A09D0E8C893000D41150 /* PBXTargetDependency */,
+ FC59A0800E8C88FA00D41150 /* PBXTargetDependency */,
+ FC59A0820E8C88FC00D41150 /* PBXTargetDependency */,
+ FC59A0DE0E8C8A7000D41150 /* PBXTargetDependency */,
+ FCC842810EA718A800C01666 /* PBXTargetDependency */,
+ );
+ name = Default;
+ productName = launchd_agg;
+ };
+ FC59A07A0E8C88BB00D41150 /* launchd_libs */ = {
+ isa = PBXAggregateTarget;
+ buildConfigurationList = FC59A08B0E8C890A00D41150 /* Build configuration list for PBXAggregateTarget "launchd_libs" */;
+ buildPhases = (
+ );
+ dependencies = (
+ FC59A07E0E8C88C100D41150 /* PBXTargetDependency */,
+ );
+ name = launchd_libs;
+ productName = launchd_libs_agg;
+ };
+/* End PBXAggregateTarget section */
+
+/* Begin PBXBuildFile section */
+ 721FBEBC0EA7AE2F0057462B /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 721FBEBB0EA7AE2F0057462B /* Security.framework */; };
+ 726055EC0EA7EC2400D65FE7 /* exc.defs in Sources */ = {isa = PBXBuildFile; fileRef = FC36291F0E9349410054F1A3 /* exc.defs */; settings = {ATTRIBUTES = (Server, ); }; };
+ 726056090EA7FCF200D65FE7 /* launchd_ktrace.c in Sources */ = {isa = PBXBuildFile; fileRef = 72FDB15D0EA7D7B200B2AC84 /* launchd_ktrace.c */; };
+ 72FDB15F0EA7D7B200B2AC84 /* launchd_ktrace.c in Sources */ = {isa = PBXBuildFile; fileRef = 72FDB15D0EA7D7B200B2AC84 /* launchd_ktrace.c */; };
+ 72FDB1C00EA7E21C00B2AC84 /* protocol_job_forward.defs in Sources */ = {isa = PBXBuildFile; fileRef = 72FDB1BF0EA7E21C00B2AC84 /* protocol_job_forward.defs */; };
+ FC3627BA0E9343220054F1A3 /* StartupItems.c in Sources */ = {isa = PBXBuildFile; fileRef = FC59A0FD0E8C8ADF00D41150 /* StartupItems.c */; };
+ FC3627BB0E93432A0054F1A3 /* SystemStarter.c in Sources */ = {isa = PBXBuildFile; fileRef = FC59A1000E8C8ADF00D41150 /* SystemStarter.c */; };
+ FC3627D40E93439B0054F1A3 /* StartupItemContext.8 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC59A0FE0E8C8ADF00D41150 /* StartupItemContext.8 */; };
+ FC3627D50E93439B0054F1A3 /* SystemStarter.8 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC59A1010E8C8ADF00D41150 /* SystemStarter.8 */; };
+ FC3627E00E9344BF0054F1A3 /* protocol_vproc.defs in Sources */ = {isa = PBXBuildFile; fileRef = FC3627DF0E9344BF0054F1A3 /* protocol_vproc.defs */; };
+ FC3627E10E9344BF0054F1A3 /* protocol_vproc.defs in Sources */ = {isa = PBXBuildFile; fileRef = FC3627DF0E9344BF0054F1A3 /* protocol_vproc.defs */; settings = {ATTRIBUTES = (Client, Server, ); }; };
+ FC3628080E9345E10054F1A3 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC3628070E9345E10054F1A3 /* CoreFoundation.framework */; };
+ FC3628090E9345E10054F1A3 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC3628070E9345E10054F1A3 /* CoreFoundation.framework */; };
+ FC36283F0E93463C0054F1A3 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC36283E0E93463C0054F1A3 /* IOKit.framework */; };
+ FC36290D0E93475F0054F1A3 /* notify.defs in Sources */ = {isa = PBXBuildFile; fileRef = FC36290C0E93475F0054F1A3 /* notify.defs */; settings = {ATTRIBUTES = (Server, ); }; };
+ FC3629170E9348390054F1A3 /* protocol_job_reply.defs in Sources */ = {isa = PBXBuildFile; fileRef = FC3629160E9348390054F1A3 /* protocol_job_reply.defs */; };
+ FC36292D0E934AA40054F1A3 /* libbsm.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FC36292C0E934AA40054F1A3 /* libbsm.dylib */; };
+ FC59A0A60E8C89C100D41150 /* IPC.c in Sources */ = {isa = PBXBuildFile; fileRef = FC59A0A50E8C89C100D41150 /* IPC.c */; };
+ FC59A0AF0E8C8A0E00D41150 /* launchctl.c in Sources */ = {isa = PBXBuildFile; fileRef = FC59A0AE0E8C8A0E00D41150 /* launchctl.c */; settings = {COMPILER_FLAGS = "-I\"$SDKROOT\"/System/Library/Frameworks/System.framework/PrivateHeaders"; }; };
+ FC59A0B80E8C8A1F00D41150 /* launchd_unix_ipc.c in Sources */ = {isa = PBXBuildFile; fileRef = FC59A0B10E8C8A1F00D41150 /* launchd_unix_ipc.c */; };
+ FC59A0B90E8C8A1F00D41150 /* launchd_runtime_kill.c in Sources */ = {isa = PBXBuildFile; fileRef = FC59A0B30E8C8A1F00D41150 /* launchd_runtime_kill.c */; };
+ FC59A0BA0E8C8A1F00D41150 /* launchd_runtime.c in Sources */ = {isa = PBXBuildFile; fileRef = FC59A0B50E8C8A1F00D41150 /* launchd_runtime.c */; settings = {COMPILER_FLAGS = "-I\"$SYMROOT\""; }; };
+ FC59A0BB0E8C8A1F00D41150 /* launchd_core_logic.c in Sources */ = {isa = PBXBuildFile; fileRef = FC59A0B70E8C8A1F00D41150 /* launchd_core_logic.c */; };
+ FC59A0BF0E8C8A2A00D41150 /* launchd_internal.defs in Sources */ = {isa = PBXBuildFile; fileRef = FC59A0BD0E8C8A2A00D41150 /* launchd_internal.defs */; settings = {ATTRIBUTES = (Client, Server, ); }; };
+ FC59A0C50E8C8A4700D41150 /* launchd.c in Sources */ = {isa = PBXBuildFile; fileRef = FC59A0C40E8C8A4700D41150 /* launchd.c */; };
+ FC59A0DC0E8C8A6900D41150 /* launchproxy.c in Sources */ = {isa = PBXBuildFile; fileRef = FC59A0DA0E8C8A6900D41150 /* launchproxy.c */; };
+ FC59A0ED0E8C8AA600D41150 /* vproc.h in Headers */ = {isa = PBXBuildFile; fileRef = FC59A0E20E8C8AA600D41150 /* vproc.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ FC59A0EE0E8C8AA600D41150 /* vproc_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = FC59A0E30E8C8AA600D41150 /* vproc_priv.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ FC59A0EF0E8C8AA600D41150 /* vproc_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = FC59A0E40E8C8AA600D41150 /* vproc_internal.h */; };
+ FC59A0F00E8C8AA600D41150 /* libvproc.c in Sources */ = {isa = PBXBuildFile; fileRef = FC59A0E50E8C8AA600D41150 /* libvproc.c */; };
+ FC59A0F10E8C8AA600D41150 /* launch.h in Headers */ = {isa = PBXBuildFile; fileRef = FC59A0E60E8C8AA600D41150 /* launch.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ FC59A0F20E8C8AA600D41150 /* launch_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = FC59A0E70E8C8AA600D41150 /* launch_priv.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ FC59A0F30E8C8AA600D41150 /* launch_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = FC59A0E80E8C8AA600D41150 /* launch_internal.h */; };
+ FC59A0F40E8C8AA600D41150 /* liblaunch.c in Sources */ = {isa = PBXBuildFile; fileRef = FC59A0E90E8C8AA600D41150 /* liblaunch.c */; };
+ FC59A0F50E8C8AA600D41150 /* bootstrap.h in Headers */ = {isa = PBXBuildFile; fileRef = FC59A0EA0E8C8AA600D41150 /* bootstrap.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ FC59A0F60E8C8AA600D41150 /* bootstrap_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = FC59A0EB0E8C8AA600D41150 /* bootstrap_priv.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ FC59A0F70E8C8AA600D41150 /* libbootstrap.c in Sources */ = {isa = PBXBuildFile; fileRef = FC59A0EC0E8C8AA600D41150 /* libbootstrap.c */; };
+ FC59A0FC0E8C8ACE00D41150 /* reboot2.h in Headers */ = {isa = PBXBuildFile; fileRef = FC59A0FB0E8C8ACE00D41150 /* reboot2.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ FC7B87B30EA7199700542082 /* rc.netboot in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC59A0F90E8C8AC300D41150 /* rc.netboot */; };
+ FC7B87B50EA719B000542082 /* rc.common in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC59A0FA0E8C8AC300D41150 /* rc.common */; };
+ FC7B87E60EA719D900542082 /* launchd.8 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC59A0C00E8C8A3A00D41150 /* launchd.8 */; };
+ FC7B87F60EA71A9F00542082 /* launchd.plist.5 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC59A0C10E8C8A4700D41150 /* launchd.plist.5 */; };
+ FC7B87F70EA71A9F00542082 /* launchd.conf.5 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC59A0C30E8C8A4700D41150 /* launchd.conf.5 */; };
+ FC7B87FB0EA71AC600542082 /* rc.8 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC59A0F80E8C8AC300D41150 /* rc.8 */; };
+ FCC841CC0EA7138700C01666 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC36283E0E93463C0054F1A3 /* IOKit.framework */; };
+ FCD713010E95D4FF001B0111 /* launchctl.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC59A0AD0E8C8A0E00D41150 /* launchctl.1 */; };
+ FCD713090E95D52E001B0111 /* launchproxy.8 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC59A0DB0E8C8A6900D41150 /* launchproxy.8 */; };
+ FCD713130E95D56B001B0111 /* StartupItemContext in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC59A0FF0E8C8ADF00D41150 /* StartupItemContext */; };
+ FCD713210E95D5DE001B0111 /* com.apple.SystemStarter.plist in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCD713200E95D5D3001B0111 /* com.apple.SystemStarter.plist */; };
+ FCD713390E95D69E001B0111 /* wait4path.c in Sources */ = {isa = PBXBuildFile; fileRef = FCD713380E95D69E001B0111 /* wait4path.c */; };
+ FCD713450E95D71F001B0111 /* wait4path.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCD713370E95D69E001B0111 /* wait4path.1 */; };
+ FCD713570E95D7D1001B0111 /* hostconfig in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCD713520E95D7B3001B0111 /* hostconfig */; };
+ FCD713740E95DE49001B0111 /* libedit.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FCD713730E95DE49001B0111 /* libedit.dylib */; settings = {ATTRIBUTES = (Weak, ); }; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ FC59A07D0E8C88C100D41150 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = FC59A03F0E8C87FD00D41150 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = FC59A05F0E8C885100D41150;
+ remoteInfo = launchd_libs;
+ };
+ FC59A07F0E8C88FA00D41150 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = FC59A03F0E8C87FD00D41150 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = FC59A0530E8C884700D41150;
+ remoteInfo = launchd;
+ };
+ FC59A0810E8C88FC00D41150 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = FC59A03F0E8C87FD00D41150 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = FC59A06C0E8C888A00D41150;
+ remoteInfo = launchctl;
+ };
+ FC59A09C0E8C893000D41150 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = FC59A03F0E8C87FD00D41150 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = FC59A0900E8C892300D41150;
+ remoteInfo = SystemStarter;
+ };
+ FC59A0DD0E8C8A7000D41150 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = FC59A03F0E8C87FD00D41150 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = FC59A0CD0E8C8A5C00D41150;
+ remoteInfo = launchproxy;
+ };
+ FCC842800EA718A800C01666 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = FC59A03F0E8C87FD00D41150 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = FCD7132A0E95D64D001B0111;
+ remoteInfo = wait4path;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ FC3627D60E9343B90054F1A3 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 8;
+ dstPath = usr/share/man/man8;
+ dstSubfolderSpec = 0;
+ files = (
+ FC3627D40E93439B0054F1A3 /* StartupItemContext.8 in CopyFiles */,
+ FC3627D50E93439B0054F1A3 /* SystemStarter.8 in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
+ FC3627D70E9343B90054F1A3 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 8;
+ dstPath = private/etc;
+ dstSubfolderSpec = 0;
+ files = (
+ FC7B87B30EA7199700542082 /* rc.netboot in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
+ FC7B87E80EA719DB00542082 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 8;
+ dstPath = usr/share/man/man8;
+ dstSubfolderSpec = 0;
+ files = (
+ FC7B87E60EA719D900542082 /* launchd.8 in CopyFiles */,
+ FC7B87FB0EA71AC600542082 /* rc.8 in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
+ FC7B87FA0EA71AB400542082 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 8;
+ dstPath = usr/share/man/man5;
+ dstSubfolderSpec = 0;
+ files = (
+ FC7B87F70EA71A9F00542082 /* launchd.conf.5 in CopyFiles */,
+ FC7B87F60EA71A9F00542082 /* launchd.plist.5 in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
+ FCD713050E95D513001B0111 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 8;
+ dstPath = usr/share/man/man1;
+ dstSubfolderSpec = 0;
+ files = (
+ FCD713010E95D4FF001B0111 /* launchctl.1 in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
+ FCD713110E95D554001B0111 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 8;
+ dstPath = usr/libexec;
+ dstSubfolderSpec = 0;
+ files = (
+ FCD713130E95D56B001B0111 /* StartupItemContext in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
+ FCD713120E95D554001B0111 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 8;
+ dstPath = usr/share/man/man8;
+ dstSubfolderSpec = 0;
+ files = (
+ FCD713090E95D52E001B0111 /* launchproxy.8 in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
+ FCD7131B0E95D59B001B0111 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 8;
+ dstPath = System/Library/LaunchDaemons;
+ dstSubfolderSpec = 0;
+ files = (
+ FCD713210E95D5DE001B0111 /* com.apple.SystemStarter.plist in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
+ FCD7134D0E95D728001B0111 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 8;
+ dstPath = usr/share/man/man1;
+ dstSubfolderSpec = 0;
+ files = (
+ FCD713450E95D71F001B0111 /* wait4path.1 in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
+ FCD713590E95D7D8001B0111 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 8;
+ dstPath = private/etc;
+ dstSubfolderSpec = 0;
+ files = (
+ FCD713570E95D7D1001B0111 /* hostconfig in CopyFiles */,
+ FC7B87B50EA719B000542082 /* rc.common in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ 721FBEA50EA7ABC40057462B /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = config.h; path = launchd/src/config.h; sourceTree = "<group>"; };
+ 721FBEBB0EA7AE2F0057462B /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = /System/Library/Frameworks/Security.framework; sourceTree = "<absolute>"; };
+ 72FDB15D0EA7D7B200B2AC84 /* launchd_ktrace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = launchd_ktrace.c; path = launchd/src/launchd_ktrace.c; sourceTree = "<group>"; };
+ 72FDB15E0EA7D7B200B2AC84 /* launchd_ktrace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = launchd_ktrace.h; path = launchd/src/launchd_ktrace.h; sourceTree = "<group>"; };
+ 72FDB1BF0EA7E21C00B2AC84 /* protocol_job_forward.defs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.mig; name = protocol_job_forward.defs; path = launchd/src/protocol_job_forward.defs; sourceTree = "<group>"; };
+ FC3627DF0E9344BF0054F1A3 /* protocol_vproc.defs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.mig; name = protocol_vproc.defs; path = launchd/src/protocol_vproc.defs; sourceTree = "<group>"; };
+ FC3628070E9345E10054F1A3 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
+ FC36283E0E93463C0054F1A3 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
+ FC36290C0E93475F0054F1A3 /* notify.defs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.mig; name = notify.defs; path = /usr/include/mach/notify.defs; sourceTree = "<absolute>"; };
+ FC3629160E9348390054F1A3 /* protocol_job_reply.defs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.mig; name = protocol_job_reply.defs; path = launchd/src/protocol_job_reply.defs; sourceTree = "<group>"; };
+ FC36291F0E9349410054F1A3 /* exc.defs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.mig; name = exc.defs; path = /usr/include/mach/exc.defs; sourceTree = "<absolute>"; };
+ FC36292C0E934AA40054F1A3 /* libbsm.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libbsm.dylib; path = /usr/lib/libbsm.dylib; sourceTree = "<absolute>"; };
+ FC59A0540E8C884700D41150 /* launchd */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = launchd; sourceTree = BUILT_PRODUCTS_DIR; };
+ FC59A0600E8C885100D41150 /* liblaunch.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = liblaunch.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ FC59A06D0E8C888A00D41150 /* launchctl */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = launchctl; sourceTree = BUILT_PRODUCTS_DIR; };
+ FC59A0910E8C892300D41150 /* SystemStarter */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = SystemStarter; sourceTree = BUILT_PRODUCTS_DIR; };
+ FC59A0A40E8C89C100D41150 /* IPC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPC.h; path = launchd/src/IPC.h; sourceTree = SOURCE_ROOT; };
+ FC59A0A50E8C89C100D41150 /* IPC.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IPC.c; path = launchd/src/IPC.c; sourceTree = SOURCE_ROOT; };
+ FC59A0AD0E8C8A0E00D41150 /* launchctl.1 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.man; name = launchctl.1; path = launchd/src/launchctl.1; sourceTree = SOURCE_ROOT; };
+ FC59A0AE0E8C8A0E00D41150 /* launchctl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = launchctl.c; path = launchd/src/launchctl.c; sourceTree = SOURCE_ROOT; };
+ FC59A0B00E8C8A1F00D41150 /* launchd_unix_ipc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = launchd_unix_ipc.h; path = launchd/src/launchd_unix_ipc.h; sourceTree = SOURCE_ROOT; };
+ FC59A0B10E8C8A1F00D41150 /* launchd_unix_ipc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = launchd_unix_ipc.c; path = launchd/src/launchd_unix_ipc.c; sourceTree = SOURCE_ROOT; };
+ FC59A0B20E8C8A1F00D41150 /* launchd_runtime_kill.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = launchd_runtime_kill.h; path = launchd/src/launchd_runtime_kill.h; sourceTree = SOURCE_ROOT; };
+ FC59A0B30E8C8A1F00D41150 /* launchd_runtime_kill.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = launchd_runtime_kill.c; path = launchd/src/launchd_runtime_kill.c; sourceTree = SOURCE_ROOT; };
+ FC59A0B40E8C8A1F00D41150 /* launchd_runtime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = launchd_runtime.h; path = launchd/src/launchd_runtime.h; sourceTree = SOURCE_ROOT; };
+ FC59A0B50E8C8A1F00D41150 /* launchd_runtime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = launchd_runtime.c; path = launchd/src/launchd_runtime.c; sourceTree = SOURCE_ROOT; };
+ FC59A0B60E8C8A1F00D41150 /* launchd_core_logic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = launchd_core_logic.h; path = launchd/src/launchd_core_logic.h; sourceTree = SOURCE_ROOT; };
+ FC59A0B70E8C8A1F00D41150 /* launchd_core_logic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = launchd_core_logic.c; path = launchd/src/launchd_core_logic.c; sourceTree = SOURCE_ROOT; };
+ FC59A0BC0E8C8A2A00D41150 /* launchd_mig_types.defs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.mig; name = launchd_mig_types.defs; path = launchd/src/launchd_mig_types.defs; sourceTree = SOURCE_ROOT; };
+ FC59A0BD0E8C8A2A00D41150 /* launchd_internal.defs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.mig; name = launchd_internal.defs; path = launchd/src/launchd_internal.defs; sourceTree = SOURCE_ROOT; };
+ FC59A0C00E8C8A3A00D41150 /* launchd.8 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = launchd.8; path = launchd/src/launchd.8; sourceTree = SOURCE_ROOT; };
+ FC59A0C10E8C8A4700D41150 /* launchd.plist.5 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = launchd.plist.5; path = launchd/src/launchd.plist.5; sourceTree = SOURCE_ROOT; };
+ FC59A0C20E8C8A4700D41150 /* launchd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = launchd.h; path = launchd/src/launchd.h; sourceTree = SOURCE_ROOT; };
+ FC59A0C30E8C8A4700D41150 /* launchd.conf.5 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = launchd.conf.5; path = launchd/src/launchd.conf.5; sourceTree = SOURCE_ROOT; };
+ FC59A0C40E8C8A4700D41150 /* launchd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = launchd.c; path = launchd/src/launchd.c; sourceTree = SOURCE_ROOT; };
+ FC59A0CE0E8C8A5C00D41150 /* launchproxy */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = launchproxy; sourceTree = BUILT_PRODUCTS_DIR; };
+ FC59A0DA0E8C8A6900D41150 /* launchproxy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = launchproxy.c; path = launchd/src/launchproxy.c; sourceTree = SOURCE_ROOT; };
+ FC59A0DB0E8C8A6900D41150 /* launchproxy.8 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = launchproxy.8; path = launchd/src/launchproxy.8; sourceTree = SOURCE_ROOT; };
+ FC59A0E20E8C8AA600D41150 /* vproc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vproc.h; path = launchd/src/vproc.h; sourceTree = "<group>"; };
+ FC59A0E30E8C8AA600D41150 /* vproc_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vproc_priv.h; path = launchd/src/vproc_priv.h; sourceTree = "<group>"; };
+ FC59A0E40E8C8AA600D41150 /* vproc_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vproc_internal.h; path = launchd/src/vproc_internal.h; sourceTree = "<group>"; };
+ FC59A0E50E8C8AA600D41150 /* libvproc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = libvproc.c; path = launchd/src/libvproc.c; sourceTree = SOURCE_ROOT; };
+ FC59A0E60E8C8AA600D41150 /* launch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = launch.h; path = launchd/src/launch.h; sourceTree = "<group>"; };
+ FC59A0E70E8C8AA600D41150 /* launch_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = launch_priv.h; path = launchd/src/launch_priv.h; sourceTree = "<group>"; };
+ FC59A0E80E8C8AA600D41150 /* launch_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = launch_internal.h; path = launchd/src/launch_internal.h; sourceTree = "<group>"; };
+ FC59A0E90E8C8AA600D41150 /* liblaunch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = liblaunch.c; path = launchd/src/liblaunch.c; sourceTree = SOURCE_ROOT; };
+ FC59A0EA0E8C8AA600D41150 /* bootstrap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bootstrap.h; path = launchd/src/bootstrap.h; sourceTree = "<group>"; };
+ FC59A0EB0E8C8AA600D41150 /* bootstrap_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bootstrap_priv.h; path = launchd/src/bootstrap_priv.h; sourceTree = "<group>"; };
+ FC59A0EC0E8C8AA600D41150 /* libbootstrap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = libbootstrap.c; path = launchd/src/libbootstrap.c; sourceTree = SOURCE_ROOT; };
+ FC59A0F80E8C8AC300D41150 /* rc.8 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = rc.8; path = launchd/src/rc.8; sourceTree = SOURCE_ROOT; };
+ FC59A0F90E8C8AC300D41150 /* rc.netboot */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = rc.netboot; path = launchd/src/rc.netboot; sourceTree = SOURCE_ROOT; };
+ FC59A0FA0E8C8AC300D41150 /* rc.common */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = rc.common; path = launchd/src/rc.common; sourceTree = SOURCE_ROOT; };
+ FC59A0FB0E8C8ACE00D41150 /* reboot2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = reboot2.h; path = launchd/src/reboot2.h; sourceTree = SOURCE_ROOT; };
+ FC59A0FD0E8C8ADF00D41150 /* StartupItems.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = StartupItems.c; path = launchd/src/StartupItems.c; sourceTree = SOURCE_ROOT; };
+ FC59A0FE0E8C8ADF00D41150 /* StartupItemContext.8 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = StartupItemContext.8; path = launchd/src/StartupItemContext.8; sourceTree = SOURCE_ROOT; };
+ FC59A0FF0E8C8ADF00D41150 /* StartupItemContext */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = StartupItemContext; path = launchd/src/StartupItemContext; sourceTree = SOURCE_ROOT; };
+ FC59A1000E8C8ADF00D41150 /* SystemStarter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SystemStarter.c; path = launchd/src/SystemStarter.c; sourceTree = SOURCE_ROOT; };
+ FC59A1010E8C8ADF00D41150 /* SystemStarter.8 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = SystemStarter.8; path = launchd/src/SystemStarter.8; sourceTree = SOURCE_ROOT; };
+ FC59A1020E8C8ADF00D41150 /* StartupItems.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StartupItems.h; path = launchd/src/StartupItems.h; sourceTree = SOURCE_ROOT; };
+ FC59A1030E8C8ADF00D41150 /* SystemStarterIPC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SystemStarterIPC.h; path = launchd/src/SystemStarterIPC.h; sourceTree = SOURCE_ROOT; };
+ FC59A1040E8C8ADF00D41150 /* SystemStarter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SystemStarter.h; path = launchd/src/SystemStarter.h; sourceTree = SOURCE_ROOT; };
+ FCD713200E95D5D3001B0111 /* com.apple.SystemStarter.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = com.apple.SystemStarter.plist; path = launchd/src/com.apple.SystemStarter.plist; sourceTree = "<group>"; };
+ FCD7132B0E95D64D001B0111 /* wait4path */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = wait4path; sourceTree = BUILT_PRODUCTS_DIR; };
+ FCD713370E95D69E001B0111 /* wait4path.1 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.man; name = wait4path.1; path = launchd/src/wait4path.1; sourceTree = "<group>"; };
+ FCD713380E95D69E001B0111 /* wait4path.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wait4path.c; path = launchd/src/wait4path.c; sourceTree = "<group>"; };
+ FCD713520E95D7B3001B0111 /* hostconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = hostconfig; path = launchd/src/hostconfig; sourceTree = "<group>"; };
+ FCD713730E95DE49001B0111 /* libedit.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libedit.dylib; path = /usr/lib/libedit.dylib; sourceTree = "<absolute>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ FC59A0520E8C884700D41150 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FC36292D0E934AA40054F1A3 /* libbsm.dylib in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FC59A05E0E8C885100D41150 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FC59A06B0E8C888A00D41150 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FCC841CC0EA7138700C01666 /* IOKit.framework in Frameworks */,
+ FC3628080E9345E10054F1A3 /* CoreFoundation.framework in Frameworks */,
+ FCD713740E95DE49001B0111 /* libedit.dylib in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FC59A08F0E8C892300D41150 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FC3628090E9345E10054F1A3 /* CoreFoundation.framework in Frameworks */,
+ FC36283F0E93463C0054F1A3 /* IOKit.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FC59A0CC0E8C8A5C00D41150 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 721FBEBC0EA7AE2F0057462B /* Security.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FCD713290E95D64D001B0111 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ FC36280C0E9345F60054F1A3 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 721FBEBB0EA7AE2F0057462B /* Security.framework */,
+ FC36292C0E934AA40054F1A3 /* libbsm.dylib */,
+ FCD713730E95DE49001B0111 /* libedit.dylib */,
+ FC3628070E9345E10054F1A3 /* CoreFoundation.framework */,
+ FC36283E0E93463C0054F1A3 /* IOKit.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ FC59A03D0E8C87FD00D41150 = {
+ isa = PBXGroup;
+ children = (
+ FC59A04E0E8C883300D41150 /* launchd */,
+ FC59A0E10E8C8A9400D41150 /* liblaunch */,
+ FC59A0A90E8C89C900D41150 /* launchctl */,
+ FC59A0C80E8C8A4E00D41150 /* launchproxy */,
+ FC59A0A00E8C899600D41150 /* SystemStarter */,
+ FCD713330E95D65F001B0111 /* wait4path */,
+ FC36280C0E9345F60054F1A3 /* Frameworks */,
+ FC59A0550E8C884700D41150 /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ FC59A04E0E8C883300D41150 /* launchd */ = {
+ isa = PBXGroup;
+ children = (
+ 721FBEA50EA7ABC40057462B /* config.h */,
+ FC36291F0E9349410054F1A3 /* exc.defs */,
+ FC3629160E9348390054F1A3 /* protocol_job_reply.defs */,
+ FC36290C0E93475F0054F1A3 /* notify.defs */,
+ FC59A0F80E8C8AC300D41150 /* rc.8 */,
+ FC59A0F90E8C8AC300D41150 /* rc.netboot */,
+ FC59A0FA0E8C8AC300D41150 /* rc.common */,
+ FC59A0C10E8C8A4700D41150 /* launchd.plist.5 */,
+ FC59A0C20E8C8A4700D41150 /* launchd.h */,
+ FC59A0C30E8C8A4700D41150 /* launchd.conf.5 */,
+ FC59A0C40E8C8A4700D41150 /* launchd.c */,
+ FC59A0C00E8C8A3A00D41150 /* launchd.8 */,
+ FC59A0BC0E8C8A2A00D41150 /* launchd_mig_types.defs */,
+ FC59A0BD0E8C8A2A00D41150 /* launchd_internal.defs */,
+ FC59A0B00E8C8A1F00D41150 /* launchd_unix_ipc.h */,
+ FC59A0B10E8C8A1F00D41150 /* launchd_unix_ipc.c */,
+ FC59A0B20E8C8A1F00D41150 /* launchd_runtime_kill.h */,
+ FC59A0B30E8C8A1F00D41150 /* launchd_runtime_kill.c */,
+ FC59A0B40E8C8A1F00D41150 /* launchd_runtime.h */,
+ FC59A0B50E8C8A1F00D41150 /* launchd_runtime.c */,
+ FC59A0B60E8C8A1F00D41150 /* launchd_core_logic.h */,
+ FC59A0B70E8C8A1F00D41150 /* launchd_core_logic.c */,
+ 72FDB15D0EA7D7B200B2AC84 /* launchd_ktrace.c */,
+ 72FDB15E0EA7D7B200B2AC84 /* launchd_ktrace.h */,
+ 72FDB1BF0EA7E21C00B2AC84 /* protocol_job_forward.defs */,
+ );
+ name = launchd;
+ sourceTree = "<group>";
+ };
+ FC59A0550E8C884700D41150 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ FC59A0600E8C885100D41150 /* liblaunch.a */,
+ FC59A0540E8C884700D41150 /* launchd */,
+ FC59A06D0E8C888A00D41150 /* launchctl */,
+ FC59A0910E8C892300D41150 /* SystemStarter */,
+ FC59A0CE0E8C8A5C00D41150 /* launchproxy */,
+ FCD7132B0E95D64D001B0111 /* wait4path */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ FC59A0A00E8C899600D41150 /* SystemStarter */ = {
+ isa = PBXGroup;
+ children = (
+ FC59A0FD0E8C8ADF00D41150 /* StartupItems.c */,
+ FC59A0FE0E8C8ADF00D41150 /* StartupItemContext.8 */,
+ FC59A0FF0E8C8ADF00D41150 /* StartupItemContext */,
+ FC59A1000E8C8ADF00D41150 /* SystemStarter.c */,
+ FC59A1010E8C8ADF00D41150 /* SystemStarter.8 */,
+ FC59A1020E8C8ADF00D41150 /* StartupItems.h */,
+ FC59A1030E8C8ADF00D41150 /* SystemStarterIPC.h */,
+ FC59A1040E8C8ADF00D41150 /* SystemStarter.h */,
+ FC59A0A40E8C89C100D41150 /* IPC.h */,
+ FC59A0A50E8C89C100D41150 /* IPC.c */,
+ FCD713200E95D5D3001B0111 /* com.apple.SystemStarter.plist */,
+ FCD713520E95D7B3001B0111 /* hostconfig */,
+ );
+ name = SystemStarter;
+ sourceTree = "<group>";
+ };
+ FC59A0A90E8C89C900D41150 /* launchctl */ = {
+ isa = PBXGroup;
+ children = (
+ FC59A0AD0E8C8A0E00D41150 /* launchctl.1 */,
+ FC59A0AE0E8C8A0E00D41150 /* launchctl.c */,
+ );
+ name = launchctl;
+ sourceTree = "<group>";
+ };
+ FC59A0C80E8C8A4E00D41150 /* launchproxy */ = {
+ isa = PBXGroup;
+ children = (
+ FC59A0DA0E8C8A6900D41150 /* launchproxy.c */,
+ FC59A0DB0E8C8A6900D41150 /* launchproxy.8 */,
+ );
+ name = launchproxy;
+ sourceTree = "<group>";
+ };
+ FC59A0E10E8C8A9400D41150 /* liblaunch */ = {
+ isa = PBXGroup;
+ children = (
+ FC59A0FB0E8C8ACE00D41150 /* reboot2.h */,
+ FC3627DF0E9344BF0054F1A3 /* protocol_vproc.defs */,
+ FC59A0E20E8C8AA600D41150 /* vproc.h */,
+ FC59A0E30E8C8AA600D41150 /* vproc_priv.h */,
+ FC59A0E40E8C8AA600D41150 /* vproc_internal.h */,
+ FC59A0E50E8C8AA600D41150 /* libvproc.c */,
+ FC59A0E60E8C8AA600D41150 /* launch.h */,
+ FC59A0E70E8C8AA600D41150 /* launch_priv.h */,
+ FC59A0E80E8C8AA600D41150 /* launch_internal.h */,
+ FC59A0E90E8C8AA600D41150 /* liblaunch.c */,
+ FC59A0EA0E8C8AA600D41150 /* bootstrap.h */,
+ FC59A0EB0E8C8AA600D41150 /* bootstrap_priv.h */,
+ FC59A0EC0E8C8AA600D41150 /* libbootstrap.c */,
+ );
+ name = liblaunch;
+ sourceTree = "<group>";
+ };
+ FCD713330E95D65F001B0111 /* wait4path */ = {
+ isa = PBXGroup;
+ children = (
+ FCD713370E95D69E001B0111 /* wait4path.1 */,
+ FCD713380E95D69E001B0111 /* wait4path.c */,
+ );
+ name = wait4path;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ FC59A05C0E8C885100D41150 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FC59A0ED0E8C8AA600D41150 /* vproc.h in Headers */,
+ FC59A0EE0E8C8AA600D41150 /* vproc_priv.h in Headers */,
+ FC59A0EF0E8C8AA600D41150 /* vproc_internal.h in Headers */,
+ FC59A0F10E8C8AA600D41150 /* launch.h in Headers */,
+ FC59A0F20E8C8AA600D41150 /* launch_priv.h in Headers */,
+ FC59A0F30E8C8AA600D41150 /* launch_internal.h in Headers */,
+ FC59A0F50E8C8AA600D41150 /* bootstrap.h in Headers */,
+ FC59A0F60E8C8AA600D41150 /* bootstrap_priv.h in Headers */,
+ FC59A0FC0E8C8ACE00D41150 /* reboot2.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ FC59A0530E8C884700D41150 /* launchd */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = FC59A0590E8C884800D41150 /* Build configuration list for PBXNativeTarget "launchd" */;
+ buildPhases = (
+ FC59A0510E8C884700D41150 /* Sources */,
+ FC59A0520E8C884700D41150 /* Frameworks */,
+ FC7B87FA0EA71AB400542082 /* CopyFiles */,
+ FC7B87E80EA719DB00542082 /* CopyFiles */,
+ FC3627D70E9343B90054F1A3 /* CopyFiles */,
+ FC7B87B20EA7195F00542082 /* ShellScript */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = launchd;
+ productName = launchd;
+ productReference = FC59A0540E8C884700D41150 /* launchd */;
+ productType = "com.apple.product-type.tool";
+ };
+ FC59A05F0E8C885100D41150 /* liblaunch */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = FC59A0650E8C886700D41150 /* Build configuration list for PBXNativeTarget "liblaunch" */;
+ buildPhases = (
+ FC59A05C0E8C885100D41150 /* Headers */,
+ FC59A05D0E8C885100D41150 /* Sources */,
+ FC59A05E0E8C885100D41150 /* Frameworks */,
+ FC7B88230EA7280100542082 /* ShellScript */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = liblaunch;
+ productName = launchd_libs;
+ productReference = FC59A0600E8C885100D41150 /* liblaunch.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+ FC59A06C0E8C888A00D41150 /* launchctl */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = FC59A0890E8C890A00D41150 /* Build configuration list for PBXNativeTarget "launchctl" */;
+ buildPhases = (
+ FC59A06A0E8C888A00D41150 /* Sources */,
+ FC59A06B0E8C888A00D41150 /* Frameworks */,
+ FCD713050E95D513001B0111 /* CopyFiles */,
+ FCC842860EA718C400C01666 /* ShellScript */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = launchctl;
+ productName = launchctl;
+ productReference = FC59A06D0E8C888A00D41150 /* launchctl */;
+ productType = "com.apple.product-type.tool";
+ };
+ FC59A0900E8C892300D41150 /* SystemStarter */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = FC59A09B0E8C892900D41150 /* Build configuration list for PBXNativeTarget "SystemStarter" */;
+ buildPhases = (
+ FC59A08E0E8C892300D41150 /* Sources */,
+ FC59A08F0E8C892300D41150 /* Frameworks */,
+ FC3627D60E9343B90054F1A3 /* CopyFiles */,
+ FCD713110E95D554001B0111 /* CopyFiles */,
+ FCD7131B0E95D59B001B0111 /* CopyFiles */,
+ FCD713590E95D7D8001B0111 /* CopyFiles */,
+ FCC8427E0EA7175100C01666 /* ShellScript */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = SystemStarter;
+ productName = SystemStarter;
+ productReference = FC59A0910E8C892300D41150 /* SystemStarter */;
+ productType = "com.apple.product-type.tool";
+ };
+ FC59A0CD0E8C8A5C00D41150 /* launchproxy */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = FC59A0D90E8C8A6000D41150 /* Build configuration list for PBXNativeTarget "launchproxy" */;
+ buildPhases = (
+ FC59A0CB0E8C8A5C00D41150 /* Sources */,
+ FC59A0CC0E8C8A5C00D41150 /* Frameworks */,
+ FCD713120E95D554001B0111 /* CopyFiles */,
+ FC7B87F20EA71A6200542082 /* ShellScript */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = launchproxy;
+ productName = launchproxy;
+ productReference = FC59A0CE0E8C8A5C00D41150 /* launchproxy */;
+ productType = "com.apple.product-type.tool";
+ };
+ FCD7132A0E95D64D001B0111 /* wait4path */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = FCD713340E95D65F001B0111 /* Build configuration list for PBXNativeTarget "wait4path" */;
+ buildPhases = (
+ FCD713280E95D64D001B0111 /* Sources */,
+ FCD713290E95D64D001B0111 /* Frameworks */,
+ FCD7134D0E95D728001B0111 /* CopyFiles */,
+ FC7B87EE0EA71A4900542082 /* ShellScript */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = wait4path;
+ productName = wait4path;
+ productReference = FCD7132B0E95D64D001B0111 /* wait4path */;
+ productType = "com.apple.product-type.tool";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ FC59A03F0E8C87FD00D41150 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = FC59A0420E8C87FD00D41150 /* Build configuration list for PBXProject "launchd" */;
+ compatibilityVersion = "Xcode 2.4";
+ hasScannedForEncodings = 0;
+ mainGroup = FC59A03D0E8C87FD00D41150;
+ productRefGroup = FC59A0550E8C884700D41150 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ FC59A0750E8C88AC00D41150 /* Default */,
+ FC59A0530E8C884700D41150 /* launchd */,
+ FC59A06C0E8C888A00D41150 /* launchctl */,
+ FC59A0CD0E8C8A5C00D41150 /* launchproxy */,
+ FC59A0900E8C892300D41150 /* SystemStarter */,
+ FCD7132A0E95D64D001B0111 /* wait4path */,
+ FC59A07A0E8C88BB00D41150 /* launchd_libs */,
+ FC59A05F0E8C885100D41150 /* liblaunch */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ FC7B87B20EA7195F00542082 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 8;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ shellPath = /bin/sh;
+ shellScript = "/Developer/Makefiles/bin/compress-man-pages.pl -d \"$DSTROOT\" /usr/share/man";
+ showEnvVarsInLog = 0;
+ };
+ FC7B87EE0EA71A4900542082 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 8;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ shellPath = /bin/sh;
+ shellScript = "/Developer/Makefiles/bin/compress-man-pages.pl -d \"$DSTROOT\" /usr/share/man";
+ showEnvVarsInLog = 0;
+ };
+ FC7B87F20EA71A6200542082 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 8;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ shellPath = /bin/sh;
+ shellScript = "/Developer/Makefiles/bin/compress-man-pages.pl -d \"$DSTROOT\" /usr/share/man";
+ showEnvVarsInLog = 0;
+ };
+ FC7B88230EA7280100542082 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 8;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ shellPath = /bin/sh;
+ shellScript = "install -o \"$INSTALL_OWNER\" -g \"$INSTALL_GROUP\" -m 0755 -d \"$DSTROOT\"/usr/include/servers\nmv \"$DSTROOT\"/usr/include/bootstrap.h \"$DSTROOT\"/usr/include/servers/\nln -sf bootstrap.h \"$DSTROOT\"/usr/include/servers/bootstrap_defs.h";
+ showEnvVarsInLog = 0;
+ };
+ FCC8427E0EA7175100C01666 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 8;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ shellPath = /bin/sh;
+ shellScript = "install -o \"$INSTALL_OWNER\" -g \"$INSTALL_GROUP\" -m 0755 -d \"$DSTROOT\"/System/Library/StartupItems\ninstall -o \"$INSTALL_OWNER\" -g \"$INSTALL_GROUP\" -m 0755 -d \"$DSTROOT\"/Library/StartupItems\n/Developer/Makefiles/bin/compress-man-pages.pl -d \"$DSTROOT\" /usr/share/man";
+ showEnvVarsInLog = 0;
+ };
+ FCC842860EA718C400C01666 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 8;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ shellPath = /bin/sh;
+ shellScript = "install -o \"$INSTALL_OWNER\" -g \"$INSTALL_GROUP\" -m 0755 -d \"$DSTROOT\"/System/Library/LaunchAgents\ninstall -o \"$INSTALL_OWNER\" -g \"$INSTALL_GROUP\" -m 0755 -d \"$DSTROOT\"/System/Library/LaunchDaemons\ninstall -o \"$INSTALL_OWNER\" -g \"$INSTALL_GROUP\" -m 0755 -d \"$DSTROOT\"/Library/LaunchAgents\ninstall -o \"$INSTALL_OWNER\" -g \"$INSTALL_GROUP\" -m 0755 -d \"$DSTROOT\"/Library/LaunchDaemons\ninstall -o \"$INSTALL_OWNER\" -g \"$INSTALL_GROUP\" -m 0755 -d \"$DSTROOT\"/private/etc/mach_init.d\ninstall -o \"$INSTALL_OWNER\" -g \"$INSTALL_GROUP\" -m 0755 -d \"$DSTROOT\"/private/etc/mach_init_per_login_session.d\ninstall -o \"$INSTALL_OWNER\" -g \"$INSTALL_GROUP\" -m 0755 -d \"$DSTROOT\"/private/etc/mach_init_per_user.d\n/Developer/Makefiles/bin/compress-man-pages.pl -d \"$DSTROOT\" /usr/share/man";
+ showEnvVarsInLog = 0;
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ FC59A0510E8C884700D41150 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FC59A0BF0E8C8A2A00D41150 /* launchd_internal.defs in Sources */,
+ FC3627E10E9344BF0054F1A3 /* protocol_vproc.defs in Sources */,
+ FC3629170E9348390054F1A3 /* protocol_job_reply.defs in Sources */,
+ 726055EC0EA7EC2400D65FE7 /* exc.defs in Sources */,
+ FC36290D0E93475F0054F1A3 /* notify.defs in Sources */,
+ FC59A0C50E8C8A4700D41150 /* launchd.c in Sources */,
+ FC59A0BA0E8C8A1F00D41150 /* launchd_runtime.c in Sources */,
+ FC59A0B90E8C8A1F00D41150 /* launchd_runtime_kill.c in Sources */,
+ FC59A0BB0E8C8A1F00D41150 /* launchd_core_logic.c in Sources */,
+ FC59A0B80E8C8A1F00D41150 /* launchd_unix_ipc.c in Sources */,
+ 72FDB15F0EA7D7B200B2AC84 /* launchd_ktrace.c in Sources */,
+ 72FDB1C00EA7E21C00B2AC84 /* protocol_job_forward.defs in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FC59A05D0E8C885100D41150 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FC59A0F40E8C8AA600D41150 /* liblaunch.c in Sources */,
+ FC59A0F00E8C8AA600D41150 /* libvproc.c in Sources */,
+ FC59A0F70E8C8AA600D41150 /* libbootstrap.c in Sources */,
+ FC3627E00E9344BF0054F1A3 /* protocol_vproc.defs in Sources */,
+ 726056090EA7FCF200D65FE7 /* launchd_ktrace.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FC59A06A0E8C888A00D41150 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FC59A0AF0E8C8A0E00D41150 /* launchctl.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FC59A08E0E8C892300D41150 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FC3627BB0E93432A0054F1A3 /* SystemStarter.c in Sources */,
+ FC3627BA0E9343220054F1A3 /* StartupItems.c in Sources */,
+ FC59A0A60E8C89C100D41150 /* IPC.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FC59A0CB0E8C8A5C00D41150 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FC59A0DC0E8C8A6900D41150 /* launchproxy.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FCD713280E95D64D001B0111 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FCD713390E95D69E001B0111 /* wait4path.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ FC59A07E0E8C88C100D41150 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = FC59A05F0E8C885100D41150 /* liblaunch */;
+ targetProxy = FC59A07D0E8C88C100D41150 /* PBXContainerItemProxy */;
+ };
+ FC59A0800E8C88FA00D41150 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = FC59A0530E8C884700D41150 /* launchd */;
+ targetProxy = FC59A07F0E8C88FA00D41150 /* PBXContainerItemProxy */;
+ };
+ FC59A0820E8C88FC00D41150 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = FC59A06C0E8C888A00D41150 /* launchctl */;
+ targetProxy = FC59A0810E8C88FC00D41150 /* PBXContainerItemProxy */;
+ };
+ FC59A09D0E8C893000D41150 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = FC59A0900E8C892300D41150 /* SystemStarter */;
+ targetProxy = FC59A09C0E8C893000D41150 /* PBXContainerItemProxy */;
+ };
+ FC59A0DE0E8C8A7000D41150 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = FC59A0CD0E8C8A5C00D41150 /* launchproxy */;
+ targetProxy = FC59A0DD0E8C8A7000D41150 /* PBXContainerItemProxy */;
+ };
+ FCC842810EA718A800C01666 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = FCD7132A0E95D64D001B0111 /* wait4path */;
+ targetProxy = FCC842800EA718A800C01666 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ FC59A0410E8C87FD00D41150 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ DEAD_CODE_STRIPPING = YES;
+ GCC_MODEL_TUNING = "";
+ GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+ GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
+ GCC_TREAT_WARNINGS_AS_ERRORS = YES;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_SHADOW = YES;
+ INSTALL_MODE_FLAG = "ugo-w,a+rX";
+ OTHER_CFLAGS = (
+ "-D__MigTypeCheck=1",
+ "-Dmig_external=__private_extern__",
+ "-D_DARWIN_USE_64_BIT_INODE=1",
+ );
+ WARNING_CFLAGS = (
+ "-Wall",
+ "-Wextra",
+ "-Waggregate-return",
+ "-Wmissing-declarations",
+ );
+ };
+ name = Release;
+ };
+ FC59A0580E8C884800D41150 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ DEAD_CODE_STRIPPING = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ INSTALL_PATH = /sbin;
+ PREBINDING = NO;
+ PRODUCT_NAME = launchd;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+ FC59A0620E8C885100D41150 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(NATIVE_ARCH_ACTUAL)";
+ BUILD_VARIANTS = (
+ normal,
+ debug,
+ profile,
+ );
+ COPY_PHASE_STRIP = YES;
+ CURRENT_PROJECT_VERSION = "$(RC_ProjectSourceVersion)";
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ INSTALL_PATH = /usr/local/lib/system;
+ OTHER_CFLAGS = (
+ "-D__MigTypeCheck=1",
+ "-Dmig_external=__private_extern__",
+ "-D__DARWIN_NON_CANCELABLE=1",
+ "-D_DARWIN_USE_64_BIT_INODE=1",
+ );
+ PRODUCT_NAME = launch;
+ PUBLIC_HEADERS_FOLDER_PATH = /usr/include;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = __;
+ };
+ name = Release;
+ };
+ FC59A0700E8C888A00D41150 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386";
+ COPY_PHASE_STRIP = YES;
+ DEAD_CODE_STRIPPING = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ INSTALL_PATH = /bin;
+ PREBINDING = NO;
+ PRODUCT_NAME = launchctl;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+ FC59A0770E8C88AC00D41150 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ PRODUCT_NAME = Default;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+ FC59A07C0E8C88BC00D41150 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ PRODUCT_NAME = launchd_libs;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+ FC59A0940E8C892400D41150 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386";
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ INSTALL_PATH = /sbin;
+ PREBINDING = NO;
+ PRODUCT_NAME = SystemStarter;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+ FC59A0D10E8C8A5C00D41150 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386";
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ INSTALL_PATH = /usr/libexec;
+ PREBINDING = NO;
+ PRODUCT_NAME = launchproxy;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+ FCD7132E0E95D64E001B0111 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386";
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ INSTALL_PATH = /bin;
+ PREBINDING = NO;
+ PRODUCT_NAME = wait4path;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ FC59A0420E8C87FD00D41150 /* Build configuration list for PBXProject "launchd" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ FC59A0410E8C87FD00D41150 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ FC59A0590E8C884800D41150 /* Build configuration list for PBXNativeTarget "launchd" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ FC59A0580E8C884800D41150 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ FC59A0650E8C886700D41150 /* Build configuration list for PBXNativeTarget "liblaunch" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ FC59A0620E8C885100D41150 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ FC59A0890E8C890A00D41150 /* Build configuration list for PBXNativeTarget "launchctl" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ FC59A0700E8C888A00D41150 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ FC59A08A0E8C890A00D41150 /* Build configuration list for PBXAggregateTarget "Default" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ FC59A0770E8C88AC00D41150 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ FC59A08B0E8C890A00D41150 /* Build configuration list for PBXAggregateTarget "launchd_libs" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ FC59A07C0E8C88BC00D41150 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ FC59A09B0E8C892900D41150 /* Build configuration list for PBXNativeTarget "SystemStarter" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ FC59A0940E8C892400D41150 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ FC59A0D90E8C8A6000D41150 /* Build configuration list for PBXNativeTarget "launchproxy" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ FC59A0D10E8C8A5C00D41150 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ FCD713340E95D65F001B0111 /* Build configuration list for PBXNativeTarget "wait4path" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ FCD7132E0E95D64E001B0111 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = FC59A03F0E8C87FD00D41150 /* Project object */;
+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20081016/b792d244/attachment-0001.html
More information about the launchd-changes
mailing list