[launchd-changes] [22910] trunk/launchd/src

source_changes at macosforge.org source_changes at macosforge.org
Mon Oct 23 10:46:26 PDT 2006


Revision: 22910
          http://trac.macosforge.org/projects/launchd/changeset/22910
Author:   zarzycki at apple.com
Date:     2006-10-23 10:46:23 -0700 (Mon, 23 Oct 2006)

Log Message:
-----------
First stage in the activation of the vproc APIs.

Modified Paths:
--------------
    trunk/launchd/src/Makefile.am
    trunk/launchd/src/Makefile.in
    trunk/launchd/src/launchctl.c
    trunk/launchd/src/launchd.c
    trunk/launchd/src/launchd_core_logic.c
    trunk/launchd/src/liblaunch.c
    trunk/launchd/src/protocol_job.defs
    trunk/launchd/src/protocol_job_reply.defs
    trunk/launchd/src/vproc.h

Added Paths:
-----------
    trunk/launchd/src/libbootstrap.c
    trunk/launchd/src/libvproc.c
    trunk/launchd/src/vproc_priv.h

Removed Paths:
-------------
    trunk/launchd/src/bootstrap_private.h
    trunk/launchd/src/bootstrap_public.c
    trunk/launchd/src/protocol_legacy.defs

Modified: trunk/launchd/src/Makefile.am
===================================================================
--- trunk/launchd/src/Makefile.am	2006-10-20 23:24:08 UTC (rev 22909)
+++ trunk/launchd/src/Makefile.am	2006-10-23 17:46:23 UTC (rev 22910)
@@ -1,22 +1,22 @@
 AM_CFLAGS = -no-cpp-precomp -F/System/Library/PrivateFrameworks -Wall -Wextra -Waggregate-return -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror -D__MigTypeCheck=1
 
-CLEANFILES = bootstrap.h bootstrapServer.c bootstrapUser.c bootstrapServer.h					\
+CLEANFILES = protocol_vproc.h protocol_vprocServer.c protocol_vprocUser.c protocol_vprocServer.h		\
 	     launchd_internal.h launchd_internalServer.h launchd_internalServer.h launchd_internalUser.c	\
 	     notifyServer.c notifyServer.h job_replyUser.c job_reply.h 
 
-bootstrap.h bootstrapServer.c bootstrapUser.c bootstrapServer.h: $(srcdir)/protocol_legacy.defs
-	mig $(MIGFLAGS) -sheader bootstrapServer.h $(srcdir)/protocol_legacy.defs
+protocol_vproc.h protocol_vprocServer.c protocol_vprocUser.c protocol_vprocServer.h: $(srcdir)/protocol_job.defs
+	mig $(MIGFLAGS) -sheader protocol_vprocServer.h $(srcdir)/protocol_job.defs
 
 if LIBS_ONLY
 
 noinst_LIBRARIES = liblaunch.a liblaunch_profile.a
 
-liblaunch_a_SOURCES = liblaunch.c bootstrap_public.c
+liblaunch_a_SOURCES = liblaunch.c libvproc.c
 
 liblaunch_profile_a_CFLAGS = -pg $(AM_CFLAGS)
-liblaunch_profile_a_SOURCES = liblaunch.c bootstrap_public.c
+liblaunch_profile_a_SOURCES = liblaunch.c libvproc.c
 
-$(srcdir)/bootstrap_public.c:: bootstrap.h
+$(srcdir)/libvproc.c:: protocol_vproc.h
 
 install-data-hook:
 	mkdir -p $(DESTDIR)/usr/local/lib/system
@@ -43,10 +43,10 @@
 
 launchd_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS) -Wno-unused-parameter -fvisibility=hidden
 launchd_LDFLAGS = -lbsm
-launchd_SOURCES = launchd.c launchd_core_logic.c launchd_unix_ipc.c init.c bootstrapServer.c notifyServer.c launchd_internalUser.c launchd_internalServer.c job_replyUser.c launchd_runtime.c
+launchd_SOURCES = launchd.c launchd_core_logic.c launchd_unix_ipc.c init.c protocol_vprocServer.c notifyServer.c launchd_internalUser.c launchd_internalServer.c job_replyUser.c launchd_runtime.c
 
 launchd_runtime.c:: notifyServer.h launchd_internal.h
-launchd_core_logic.c:: bootstrap.h job_reply.h bootstrap.h bootstrapServer.h
+launchd_core_logic.c:: protocol_vproc.h job_reply.h protocol_vprocServer.h
 
 launchproxy_LDFLAGS = -weak_framework Security
 

Modified: trunk/launchd/src/Makefile.in
===================================================================
--- trunk/launchd/src/Makefile.in	2006-10-20 23:24:08 UTC (rev 22909)
+++ trunk/launchd/src/Makefile.in	2006-10-23 17:46:23 UTC (rev 22910)
@@ -56,16 +56,16 @@
 ARFLAGS = cru
 liblaunch_a_AR = $(AR) $(ARFLAGS)
 liblaunch_a_LIBADD =
-am__liblaunch_a_SOURCES_DIST = liblaunch.c bootstrap_public.c
+am__liblaunch_a_SOURCES_DIST = liblaunch.c libvproc.c
 @LIBS_ONLY_TRUE at am_liblaunch_a_OBJECTS = liblaunch.$(OBJEXT) \
- at LIBS_ONLY_TRUE@	bootstrap_public.$(OBJEXT)
+ at LIBS_ONLY_TRUE@	libvproc.$(OBJEXT)
 liblaunch_a_OBJECTS = $(am_liblaunch_a_OBJECTS)
 liblaunch_profile_a_AR = $(AR) $(ARFLAGS)
 liblaunch_profile_a_LIBADD =
-am__liblaunch_profile_a_SOURCES_DIST = liblaunch.c bootstrap_public.c
+am__liblaunch_profile_a_SOURCES_DIST = liblaunch.c libvproc.c
 @LIBS_ONLY_TRUE at am_liblaunch_profile_a_OBJECTS =  \
 @LIBS_ONLY_TRUE@	liblaunch_profile_a-liblaunch.$(OBJEXT) \
- at LIBS_ONLY_TRUE@	liblaunch_profile_a-bootstrap_public.$(OBJEXT)
+ at LIBS_ONLY_TRUE@	liblaunch_profile_a-libvproc.$(OBJEXT)
 liblaunch_profile_a_OBJECTS = $(am_liblaunch_profile_a_OBJECTS)
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" \
 	"$(DESTDIR)$(sbindir)" "$(DESTDIR)$(sbindir)" \
@@ -86,14 +86,14 @@
 launchctl_OBJECTS = launchctl-launchctl.$(OBJEXT)
 launchctl_LDADD = $(LDADD)
 am__launchd_SOURCES_DIST = launchd.c launchd_core_logic.c \
-	launchd_unix_ipc.c init.c bootstrapServer.c notifyServer.c \
-	launchd_internalUser.c launchd_internalServer.c \
+	launchd_unix_ipc.c init.c protocol_vprocServer.c \
+	notifyServer.c launchd_internalUser.c launchd_internalServer.c \
 	job_replyUser.c launchd_runtime.c
 @LIBS_ONLY_FALSE at am_launchd_OBJECTS = launchd-launchd.$(OBJEXT) \
 @LIBS_ONLY_FALSE@	launchd-launchd_core_logic.$(OBJEXT) \
 @LIBS_ONLY_FALSE@	launchd-launchd_unix_ipc.$(OBJEXT) \
 @LIBS_ONLY_FALSE@	launchd-init.$(OBJEXT) \
- at LIBS_ONLY_FALSE@	launchd-bootstrapServer.$(OBJEXT) \
+ at LIBS_ONLY_FALSE@	launchd-protocol_vprocServer.$(OBJEXT) \
 @LIBS_ONLY_FALSE@	launchd-notifyServer.$(OBJEXT) \
 @LIBS_ONLY_FALSE@	launchd-launchd_internalUser.$(OBJEXT) \
 @LIBS_ONLY_FALSE@	launchd-launchd_internalServer.$(OBJEXT) \
@@ -222,14 +222,14 @@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
 AM_CFLAGS = -no-cpp-precomp -F/System/Library/PrivateFrameworks -Wall -Wextra -Waggregate-return -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror -D__MigTypeCheck=1
-CLEANFILES = bootstrap.h bootstrapServer.c bootstrapUser.c bootstrapServer.h					\
+CLEANFILES = protocol_vproc.h protocol_vprocServer.c protocol_vprocUser.c protocol_vprocServer.h		\
 	     launchd_internal.h launchd_internalServer.h launchd_internalServer.h launchd_internalUser.c	\
 	     notifyServer.c notifyServer.h job_replyUser.c job_reply.h 
 
 @LIBS_ONLY_TRUE at noinst_LIBRARIES = liblaunch.a liblaunch_profile.a
- at LIBS_ONLY_TRUE@liblaunch_a_SOURCES = liblaunch.c bootstrap_public.c
+ at LIBS_ONLY_TRUE@liblaunch_a_SOURCES = liblaunch.c libvproc.c
 @LIBS_ONLY_TRUE at liblaunch_profile_a_CFLAGS = -pg $(AM_CFLAGS)
- at LIBS_ONLY_TRUE@liblaunch_profile_a_SOURCES = liblaunch.c bootstrap_public.c
+ at LIBS_ONLY_TRUE@liblaunch_profile_a_SOURCES = liblaunch.c libvproc.c
 @LIBS_ONLY_FALSE at sbin_SCRIPTS = service
 @LIBS_ONLY_FALSE at sysconf_DATA = hostconfig rc.common rc.netboot rc.shutdown
 @LIBS_ONLY_FALSE at launchctl_CFLAGS = $(AM_CFLAGS) -fvisibility=hidden -I/System/Library/Frameworks/System.framework/PrivateHeaders
@@ -239,7 +239,7 @@
 @LIBS_ONLY_FALSE at SystemStarter_SOURCES = StartupItems.c IPC.c SystemStarter.c
 @LIBS_ONLY_FALSE at launchd_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS) -Wno-unused-parameter -fvisibility=hidden
 @LIBS_ONLY_FALSE at launchd_LDFLAGS = -lbsm
- at LIBS_ONLY_FALSE@launchd_SOURCES = launchd.c launchd_core_logic.c launchd_unix_ipc.c init.c bootstrapServer.c notifyServer.c launchd_internalUser.c launchd_internalServer.c job_replyUser.c launchd_runtime.c
+ at LIBS_ONLY_FALSE@launchd_SOURCES = launchd.c launchd_core_logic.c launchd_unix_ipc.c init.c protocol_vprocServer.c notifyServer.c launchd_internalUser.c launchd_internalServer.c job_replyUser.c launchd_runtime.c
 @LIBS_ONLY_FALSE at launchproxy_LDFLAGS = -weak_framework Security
 @LIBS_ONLY_FALSE at man1_MANS = wait4path.1 launchctl.1
 @LIBS_ONLY_FALSE at man5_MANS = launchd.plist.5 launchd.conf.5
@@ -420,9 +420,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/SystemStarter-IPC.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/SystemStarter-StartupItems.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/SystemStarter-SystemStarter.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/bootstrap_public.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchctl-launchctl.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-bootstrapServer.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-init.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-job_replyUser.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd.Po at am__quote@
@@ -432,10 +430,12 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd_runtime.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd_unix_ipc.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-notifyServer.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-protocol_vprocServer.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchproxy.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-bootstrap_public.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-liblaunch.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-libvproc.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libvproc.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/wait4path.Po at am__quote@
 
 .c.o:
@@ -466,19 +466,19 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-liblaunch.obj `if test -f 'liblaunch.c'; then $(CYGPATH_W) 'liblaunch.c'; else $(CYGPATH_W) '$(srcdir)/liblaunch.c'; fi`
 
-liblaunch_profile_a-bootstrap_public.o: bootstrap_public.c
- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-bootstrap_public.o -MD -MP -MF "$(DEPDIR)/liblaunch_profile_a-bootstrap_public.Tpo" -c -o liblaunch_profile_a-bootstrap_public.o `test -f 'bootstrap_public.c' || echo '$(srcdir)/'`bootstrap_public.c; \
- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/liblaunch_profile_a-bootstrap_public.Tpo" "$(DEPDIR)/liblaunch_profile_a-bootstrap_public.Po"; else rm -f "$(DEPDIR)/liblaunch_profile_a-bootstrap_public.Tpo"; exit 1; fi
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bootstrap_public.c' object='liblaunch_profile_a-bootstrap_public.o' libtool=no @AMDEPBACKSLASH@
+liblaunch_profile_a-libvproc.o: libvproc.c
+ at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-libvproc.o -MD -MP -MF "$(DEPDIR)/liblaunch_profile_a-libvproc.Tpo" -c -o liblaunch_profile_a-libvproc.o `test -f 'libvproc.c' || echo '$(srcdir)/'`libvproc.c; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/liblaunch_profile_a-libvproc.Tpo" "$(DEPDIR)/liblaunch_profile_a-libvproc.Po"; else rm -f "$(DEPDIR)/liblaunch_profile_a-libvproc.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libvproc.c' object='liblaunch_profile_a-libvproc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-bootstrap_public.o `test -f 'bootstrap_public.c' || echo '$(srcdir)/'`bootstrap_public.c
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-libvproc.o `test -f 'libvproc.c' || echo '$(srcdir)/'`libvproc.c
 
-liblaunch_profile_a-bootstrap_public.obj: bootstrap_public.c
- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-bootstrap_public.obj -MD -MP -MF "$(DEPDIR)/liblaunch_profile_a-bootstrap_public.Tpo" -c -o liblaunch_profile_a-bootstrap_public.obj `if test -f 'bootstrap_public.c'; then $(CYGPATH_W) 'bootstrap_public.c'; else $(CYGPATH_W) '$(srcdir)/bootstrap_public.c'; fi`; \
- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/liblaunch_profile_a-bootstrap_public.Tpo" "$(DEPDIR)/liblaunch_profile_a-bootstrap_public.Po"; else rm -f "$(DEPDIR)/liblaunch_profile_a-bootstrap_public.Tpo"; exit 1; fi
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bootstrap_public.c' object='liblaunch_profile_a-bootstrap_public.obj' libtool=no @AMDEPBACKSLASH@
+liblaunch_profile_a-libvproc.obj: libvproc.c
+ at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-libvproc.obj -MD -MP -MF "$(DEPDIR)/liblaunch_profile_a-libvproc.Tpo" -c -o liblaunch_profile_a-libvproc.obj `if test -f 'libvproc.c'; then $(CYGPATH_W) 'libvproc.c'; else $(CYGPATH_W) '$(srcdir)/libvproc.c'; fi`; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/liblaunch_profile_a-libvproc.Tpo" "$(DEPDIR)/liblaunch_profile_a-libvproc.Po"; else rm -f "$(DEPDIR)/liblaunch_profile_a-libvproc.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libvproc.c' object='liblaunch_profile_a-libvproc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-bootstrap_public.obj `if test -f 'bootstrap_public.c'; then $(CYGPATH_W) 'bootstrap_public.c'; else $(CYGPATH_W) '$(srcdir)/bootstrap_public.c'; fi`
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -c -o liblaunch_profile_a-libvproc.obj `if test -f 'libvproc.c'; then $(CYGPATH_W) 'libvproc.c'; else $(CYGPATH_W) '$(srcdir)/libvproc.c'; fi`
 
 SystemStarter-StartupItems.o: StartupItems.c
 @am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SystemStarter_CFLAGS) $(CFLAGS) -MT SystemStarter-StartupItems.o -MD -MP -MF "$(DEPDIR)/SystemStarter-StartupItems.Tpo" -c -o SystemStarter-StartupItems.o `test -f 'StartupItems.c' || echo '$(srcdir)/'`StartupItems.c; \
@@ -592,19 +592,19 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-init.obj `if test -f 'init.c'; then $(CYGPATH_W) 'init.c'; else $(CYGPATH_W) '$(srcdir)/init.c'; fi`
 
-launchd-bootstrapServer.o: bootstrapServer.c
- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-bootstrapServer.o -MD -MP -MF "$(DEPDIR)/launchd-bootstrapServer.Tpo" -c -o launchd-bootstrapServer.o `test -f 'bootstrapServer.c' || echo '$(srcdir)/'`bootstrapServer.c; \
- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/launchd-bootstrapServer.Tpo" "$(DEPDIR)/launchd-bootstrapServer.Po"; else rm -f "$(DEPDIR)/launchd-bootstrapServer.Tpo"; exit 1; fi
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bootstrapServer.c' object='launchd-bootstrapServer.o' libtool=no @AMDEPBACKSLASH@
+launchd-protocol_vprocServer.o: protocol_vprocServer.c
+ at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-protocol_vprocServer.o -MD -MP -MF "$(DEPDIR)/launchd-protocol_vprocServer.Tpo" -c -o launchd-protocol_vprocServer.o `test -f 'protocol_vprocServer.c' || echo '$(srcdir)/'`protocol_vprocServer.c; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/launchd-protocol_vprocServer.Tpo" "$(DEPDIR)/launchd-protocol_vprocServer.Po"; else rm -f "$(DEPDIR)/launchd-protocol_vprocServer.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='protocol_vprocServer.c' object='launchd-protocol_vprocServer.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-bootstrapServer.o `test -f 'bootstrapServer.c' || echo '$(srcdir)/'`bootstrapServer.c
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-protocol_vprocServer.o `test -f 'protocol_vprocServer.c' || echo '$(srcdir)/'`protocol_vprocServer.c
 
-launchd-bootstrapServer.obj: bootstrapServer.c
- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-bootstrapServer.obj -MD -MP -MF "$(DEPDIR)/launchd-bootstrapServer.Tpo" -c -o launchd-bootstrapServer.obj `if test -f 'bootstrapServer.c'; then $(CYGPATH_W) 'bootstrapServer.c'; else $(CYGPATH_W) '$(srcdir)/bootstrapServer.c'; fi`; \
- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/launchd-bootstrapServer.Tpo" "$(DEPDIR)/launchd-bootstrapServer.Po"; else rm -f "$(DEPDIR)/launchd-bootstrapServer.Tpo"; exit 1; fi
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bootstrapServer.c' object='launchd-bootstrapServer.obj' libtool=no @AMDEPBACKSLASH@
+launchd-protocol_vprocServer.obj: protocol_vprocServer.c
+ at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-protocol_vprocServer.obj -MD -MP -MF "$(DEPDIR)/launchd-protocol_vprocServer.Tpo" -c -o launchd-protocol_vprocServer.obj `if test -f 'protocol_vprocServer.c'; then $(CYGPATH_W) 'protocol_vprocServer.c'; else $(CYGPATH_W) '$(srcdir)/protocol_vprocServer.c'; fi`; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/launchd-protocol_vprocServer.Tpo" "$(DEPDIR)/launchd-protocol_vprocServer.Po"; else rm -f "$(DEPDIR)/launchd-protocol_vprocServer.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='protocol_vprocServer.c' object='launchd-protocol_vprocServer.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-bootstrapServer.obj `if test -f 'bootstrapServer.c'; then $(CYGPATH_W) 'bootstrapServer.c'; else $(CYGPATH_W) '$(srcdir)/bootstrapServer.c'; fi`
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -c -o launchd-protocol_vprocServer.obj `if test -f 'protocol_vprocServer.c'; then $(CYGPATH_W) 'protocol_vprocServer.c'; else $(CYGPATH_W) '$(srcdir)/protocol_vprocServer.c'; fi`
 
 launchd-notifyServer.o: notifyServer.c
 @am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-notifyServer.o -MD -MP -MF "$(DEPDIR)/launchd-notifyServer.Tpo" -c -o launchd-notifyServer.o `test -f 'notifyServer.c' || echo '$(srcdir)/'`notifyServer.c; \
@@ -1013,10 +1013,10 @@
 	uninstall-sbinSCRIPTS uninstall-sysconfDATA
 
 
-bootstrap.h bootstrapServer.c bootstrapUser.c bootstrapServer.h: $(srcdir)/protocol_legacy.defs
-	mig $(MIGFLAGS) -sheader bootstrapServer.h $(srcdir)/protocol_legacy.defs
+protocol_vproc.h protocol_vprocServer.c protocol_vprocUser.c protocol_vprocServer.h: $(srcdir)/protocol_job.defs
+	mig $(MIGFLAGS) -sheader protocol_vprocServer.h $(srcdir)/protocol_job.defs
 
- at LIBS_ONLY_TRUE@$(srcdir)/bootstrap_public.c:: bootstrap.h
+ at LIBS_ONLY_TRUE@$(srcdir)/libvproc.c:: protocol_vproc.h
 
 @LIBS_ONLY_TRUE at install-data-hook:
 @LIBS_ONLY_TRUE@	mkdir -p $(DESTDIR)/usr/local/lib/system
@@ -1025,7 +1025,7 @@
 @LIBS_ONLY_TRUE@	cp liblaunch_profile.a $(DESTDIR)/usr/local/lib/system/liblaunch_profile.a
 
 @LIBS_ONLY_FALSE at launchd_runtime.c:: notifyServer.h launchd_internal.h
- at LIBS_ONLY_FALSE@launchd_core_logic.c:: bootstrap.h job_reply.h bootstrap.h bootstrapServer.h
+ at LIBS_ONLY_FALSE@launchd_core_logic.c:: protocol_vproc.h job_reply.h protocol_vprocServer.h
 
 @LIBS_ONLY_FALSE at notifyServer.c notifyServer.h: /usr/include/mach/notify.defs
 @LIBS_ONLY_FALSE@	mig $(MIGFLAGS) -header /dev/null -user /dev/null -sheader notifyServer.h /usr/include/mach/notify.defs

Deleted: trunk/launchd/src/bootstrap_private.h
===================================================================
--- trunk/launchd/src/bootstrap_private.h	2006-10-20 23:24:08 UTC (rev 22909)
+++ trunk/launchd/src/bootstrap_private.h	2006-10-23 17:46:23 UTC (rev 22910)
@@ -1,62 +0,0 @@
-#ifndef _BOOTSTRAP_PRIVATE_H_
-#define _BOOTSTRAP_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@
- */
-
-typedef char * _internal_string_t;
-typedef mach_port_t vproc_mig_t;
-
-#ifdef bootstrap_MSG_COUNT
-/* HACK */
-#include "launchd_core_logic.h"
-#endif
-
-#define SPAWN_HAS_PATH			0x0001
-#define SPAWN_HAS_WDIR			0x0002
-#define SPAWN_HAS_UMASK			0x0004
-#define SPAWN_WANTS_WAIT4DEBUGGER	0x0008
-#define SPAWN_WANTS_FORCE_PPC		0x0010
-
-kern_return_t
-_launchd_to_launchd(mach_port_t bp, mach_port_t *reqport, mach_port_t *rcvright,
-		name_array_t *service_names, mach_msg_type_number_t *service_namesCnt,
-		mach_port_array_t *ports, mach_msg_type_number_t *portCnt);
-
-kern_return_t bootstrap_getsocket(mach_port_t bp, name_t);
-
-
-kern_return_t
-bootstrap_look_up_array(
-		mach_port_t bp,
-		name_array_t service_names,
-		mach_msg_type_number_t service_namesCnt,
-		mach_port_array_t *sps,
-		mach_msg_type_number_t *service_portsCnt,
-		boolean_t *all_services_known);
-
-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);
-
-#endif

Deleted: trunk/launchd/src/bootstrap_public.c
===================================================================
--- trunk/launchd/src/bootstrap_public.c	2006-10-20 23:24:08 UTC (rev 22909)
+++ trunk/launchd/src/bootstrap_public.c	2006-10-23 17:46:23 UTC (rev 22910)
@@ -1,291 +0,0 @@
-/*
- * 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@
- */
-
-#include <mach/mach.h>
-#include <mach/vm_map.h>
-
-#include "bootstrap_public.h"
-#include "bootstrap_private.h"
-#include "launch.h"
-#include "launch_priv.h"
-
-#define mig_external static
-#include "bootstrap.h"
-#include "bootstrapUser.c"
-
-#include <sys/param.h>
-#include <stdlib.h>
-#include <errno.h>
-
-kern_return_t
-_launchd_to_launchd(mach_port_t bp, mach_port_t *reqport, mach_port_t *rcvright,
-		name_array_t *service_names, mach_msg_type_number_t *service_namesCnt,
-		mach_port_array_t *ports, mach_msg_type_number_t *portCnt)
-{
-	return vproc_mig_transfer_subset(bp, reqport, rcvright, service_names, service_namesCnt, ports, portCnt);
-}
-
-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 kr;
-	const char *const *tmpp;
-	size_t len, buf_len = strlen(label) + 1;
-	char *buf = strdup(label);
-	uint64_t flags = 0;
-	uint32_t argc = 0;
-	uint32_t envc = 0;
-	pid_t p = -1;
-	mode_t u_mask = CMASK;
-	mach_port_t obsvr_port = MACH_PORT_NULL;
-
-	for (tmpp = argv; *tmpp; tmpp++) {
-		argc++;
-		len = strlen(*tmpp) + 1;
-		buf = reallocf(buf, buf_len + len);
-		strcpy(buf + buf_len, *tmpp);
-		buf_len += len;
-	}
-
-	if (spawn_attrs) switch (struct_version) {
-	case 0:
-		if (spawn_attrs->spawn_flags & SPAWN_VIA_LAUNCHD_STOPPED) {
-			flags |= SPAWN_WANTS_WAIT4DEBUGGER;
-		}
-		if (spawn_attrs->spawn_flags & SPAWN_VIA_LAUNCHD_FORCE_PPC) {
-			flags |= SPAWN_WANTS_FORCE_PPC;
-		}
-
-		if (spawn_attrs->spawn_env) {
-			for (tmpp = spawn_attrs->spawn_env; *tmpp; tmpp++) {
-				envc++;
-				len = strlen(*tmpp) + 1;
-				buf = reallocf(buf, buf_len + len);
-				strcpy(buf + buf_len, *tmpp);
-				buf_len += len;
-			}
-		}
-
-		if (spawn_attrs->spawn_path) {
-			flags |= SPAWN_HAS_PATH;
-			len = strlen(spawn_attrs->spawn_path) + 1;
-			buf = reallocf(buf, buf_len + len);
-			strcpy(buf + buf_len, spawn_attrs->spawn_path);
-			buf_len += len;
-		}
-
-		if (spawn_attrs->spawn_chdir) {
-			flags |= SPAWN_HAS_WDIR;
-			len = strlen(spawn_attrs->spawn_chdir) + 1;
-			buf = reallocf(buf, buf_len + len);
-			strcpy(buf + buf_len, spawn_attrs->spawn_chdir);
-			buf_len += len;
-		}
-
-		if (spawn_attrs->spawn_umask) {
-			flags |= SPAWN_HAS_UMASK;
-			u_mask = *spawn_attrs->spawn_umask;
-		}
-
-		break;
-	default:
-		break;
-	}
-
-	kr = vproc_mig_spawn(bootstrap_port, buf, buf_len, argc, envc, flags, u_mask, &p, &obsvr_port);
-
-	free(buf);
-
-	if (kr == BOOTSTRAP_SUCCESS) {
-		if (spawn_attrs && spawn_attrs->spawn_observer_port) {
-			*spawn_attrs->spawn_observer_port = obsvr_port;
-		} else {
-			mach_port_deallocate(mach_task_self(), obsvr_port);
-		}
-		return p;
-	}
-
-	switch (kr) {
-	case BOOTSTRAP_NOT_PRIVILEGED:
-		errno = EPERM; break;
-	case BOOTSTRAP_NO_MEMORY:
-		errno = ENOMEM; break;
-	default:
-		errno = EINVAL; break;
-	}
-	return -1;
-}
-
-kern_return_t
-mpm_wait(mach_port_t ajob, int *wstatus)
-{
-	return vproc_mig_wait(ajob, wstatus);
-}
-
-kern_return_t
-mpm_uncork_fork(mach_port_t ajob)
-{
-	return vproc_mig_uncork_fork(ajob);
-}
-
-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)
-{
-	return vproc_mig_create_server(bp, server_cmd, server_uid, on_demand, server_port);
-}
-
-kern_return_t
-bootstrap_subset(mach_port_t bp, mach_port_t requestor_port, mach_port_t *subset_port)
-{
-	return vproc_mig_subset(bp, requestor_port, subset_port);
-}
-
-kern_return_t
-bootstrap_unprivileged(mach_port_t bp, mach_port_t *unpriv_port)
-{
-	kern_return_t kr;
-
-	*unpriv_port = MACH_PORT_NULL;
-
-	kr = mach_port_mod_refs(mach_task_self(), bp, MACH_PORT_RIGHT_SEND, 1);
-
-	if (kr == KERN_SUCCESS) {
-		*unpriv_port = bp;
-	}
-
-	return kr;
-}
-
-kern_return_t
-bootstrap_getsocket(mach_port_t bp, name_t sockpath)
-{
-	return vproc_mig_getsocket(bp, sockpath);
-}
-
-kern_return_t
-bootstrap_parent(mach_port_t bp, mach_port_t *parent_port)
-{
-	return vproc_mig_parent(bp, parent_port);
-}
-
-kern_return_t
-bootstrap_register(mach_port_t bp, name_t service_name, mach_port_t sp)
-{
-	return vproc_mig_register(bp, service_name, sp);
-}
-
-kern_return_t
-bootstrap_create_service(mach_port_t bp, name_t service_name, mach_port_t *sp)
-{
-	return vproc_mig_create_service(bp, service_name, sp);
-}
-
-kern_return_t
-bootstrap_check_in(mach_port_t bp, name_t service_name, mach_port_t *sp)
-{
-	return vproc_mig_check_in(bp, service_name, sp);
-}
-
-kern_return_t
-bootstrap_look_up(mach_port_t bp, name_t service_name, mach_port_t *sp)
-{
-	return vproc_mig_look_up(bp, service_name, sp);
-}
-
-kern_return_t
-bootstrap_look_up_array(mach_port_t bp,
-		name_array_t names, mach_msg_type_number_t name_cnt,
-		mach_port_array_t *ports, mach_msg_type_number_t *port_cnt,
-		boolean_t *all)
-{
-	unsigned int i;
-	kern_return_t r;
-
-	if (name_cnt > BOOTSTRAP_MAX_LOOKUP_COUNT)
-		return BOOTSTRAP_BAD_COUNT;
-
-	*port_cnt = name_cnt;
-
-	r = vm_allocate(mach_task_self(), (vm_address_t *)&ports, name_cnt * sizeof(mach_port_t), true);
-
-	if (r != KERN_SUCCESS)
-		return r;
-
-	*all = true;
-
-	for (i = 0; i < name_cnt; i++) {
-		if (bootstrap_look_up(bp, names[i], &((*ports)[i])) == BOOTSTRAP_SUCCESS)
-			continue;
-		*all = false;
-		ports[i] = MACH_PORT_NULL;
-	}
-
-	return BOOTSTRAP_SUCCESS;
-}
-
-kern_return_t
-bootstrap_status(mach_port_t bp, name_t service_name, bootstrap_status_t *service_active)
-{
-	mach_port_t p;
-
-	if (bootstrap_check_in(bp, service_name, &p) == BOOTSTRAP_SUCCESS) {
-		mach_port_mod_refs(mach_task_self(), p, MACH_PORT_RIGHT_RECEIVE, -1);
-		*service_active = BOOTSTRAP_STATUS_ON_DEMAND;
-		return BOOTSTRAP_SUCCESS;
-	} else if (bootstrap_look_up(bp, service_name, &p) == BOOTSTRAP_SUCCESS) {
-		mach_port_deallocate(mach_task_self(), p);
-		*service_active = BOOTSTRAP_STATUS_ACTIVE;
-		return BOOTSTRAP_SUCCESS;
-	}
-
-	return BOOTSTRAP_UNKNOWN_SERVICE;
-}
-
-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)
-{
-	return vproc_mig_info(bp, service_names, service_namesCnt,
-			service_active, service_activeCnt);
-}
-
-
-const char *
-bootstrap_strerror(kern_return_t r)
-{
-	switch (r) {
-	case BOOTSTRAP_SUCCESS:
-		return "Success";
-	case BOOTSTRAP_NOT_PRIVILEGED:
-		return "Permission denied";
-	case BOOTSTRAP_NAME_IN_USE:
-	case BOOTSTRAP_SERVICE_ACTIVE:
-		return "Service name already exists";
-	case BOOTSTRAP_UNKNOWN_SERVICE:
-		return "Unknown service name";
-	case BOOTSTRAP_BAD_COUNT:
-		return "Too many lookups were requested in one request";
-	case BOOTSTRAP_NO_MEMORY:
-		return "Out of memory";
-	default:
-		return mach_error_string(r);
-	}
-}

Modified: trunk/launchd/src/launchctl.c
===================================================================
--- trunk/launchd/src/launchctl.c	2006-10-20 23:24:08 UTC (rev 22909)
+++ trunk/launchd/src/launchctl.c	2006-10-23 17:46:23 UTC (rev 22910)
@@ -60,7 +60,7 @@
 #include <utmpx.h>
 
 #include "bootstrap_public.h"
-#include "bootstrap_private.h"
+#include "vproc_priv.h"
 #include "launch.h"
 #include "launch_priv.h"
 

Modified: trunk/launchd/src/launchd.c
===================================================================
--- trunk/launchd/src/launchd.c	2006-10-20 23:24:08 UTC (rev 22909)
+++ trunk/launchd/src/launchd.c	2006-10-23 17:46:23 UTC (rev 22910)
@@ -62,7 +62,7 @@
 #include <setjmp.h>
 
 #include "bootstrap_public.h"
-#include "bootstrap_private.h"
+#include "vproc_priv.h"
 #include "launch.h"
 #include "launch_priv.h"
 #include "launchd.h"

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c	2006-10-20 23:24:08 UTC (rev 22909)
+++ trunk/launchd/src/launchd_core_logic.c	2006-10-23 17:46:23 UTC (rev 22910)
@@ -77,9 +77,9 @@
 #include "launchd_core_logic.h"
 #include "launchd_unix_ipc.h"
 #include "bootstrap_public.h"
-#include "bootstrap_private.h"
-#include "bootstrap.h"
-#include "bootstrapServer.h"
+#include "vproc_priv.h"
+#include "protocol_vproc.h"
+#include "protocol_vprocServer.h"
 #include "job_reply.h"
 
 #define LAUNCHD_MIN_JOB_RUN_TIME 10
@@ -661,12 +661,12 @@
 	}
 
 	/* Sigh... at the moment, MIG has maxsize == sizeof(reply union) */
-	mxmsgsz = sizeof(union __RequestUnion__job_mig_bootstrap_subsystem);
-	if (job_mig_bootstrap_subsystem.maxsize > mxmsgsz) {
-		mxmsgsz = job_mig_bootstrap_subsystem.maxsize;
+	mxmsgsz = sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem);
+	if (job_mig_protocol_vproc_subsystem.maxsize > mxmsgsz) {
+		mxmsgsz = job_mig_protocol_vproc_subsystem.maxsize;
 	}
 
-	if (!job_assumes(j, runtime_add_mport(j->bs_port, bootstrap_server, mxmsgsz) == KERN_SUCCESS)) {
+	if (!job_assumes(j, runtime_add_mport(j->bs_port, protocol_vproc_server, mxmsgsz) == KERN_SUCCESS)) {
 		goto out_bad2;
 	}
 
@@ -2914,12 +2914,12 @@
 	sprintf(j->label, "%d", MACH_PORT_INDEX(j->bs_port));
 
 	/* Sigh... at the moment, MIG has maxsize == sizeof(reply union) */
-	mxmsgsz = sizeof(union __RequestUnion__job_mig_bootstrap_subsystem);
-	if (job_mig_bootstrap_subsystem.maxsize > mxmsgsz) {
-		mxmsgsz = job_mig_bootstrap_subsystem.maxsize;
+	mxmsgsz = sizeof(union __RequestUnion__job_mig_protocol_vproc_subsystem);
+	if (job_mig_protocol_vproc_subsystem.maxsize > mxmsgsz) {
+		mxmsgsz = job_mig_protocol_vproc_subsystem.maxsize;
 	}
 
-	if (!job_assumes(j, runtime_add_mport(j->bs_port, bootstrap_server, mxmsgsz) == KERN_SUCCESS)) {
+	if (!job_assumes(j, runtime_add_mport(j->bs_port, protocol_vproc_server, mxmsgsz) == KERN_SUCCESS)) {
 		goto out_bad;
 	}
 
@@ -3842,6 +3842,11 @@
 		return BOOTSTRAP_NOT_PRIVILEGED;
 	}
 
+	if (!j->legacy_mach_job) {
+		job_log(j, LOG_ERR, "bootstrap_create_service() is only allowed against legacy Mach jobs: %s", servicename);
+		return BOOTSTRAP_NOT_PRIVILEGED;
+	}
+
 	ms = job_lookup_service(j, servicename, false);
 	if (ms) {
 		job_log(j, LOG_DEBUG, "Mach service creation attempt for failed. Already exists: %s", servicename);

Copied: trunk/launchd/src/libbootstrap.c (from rev 22901, trunk/launchd/src/bootstrap_public.c)
===================================================================
--- trunk/launchd/src/libbootstrap.c	                        (rev 0)
+++ trunk/launchd/src/libbootstrap.c	2006-10-23 17:46:23 UTC (rev 22910)
@@ -0,0 +1,291 @@
+/*
+ * 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@
+ */
+
+#include <mach/mach.h>
+#include <mach/vm_map.h>
+
+#include "bootstrap_public.h"
+#include "bootstrap_private.h"
+#include "launch.h"
+#include "launch_priv.h"
+
+#define mig_external static
+#include "bootstrap.h"
+#include "bootstrapUser.c"
+
+#include <sys/param.h>
+#include <stdlib.h>
+#include <errno.h>
+
+kern_return_t
+_launchd_to_launchd(mach_port_t bp, mach_port_t *reqport, mach_port_t *rcvright,
+		name_array_t *service_names, mach_msg_type_number_t *service_namesCnt,
+		mach_port_array_t *ports, mach_msg_type_number_t *portCnt)
+{
+	return vproc_mig_transfer_subset(bp, reqport, rcvright, service_names, service_namesCnt, ports, portCnt);
+}
+
+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 kr;
+	const char *const *tmpp;
+	size_t len, buf_len = strlen(label) + 1;
+	char *buf = strdup(label);
+	uint64_t flags = 0;
+	uint32_t argc = 0;
+	uint32_t envc = 0;
+	pid_t p = -1;
+	mode_t u_mask = CMASK;
+	mach_port_t obsvr_port = MACH_PORT_NULL;
+
+	for (tmpp = argv; *tmpp; tmpp++) {
+		argc++;
+		len = strlen(*tmpp) + 1;
+		buf = reallocf(buf, buf_len + len);
+		strcpy(buf + buf_len, *tmpp);
+		buf_len += len;
+	}
+
+	if (spawn_attrs) switch (struct_version) {
+	case 0:
+		if (spawn_attrs->spawn_flags & SPAWN_VIA_LAUNCHD_STOPPED) {
+			flags |= SPAWN_WANTS_WAIT4DEBUGGER;
+		}
+		if (spawn_attrs->spawn_flags & SPAWN_VIA_LAUNCHD_FORCE_PPC) {
+			flags |= SPAWN_WANTS_FORCE_PPC;
+		}
+
+		if (spawn_attrs->spawn_env) {
+			for (tmpp = spawn_attrs->spawn_env; *tmpp; tmpp++) {
+				envc++;
+				len = strlen(*tmpp) + 1;
+				buf = reallocf(buf, buf_len + len);
+				strcpy(buf + buf_len, *tmpp);
+				buf_len += len;
+			}
+		}
+
+		if (spawn_attrs->spawn_path) {
+			flags |= SPAWN_HAS_PATH;
+			len = strlen(spawn_attrs->spawn_path) + 1;
+			buf = reallocf(buf, buf_len + len);
+			strcpy(buf + buf_len, spawn_attrs->spawn_path);
+			buf_len += len;
+		}
+
+		if (spawn_attrs->spawn_chdir) {
+			flags |= SPAWN_HAS_WDIR;
+			len = strlen(spawn_attrs->spawn_chdir) + 1;
+			buf = reallocf(buf, buf_len + len);
+			strcpy(buf + buf_len, spawn_attrs->spawn_chdir);
+			buf_len += len;
+		}
+
+		if (spawn_attrs->spawn_umask) {
+			flags |= SPAWN_HAS_UMASK;
+			u_mask = *spawn_attrs->spawn_umask;
+		}
+
+		break;
+	default:
+		break;
+	}
+
+	kr = vproc_mig_spawn(bootstrap_port, buf, buf_len, argc, envc, flags, u_mask, &p, &obsvr_port);
+
+	free(buf);
+
+	if (kr == BOOTSTRAP_SUCCESS) {
+		if (spawn_attrs && spawn_attrs->spawn_observer_port) {
+			*spawn_attrs->spawn_observer_port = obsvr_port;
+		} else {
+			mach_port_deallocate(mach_task_self(), obsvr_port);
+		}
+		return p;
+	}
+
+	switch (kr) {
+	case BOOTSTRAP_NOT_PRIVILEGED:
+		errno = EPERM; break;
+	case BOOTSTRAP_NO_MEMORY:
+		errno = ENOMEM; break;
+	default:
+		errno = EINVAL; break;
+	}
+	return -1;
+}
+
+kern_return_t
+mpm_wait(mach_port_t ajob, int *wstatus)
+{
+	return vproc_mig_wait(ajob, wstatus);
+}
+
+kern_return_t
+mpm_uncork_fork(mach_port_t ajob)
+{
+	return vproc_mig_uncork_fork(ajob);
+}
+
+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)
+{
+	return vproc_mig_create_server(bp, server_cmd, server_uid, on_demand, server_port);
+}
+
+kern_return_t
+bootstrap_subset(mach_port_t bp, mach_port_t requestor_port, mach_port_t *subset_port)
+{
+	return vproc_mig_subset(bp, requestor_port, subset_port);
+}
+
+kern_return_t
+bootstrap_unprivileged(mach_port_t bp, mach_port_t *unpriv_port)
+{
+	kern_return_t kr;
+
+	*unpriv_port = MACH_PORT_NULL;
+
+	kr = mach_port_mod_refs(mach_task_self(), bp, MACH_PORT_RIGHT_SEND, 1);
+
+	if (kr == KERN_SUCCESS) {
+		*unpriv_port = bp;
+	}
+
+	return kr;
+}
+
+kern_return_t
+bootstrap_getsocket(mach_port_t bp, name_t sockpath)
+{
+	return vproc_mig_getsocket(bp, sockpath);
+}
+
+kern_return_t
+bootstrap_parent(mach_port_t bp, mach_port_t *parent_port)
+{
+	return vproc_mig_parent(bp, parent_port);
+}
+
+kern_return_t
+bootstrap_register(mach_port_t bp, name_t service_name, mach_port_t sp)
+{
+	return vproc_mig_register(bp, service_name, sp);
+}
+
+kern_return_t
+bootstrap_create_service(mach_port_t bp, name_t service_name, mach_port_t *sp)
+{
+	return vproc_mig_create_service(bp, service_name, sp);
+}
+
+kern_return_t
+bootstrap_check_in(mach_port_t bp, name_t service_name, mach_port_t *sp)
+{
+	return vproc_mig_check_in(bp, service_name, sp);
+}
+
+kern_return_t
+bootstrap_look_up(mach_port_t bp, name_t service_name, mach_port_t *sp)
+{
+	return vproc_mig_look_up(bp, service_name, sp);
+}
+
+kern_return_t
+bootstrap_look_up_array(mach_port_t bp,
+		name_array_t names, mach_msg_type_number_t name_cnt,
+		mach_port_array_t *ports, mach_msg_type_number_t *port_cnt,
+		boolean_t *all)
+{
+	unsigned int i;
+	kern_return_t r;
+
+	if (name_cnt > BOOTSTRAP_MAX_LOOKUP_COUNT)
+		return BOOTSTRAP_BAD_COUNT;
+
+	*port_cnt = name_cnt;
+
+	r = vm_allocate(mach_task_self(), (vm_address_t *)&ports, name_cnt * sizeof(mach_port_t), true);
+
+	if (r != KERN_SUCCESS)
+		return r;
+
+	*all = true;
+
+	for (i = 0; i < name_cnt; i++) {
+		if (bootstrap_look_up(bp, names[i], &((*ports)[i])) == BOOTSTRAP_SUCCESS)
+			continue;
+		*all = false;
+		ports[i] = MACH_PORT_NULL;
+	}
+
+	return BOOTSTRAP_SUCCESS;
+}
+
+kern_return_t
+bootstrap_status(mach_port_t bp, name_t service_name, bootstrap_status_t *service_active)
+{
+	mach_port_t p;
+
+	if (bootstrap_check_in(bp, service_name, &p) == BOOTSTRAP_SUCCESS) {
+		mach_port_mod_refs(mach_task_self(), p, MACH_PORT_RIGHT_RECEIVE, -1);
+		*service_active = BOOTSTRAP_STATUS_ON_DEMAND;
+		return BOOTSTRAP_SUCCESS;
+	} else if (bootstrap_look_up(bp, service_name, &p) == BOOTSTRAP_SUCCESS) {
+		mach_port_deallocate(mach_task_self(), p);
+		*service_active = BOOTSTRAP_STATUS_ACTIVE;
+		return BOOTSTRAP_SUCCESS;
+	}
+
+	return BOOTSTRAP_UNKNOWN_SERVICE;
+}
+
+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)
+{
+	return vproc_mig_info(bp, service_names, service_namesCnt,
+			service_active, service_activeCnt);
+}
+
+
+const char *
+bootstrap_strerror(kern_return_t r)
+{
+	switch (r) {
+	case BOOTSTRAP_SUCCESS:
+		return "Success";
+	case BOOTSTRAP_NOT_PRIVILEGED:
+		return "Permission denied";
+	case BOOTSTRAP_NAME_IN_USE:
+	case BOOTSTRAP_SERVICE_ACTIVE:
+		return "Service name already exists";
+	case BOOTSTRAP_UNKNOWN_SERVICE:
+		return "Unknown service name";
+	case BOOTSTRAP_BAD_COUNT:
+		return "Too many lookups were requested in one request";
+	case BOOTSTRAP_NO_MEMORY:
+		return "Out of memory";
+	default:
+		return mach_error_string(r);
+	}
+}

Modified: trunk/launchd/src/liblaunch.c
===================================================================
--- trunk/launchd/src/liblaunch.c	2006-10-20 23:24:08 UTC (rev 22909)
+++ trunk/launchd/src/liblaunch.c	2006-10-23 17:46:23 UTC (rev 22910)
@@ -36,7 +36,7 @@
 #include "launch.h"
 #include "launch_priv.h"
 #include "bootstrap_public.h"
-#include "bootstrap_private.h"
+#include "vproc_priv.h"
 
 /* __OSBogusByteSwap__() must not really exist in the symbol namespace
  * in order for the following to generate an error at build time.
@@ -133,8 +133,8 @@
 	int	fd;
 };
 
-static void make_msg_and_cmsg(launch_data_t, void **, size_t *, int **, size_t *);
-static launch_data_t make_data(launch_t, size_t *, size_t *);
+static void launch_data_pack(launch_data_t, void **, size_t *, int **, size_t *);
+static launch_data_t launch_data_unpack(launch_t, size_t *, size_t *);
 static launch_data_t launch_data_array_pop_first(launch_data_t where);
 static int _fd(int fd);
 static void launch_client_init(void);
@@ -565,7 +565,7 @@
 }
 
 void
-make_msg_and_cmsg(launch_data_t d, void **where, size_t *len, int **fd_where, size_t *fdcnt)
+launch_data_pack(launch_data_t d, void **where, size_t *len, int **fd_where, size_t *fdcnt)
 {
 	launch_data_t o_in_w;
 	size_t i;
@@ -619,14 +619,15 @@
 		*len += d->_array_cnt * sizeof(launch_data_t);
 
 		for (i = 0; i < d->_array_cnt; i++)
-			make_msg_and_cmsg(d->_array[i], where, len, fd_where, fdcnt);
+			launch_data_pack(d->_array[i], where, len, fd_where, fdcnt);
 		break;
 	default:
 		break;
 	}
 }
 
-static launch_data_t make_data(launch_t conn, size_t *data_offset, size_t *fdoffset)
+launch_data_t
+launch_data_unpack(launch_t conn, size_t *data_offset, size_t *fdoffset)
 {
 	launch_data_t r = conn->recvbuf + *data_offset;
 	size_t i, tmpcnt;
@@ -646,7 +647,7 @@
 		r->_array = conn->recvbuf + *data_offset;
 		*data_offset += tmpcnt * sizeof(launch_data_t);
 		for (i = 0; i < tmpcnt; i++) {
-			r->_array[i] = make_data(conn, data_offset, fdoffset);
+			r->_array[i] = launch_data_unpack(conn, data_offset, fdoffset);
 			if (r->_array[i] == NULL)
 				return NULL;
 		}
@@ -716,7 +717,7 @@
 	if (d) {
 		uint64_t msglen = lh->sendlen;
 
-		make_msg_and_cmsg(d, &lh->sendbuf, &lh->sendlen, &lh->sendfds, &lh->sendfdcnt);
+		launch_data_pack(d, &lh->sendbuf, &lh->sendlen, &lh->sendfds, &lh->sendfdcnt);
 
 		msglen = (lh->sendlen - msglen) + sizeof(struct launch_msg_header);
 		lmh.len = host2big(msglen);
@@ -953,7 +954,7 @@
 			goto need_more_data;
 		}
 
-		if ((rmsg = make_data(lh, &data_offset, &fd_offset)) == NULL) {
+		if ((rmsg = launch_data_unpack(lh, &data_offset, &fd_offset)) == NULL) {
 			errno = EBADRPC;
 			goto out_bad;
 		}

Copied: trunk/launchd/src/libvproc.c (from rev 22901, trunk/launchd/src/bootstrap_public.c)
===================================================================
--- trunk/launchd/src/libvproc.c	                        (rev 0)
+++ trunk/launchd/src/libvproc.c	2006-10-23 17:46:23 UTC (rev 22910)
@@ -0,0 +1,291 @@
+/*
+ * 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@
+ */
+
+#include <mach/mach.h>
+#include <mach/vm_map.h>
+
+#include "bootstrap_public.h"
+#include "vproc_priv.h"
+#include "launch.h"
+#include "launch_priv.h"
+
+#define mig_external static
+#include "protocol_vproc.h"
+#include "protocol_vprocUser.c"
+
+#include <sys/param.h>
+#include <stdlib.h>
+#include <errno.h>
+
+kern_return_t
+_launchd_to_launchd(mach_port_t bp, mach_port_t *reqport, mach_port_t *rcvright,
+		name_array_t *service_names, mach_msg_type_number_t *service_namesCnt,
+		mach_port_array_t *ports, mach_msg_type_number_t *portCnt)
+{
+	return vproc_mig_transfer_subset(bp, reqport, rcvright, service_names, service_namesCnt, ports, portCnt);
+}
+
+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 kr;
+	const char *const *tmpp;
+	size_t len, buf_len = strlen(label) + 1;
+	char *buf = strdup(label);
+	uint64_t flags = 0;
+	uint32_t argc = 0;
+	uint32_t envc = 0;
+	pid_t p = -1;
+	mode_t u_mask = CMASK;
+	mach_port_t obsvr_port = MACH_PORT_NULL;
+
+	for (tmpp = argv; *tmpp; tmpp++) {
+		argc++;
+		len = strlen(*tmpp) + 1;
+		buf = reallocf(buf, buf_len + len);
+		strcpy(buf + buf_len, *tmpp);
+		buf_len += len;
+	}
+
+	if (spawn_attrs) switch (struct_version) {
+	case 0:
+		if (spawn_attrs->spawn_flags & SPAWN_VIA_LAUNCHD_STOPPED) {
+			flags |= SPAWN_WANTS_WAIT4DEBUGGER;
+		}
+		if (spawn_attrs->spawn_flags & SPAWN_VIA_LAUNCHD_FORCE_PPC) {
+			flags |= SPAWN_WANTS_FORCE_PPC;
+		}
+
+		if (spawn_attrs->spawn_env) {
+			for (tmpp = spawn_attrs->spawn_env; *tmpp; tmpp++) {
+				envc++;
+				len = strlen(*tmpp) + 1;
+				buf = reallocf(buf, buf_len + len);
+				strcpy(buf + buf_len, *tmpp);
+				buf_len += len;
+			}
+		}
+
+		if (spawn_attrs->spawn_path) {
+			flags |= SPAWN_HAS_PATH;
+			len = strlen(spawn_attrs->spawn_path) + 1;
+			buf = reallocf(buf, buf_len + len);
+			strcpy(buf + buf_len, spawn_attrs->spawn_path);
+			buf_len += len;
+		}
+
+		if (spawn_attrs->spawn_chdir) {
+			flags |= SPAWN_HAS_WDIR;
+			len = strlen(spawn_attrs->spawn_chdir) + 1;
+			buf = reallocf(buf, buf_len + len);
+			strcpy(buf + buf_len, spawn_attrs->spawn_chdir);
+			buf_len += len;
+		}
+
+		if (spawn_attrs->spawn_umask) {
+			flags |= SPAWN_HAS_UMASK;
+			u_mask = *spawn_attrs->spawn_umask;
+		}
+
+		break;
+	default:
+		break;
+	}
+
+	kr = vproc_mig_spawn(bootstrap_port, buf, buf_len, argc, envc, flags, u_mask, &p, &obsvr_port);
+
+	free(buf);
+
+	if (kr == BOOTSTRAP_SUCCESS) {
+		if (spawn_attrs && spawn_attrs->spawn_observer_port) {
+			*spawn_attrs->spawn_observer_port = obsvr_port;
+		} else {
+			mach_port_deallocate(mach_task_self(), obsvr_port);
+		}
+		return p;
+	}
+
+	switch (kr) {
+	case BOOTSTRAP_NOT_PRIVILEGED:
+		errno = EPERM; break;
+	case BOOTSTRAP_NO_MEMORY:
+		errno = ENOMEM; break;
+	default:
+		errno = EINVAL; break;
+	}
+	return -1;
+}
+
+kern_return_t
+mpm_wait(mach_port_t ajob, int *wstatus)
+{
+	return vproc_mig_wait(ajob, wstatus);
+}
+
+kern_return_t
+mpm_uncork_fork(mach_port_t ajob)
+{
+	return vproc_mig_uncork_fork(ajob);
+}
+
+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)
+{
+	return vproc_mig_create_server(bp, server_cmd, server_uid, on_demand, server_port);
+}
+
+kern_return_t
+bootstrap_subset(mach_port_t bp, mach_port_t requestor_port, mach_port_t *subset_port)
+{
+	return vproc_mig_subset(bp, requestor_port, subset_port);
+}
+
+kern_return_t
+bootstrap_unprivileged(mach_port_t bp, mach_port_t *unpriv_port)
+{
+	kern_return_t kr;
+
+	*unpriv_port = MACH_PORT_NULL;
+
+	kr = mach_port_mod_refs(mach_task_self(), bp, MACH_PORT_RIGHT_SEND, 1);
+
+	if (kr == KERN_SUCCESS) {
+		*unpriv_port = bp;
+	}
+
+	return kr;
+}
+
+kern_return_t
+bootstrap_getsocket(mach_port_t bp, name_t sockpath)
+{
+	return vproc_mig_getsocket(bp, sockpath);
+}
+
+kern_return_t
+bootstrap_parent(mach_port_t bp, mach_port_t *parent_port)
+{
+	return vproc_mig_parent(bp, parent_port);
+}
+
+kern_return_t
+bootstrap_register(mach_port_t bp, name_t service_name, mach_port_t sp)
+{
+	return vproc_mig_register(bp, service_name, sp);
+}
+
+kern_return_t
+bootstrap_create_service(mach_port_t bp, name_t service_name, mach_port_t *sp)
+{
+	return vproc_mig_create_service(bp, service_name, sp);
+}
+
+kern_return_t
+bootstrap_check_in(mach_port_t bp, name_t service_name, mach_port_t *sp)
+{
+	return vproc_mig_check_in(bp, service_name, sp);
+}
+
+kern_return_t
+bootstrap_look_up(mach_port_t bp, name_t service_name, mach_port_t *sp)
+{
+	return vproc_mig_look_up(bp, service_name, sp);
+}
+
+kern_return_t
+bootstrap_look_up_array(mach_port_t bp,
+		name_array_t names, mach_msg_type_number_t name_cnt,
+		mach_port_array_t *ports, mach_msg_type_number_t *port_cnt,
+		boolean_t *all)
+{
+	unsigned int i;
+	kern_return_t r;
+
+	if (name_cnt > BOOTSTRAP_MAX_LOOKUP_COUNT)
+		return BOOTSTRAP_BAD_COUNT;
+
+	*port_cnt = name_cnt;
+
+	r = vm_allocate(mach_task_self(), (vm_address_t *)&ports, name_cnt * sizeof(mach_port_t), true);
+
+	if (r != KERN_SUCCESS)
+		return r;
+
+	*all = true;
+
+	for (i = 0; i < name_cnt; i++) {
+		if (bootstrap_look_up(bp, names[i], &((*ports)[i])) == BOOTSTRAP_SUCCESS)
+			continue;
+		*all = false;
+		ports[i] = MACH_PORT_NULL;
+	}
+
+	return BOOTSTRAP_SUCCESS;
+}
+
+kern_return_t
+bootstrap_status(mach_port_t bp, name_t service_name, bootstrap_status_t *service_active)
+{
+	mach_port_t p;
+
+	if (bootstrap_check_in(bp, service_name, &p) == BOOTSTRAP_SUCCESS) {
+		mach_port_mod_refs(mach_task_self(), p, MACH_PORT_RIGHT_RECEIVE, -1);
+		*service_active = BOOTSTRAP_STATUS_ON_DEMAND;
+		return BOOTSTRAP_SUCCESS;
+	} else if (bootstrap_look_up(bp, service_name, &p) == BOOTSTRAP_SUCCESS) {
+		mach_port_deallocate(mach_task_self(), p);
+		*service_active = BOOTSTRAP_STATUS_ACTIVE;
+		return BOOTSTRAP_SUCCESS;
+	}
+
+	return BOOTSTRAP_UNKNOWN_SERVICE;
+}
+
+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)
+{
+	return vproc_mig_info(bp, service_names, service_namesCnt,
+			service_active, service_activeCnt);
+}
+
+
+const char *
+bootstrap_strerror(kern_return_t r)
+{
+	switch (r) {
+	case BOOTSTRAP_SUCCESS:
+		return "Success";
+	case BOOTSTRAP_NOT_PRIVILEGED:
+		return "Permission denied";
+	case BOOTSTRAP_NAME_IN_USE:
+	case BOOTSTRAP_SERVICE_ACTIVE:
+		return "Service name already exists";
+	case BOOTSTRAP_UNKNOWN_SERVICE:
+		return "Unknown service name";
+	case BOOTSTRAP_BAD_COUNT:
+		return "Too many lookups were requested in one request";
+	case BOOTSTRAP_NO_MEMORY:
+		return "Out of memory";
+	default:
+		return mach_error_string(r);
+	}
+}

Modified: trunk/launchd/src/protocol_job.defs
===================================================================
--- trunk/launchd/src/protocol_job.defs	2006-10-20 23:24:08 UTC (rev 22909)
+++ trunk/launchd/src/protocol_job.defs	2006-10-23 17:46:23 UTC (rev 22910)
@@ -23,13 +23,13 @@
  * Copyright, 1990.  All rights reserved.
  */
 
-subsystem bootstrap 400;
+subsystem protocol_vproc 400;
 
 #include <mach/std_types.defs>
 #include <mach/mach_types.defs>
 #include "launchd_mig_types.defs"
-import "bootstrap_public.h";
-import "bootstrap_private.h";
+import "vproc.h";
+import "vproc_priv.h";
 
 userprefix vproc_mig_;
 serverprefix job_mig_;
@@ -39,7 +39,6 @@
 		__server_cmd	: cmd_t;
 		__server_uid	: natural_t;
 		__on_demand	: boolean_t;
-	ServerAuditToken	__token	: audit_token_t;
 	out	__server_port	: mach_port_make_send_t);
 
 skip; /* Last used in 10.4. Was bootstrap_unprivileged() */
@@ -47,18 +46,15 @@
 routine check_in(
 			__bs_port	: job_t;
 			__service_name	: name_t;
-	ServerAuditToken	__token	: audit_token_t;
 		out	__service_port	: mach_port_move_receive_t);
 
 routine register(
 		__bs_port	: job_t;
-	ServerAuditToken	__token	: audit_token_t;
 		__service_name	: name_t;
 		__service_port	: mach_port_t);
 
 routine look_up(
 		__bs_port	: job_t;
-	ServerAuditToken	__token	: audit_token_t;
 		__service_name	: name_t;
 	out	__service_port	: mach_port_send_t);
 
@@ -90,7 +86,6 @@
 	out	__bs_reqport	: mach_port_t;
 	out	__bs_rcvright	: mach_port_move_receive_t;
 	out	__service_names	: name_array_t, dealloc;
-	out	__service_pids	: pointer_t, dealloc;
 	out	__service_ports	: mach_port_array_t, dealloc);
 
 routine getsocket(
@@ -99,7 +94,6 @@
 
 routine spawn(
 		__bs_port	: job_t;
-	ServerAuditToken	__token	: audit_token_t;
 		__chars		: _internal_string_t;
 		__argc		: uint32_t;
 		__envc		: uint32_t;
@@ -111,15 +105,7 @@
 routine wait(
 		__bs_port	: job_t;
 	sreplyport		__rport	: mach_port_make_send_once_t;
-	ServerAuditToken	__token	: audit_token_t;
 	out	__waitval	: integer_t);
 
 routine uncork_fork(
-		__bs_port	: job_t;
-	ServerAuditToken	__token	: audit_token_t);
-
-/* Essentially the inverse of bootstrap_unprivileged() */
-routine get_self(
-		__bs_port	: job_t;
-	ServerAuditToken        __token : audit_token_t;
-	out	__job_port	: mach_port_make_send_t);
+		__bs_port	: job_t);

Modified: trunk/launchd/src/protocol_job_reply.defs
===================================================================
--- trunk/launchd/src/protocol_job_reply.defs	2006-10-20 23:24:08 UTC (rev 22909)
+++ trunk/launchd/src/protocol_job_reply.defs	2006-10-23 17:46:23 UTC (rev 22910)
@@ -24,7 +24,7 @@
 #include <mach/mach_types.defs>
 #include "launchd_mig_types.defs"
 import "bootstrap_public.h";
-import "bootstrap_private.h";
+import "vproc_priv.h";
 
 skip; /* create_server */
 

Deleted: trunk/launchd/src/protocol_legacy.defs
===================================================================
--- trunk/launchd/src/protocol_legacy.defs	2006-10-20 23:24:08 UTC (rev 22909)
+++ trunk/launchd/src/protocol_legacy.defs	2006-10-23 17:46:23 UTC (rev 22910)
@@ -1,111 +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 bootstrap 400;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-#include "launchd_mig_types.defs"
-import "bootstrap_public.h";
-import "bootstrap_private.h";
-
-userprefix vproc_mig_;
-serverprefix job_mig_;
-
-routine create_server(
-		__bs_port	: job_t;
-		__server_cmd	: cmd_t;
-		__server_uid	: natural_t;
-		__on_demand	: boolean_t;
-	out	__server_port	: mach_port_make_send_t);
-
-skip; /* Last used in 10.4. Was bootstrap_unprivileged() */
-
-routine check_in(
-			__bs_port	: job_t;
-			__service_name	: name_t;
-		out	__service_port	: mach_port_move_receive_t);
-
-routine register(
-		__bs_port	: job_t;
-		__service_name	: name_t;
-		__service_port	: mach_port_t);
-
-routine look_up(
-		__bs_port	: job_t;
-		__service_name	: name_t;
-	out	__service_port	: mach_port_send_t);
-
-skip; /* last used in 10.4 */
-
-routine parent(
-		__bs_port	: job_t;
-	out	__parent_port	: mach_port_send_t);
-
-skip; /* last used in 10.4 */
-
-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 create_service(
-		__bs_port	: job_t;
-		__service_name	: name_t;
-	out	__service_port	: mach_port_t);
-
-routine transfer_subset(
-		__bs_port	: job_t;
-	out	__bs_reqport	: mach_port_t;
-	out	__bs_rcvright	: mach_port_move_receive_t;
-	out	__service_names	: name_array_t, dealloc;
-	out	__service_ports	: mach_port_array_t, dealloc);
-
-routine getsocket(
-		__bs_port	: job_t;
-	out	__sockpath	: name_t);
-
-routine spawn(
-		__bs_port	: job_t;
-		__chars		: _internal_string_t;
-		__argc		: uint32_t;
-		__envc		: uint32_t;
-		__flags		: uint64_t;
-		__umask		: uint16_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);

Modified: trunk/launchd/src/vproc.h
===================================================================
--- trunk/launchd/src/vproc.h	2006-10-20 23:24:08 UTC (rev 22909)
+++ trunk/launchd/src/vproc.h	2006-10-23 17:46:23 UTC (rev 22910)
@@ -20,8 +20,12 @@
  * @APPLE_APACHE_LICENSE_HEADER_END@
  */
 
+#include <sys/cdefs.h>
+
 __BEGIN_DECLS
 
+#if 0
+
 typedef void * vproc_t;
 typedef void * vprocmgr_t;
 typedef void * vproc_err_t;
@@ -42,7 +46,7 @@
 
 vproc_err_t vprocmgr_lookup_vproc(vprocmgr_t vpm, const char *label, vproc_t *vp);
 
-vproc_err_t vprocmgr_lookup_vprocmgr_for_user(vprocmgr_t vpm, const char *user, vprocmgr_t *vpm);
+vproc_err_t vprocmgr_lookup_vprocmgr_for_user(vprocmgr_t vpm, const char *user, vprocmgr_t *vpm_out);
 
 vproc_err_t vprocmgr_lookup_mach_service(vprocmgr_t vpm, const char *service, mach_port_t *service_port);
 
@@ -73,6 +77,8 @@
 
 const char *vproc_strerror(vproc_err_t r);
 
+#endif
+
 __END_DECLS
 
 #endif

Copied: trunk/launchd/src/vproc_priv.h (from rev 22901, trunk/launchd/src/bootstrap_private.h)
===================================================================
--- trunk/launchd/src/vproc_priv.h	                        (rev 0)
+++ trunk/launchd/src/vproc_priv.h	2006-10-23 17:46:23 UTC (rev 22910)
@@ -0,0 +1,62 @@
+#ifndef _BOOTSTRAP_PRIVATE_H_
+#define _BOOTSTRAP_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@
+ */
+
+typedef char * _internal_string_t;
+typedef mach_port_t vproc_mig_t;
+
+#ifdef protocol_vproc_MSG_COUNT
+/* HACK */
+#include "launchd_core_logic.h"
+#endif
+
+#define SPAWN_HAS_PATH			0x0001
+#define SPAWN_HAS_WDIR			0x0002
+#define SPAWN_HAS_UMASK			0x0004
+#define SPAWN_WANTS_WAIT4DEBUGGER	0x0008
+#define SPAWN_WANTS_FORCE_PPC		0x0010
+
+kern_return_t
+_launchd_to_launchd(mach_port_t bp, mach_port_t *reqport, mach_port_t *rcvright,
+		name_array_t *service_names, mach_msg_type_number_t *service_namesCnt,
+		mach_port_array_t *ports, mach_msg_type_number_t *portCnt);
+
+kern_return_t bootstrap_getsocket(mach_port_t bp, name_t);
+
+
+kern_return_t
+bootstrap_look_up_array(
+		mach_port_t bp,
+		name_array_t service_names,
+		mach_msg_type_number_t service_namesCnt,
+		mach_port_array_t *sps,
+		mach_msg_type_number_t *service_portsCnt,
+		boolean_t *all_services_known);
+
+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);
+
+#endif

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20061023/85658ce2/attachment.html


More information about the launchd-changes mailing list