[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