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

source_changes at macosforge.org source_changes at macosforge.org
Wed Sep 17 11:41:19 PDT 2008


Revision: 23712
          http://trac.macosforge.org/projects/launchd/changeset/23712
Author:   dsorresso at apple.com
Date:     2008-09-17 11:41:18 -0700 (Wed, 17 Sep 2008)
Log Message:
-----------
<rdar://problem/5879153> Instant Off: SPIs and functionality for tool reporting clean state violations
<rdar://problem/6098560> 5858547Blocker: calling vproc_standby_end core dumps
<rdar://problem/6103485> 10A127: com.apple.launchctl.System causes 20s stall at installer shutdown
<rdar://problem/6156146> vproc_transaction_{begin,end} should be declared AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
<rdar://problem/6217672> per-user launchd "Shutdown began at" messages are confusing

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.h
    trunk/launchd/src/launchd_core_logic.c
    trunk/launchd/src/launchd_runtime.c
    trunk/launchd/src/launchd_runtime.h
    trunk/launchd/src/liblaunch.c
    trunk/launchd/src/liblaunch_private.h
    trunk/launchd/src/liblaunch_public.h
    trunk/launchd/src/libvproc.c
    trunk/launchd/src/libvproc_private.h

Added Paths:
-----------
    trunk/launchd/src/launchd_ktrace.c
    trunk/launchd/src/launchd_ktrace.h

Modified: trunk/launchd/src/Makefile.am
===================================================================
--- trunk/launchd/src/Makefile.am	2008-09-03 00:07:58 UTC (rev 23711)
+++ trunk/launchd/src/Makefile.am	2008-09-17 18:41:18 UTC (rev 23712)
@@ -16,10 +16,10 @@
 noinst_LIBRARIES = liblaunch.a liblaunch_profile.a
 
 liblaunch_a_CFLAGS = -D__DARWIN_NON_CANCELABLE=1 $(AM_CFLAGS)
-liblaunch_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c __version.c
+liblaunch_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c launchd_ktrace.c __version.c
 
 liblaunch_profile_a_CFLAGS = -pg -D__DARWIN_NON_CANCELABLE=1 $(AM_CFLAGS)
-liblaunch_profile_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c __version.c
+liblaunch_profile_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c launchd_ktrace.c __version.c
 
 $(srcdir)/libvproc.c:: protocol_vproc.h
 
@@ -59,7 +59,7 @@
 
 launchd_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS)
 launchd_LDFLAGS = $(AM_LDFLAGS) -lbsm
-launchd_SOURCES = launchd.c launchd_core_logic.c launchd_unix_ipc.c protocol_vprocServer.c notifyServer.c launchd_internalUser.c launchd_internalServer.c job_replyUser.c launchd_runtime.c launchd_runtime_kill.c job_forwardUser.c mach_excServer.c
+launchd_SOURCES = launchd.c launchd_core_logic.c launchd_unix_ipc.c protocol_vprocServer.c notifyServer.c launchd_internalUser.c launchd_internalServer.c job_replyUser.c launchd_runtime.c launchd_runtime_kill.c job_forwardUser.c mach_excServer.c launchd_ktrace.c
 
 launchd_runtime.c:: notifyServer.h launchd_internal.h mach_excServer.h
 launchd_core_logic.c:: protocol_vproc.h job_reply.h protocol_vprocServer.h job_forward.h

Modified: trunk/launchd/src/Makefile.in
===================================================================
--- trunk/launchd/src/Makefile.in	2008-09-03 00:07:58 UTC (rev 23711)
+++ trunk/launchd/src/Makefile.in	2008-09-17 18:41:18 UTC (rev 23712)
@@ -55,23 +55,26 @@
 liblaunch_a_AR = $(AR) $(ARFLAGS)
 liblaunch_a_LIBADD =
 am__liblaunch_a_SOURCES_DIST = liblaunch.c libvproc.c libbootstrap.c \
-	protocol_vprocUser.c __version.c
+	protocol_vprocUser.c launchd_ktrace.c __version.c
 @LIBS_ONLY_TRUE at am_liblaunch_a_OBJECTS =  \
 @LIBS_ONLY_TRUE@	liblaunch_a-liblaunch.$(OBJEXT) \
 @LIBS_ONLY_TRUE@	liblaunch_a-libvproc.$(OBJEXT) \
 @LIBS_ONLY_TRUE@	liblaunch_a-libbootstrap.$(OBJEXT) \
 @LIBS_ONLY_TRUE@	liblaunch_a-protocol_vprocUser.$(OBJEXT) \
+ at LIBS_ONLY_TRUE@	liblaunch_a-launchd_ktrace.$(OBJEXT) \
 @LIBS_ONLY_TRUE@	liblaunch_a-__version.$(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 libvproc.c \
-	libbootstrap.c protocol_vprocUser.c __version.c
+	libbootstrap.c protocol_vprocUser.c launchd_ktrace.c \
+	__version.c
 @LIBS_ONLY_TRUE at am_liblaunch_profile_a_OBJECTS =  \
 @LIBS_ONLY_TRUE@	liblaunch_profile_a-liblaunch.$(OBJEXT) \
 @LIBS_ONLY_TRUE@	liblaunch_profile_a-libvproc.$(OBJEXT) \
 @LIBS_ONLY_TRUE@	liblaunch_profile_a-libbootstrap.$(OBJEXT) \
 @LIBS_ONLY_TRUE@	liblaunch_profile_a-protocol_vprocUser.$(OBJEXT) \
+ at LIBS_ONLY_TRUE@	liblaunch_profile_a-launchd_ktrace.$(OBJEXT) \
 @LIBS_ONLY_TRUE@	liblaunch_profile_a-__version.$(OBJEXT)
 liblaunch_profile_a_OBJECTS = $(am_liblaunch_profile_a_OBJECTS)
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" \
@@ -99,7 +102,7 @@
 	launchd_unix_ipc.c protocol_vprocServer.c notifyServer.c \
 	launchd_internalUser.c launchd_internalServer.c \
 	job_replyUser.c launchd_runtime.c launchd_runtime_kill.c \
-	job_forwardUser.c mach_excServer.c
+	job_forwardUser.c mach_excServer.c launchd_ktrace.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) \
@@ -111,7 +114,8 @@
 @LIBS_ONLY_FALSE@	launchd-launchd_runtime.$(OBJEXT) \
 @LIBS_ONLY_FALSE@	launchd-launchd_runtime_kill.$(OBJEXT) \
 @LIBS_ONLY_FALSE@	launchd-job_forwardUser.$(OBJEXT) \
- at LIBS_ONLY_FALSE@	launchd-mach_excServer.$(OBJEXT)
+ at LIBS_ONLY_FALSE@	launchd-mach_excServer.$(OBJEXT) \
+ at LIBS_ONLY_FALSE@	launchd-launchd_ktrace.$(OBJEXT)
 launchd_OBJECTS = $(am_launchd_OBJECTS)
 launchd_LDADD = $(LDADD)
 launchd_LINK = $(CCLD) $(launchd_CFLAGS) $(CFLAGS) $(launchd_LDFLAGS) \
@@ -253,9 +257,9 @@
 
 @LIBS_ONLY_TRUE at noinst_LIBRARIES = liblaunch.a liblaunch_profile.a
 @LIBS_ONLY_TRUE at liblaunch_a_CFLAGS = -D__DARWIN_NON_CANCELABLE=1 $(AM_CFLAGS)
- at LIBS_ONLY_TRUE@liblaunch_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c __version.c
+ at LIBS_ONLY_TRUE@liblaunch_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c launchd_ktrace.c __version.c
 @LIBS_ONLY_TRUE at liblaunch_profile_a_CFLAGS = -pg -D__DARWIN_NON_CANCELABLE=1 $(AM_CFLAGS)
- at LIBS_ONLY_TRUE@liblaunch_profile_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c __version.c
+ at LIBS_ONLY_TRUE@liblaunch_profile_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c launchd_ktrace.c __version.c
 @LIBS_ONLY_FALSE at sysconf_DATA = hostconfig rc.common rc.netboot
 @LIBS_ONLY_FALSE at launchctl_CFLAGS = $(AM_CFLAGS) -isystem $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
 @LIBS_ONLY_FALSE at launchctl_LDFLAGS = $(AM_LDFLAGS) -framework CoreFoundation -framework IOKit $(LIBS_SECURITY) -weak_library /usr/lib/libedit.dylib
@@ -264,7 +268,7 @@
 @DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE at SystemStarter_SOURCES = StartupItems.c IPC.c SystemStarter.c
 @LIBS_ONLY_FALSE at launchd_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS)
 @LIBS_ONLY_FALSE at launchd_LDFLAGS = $(AM_LDFLAGS) -lbsm
- at LIBS_ONLY_FALSE@launchd_SOURCES = launchd.c launchd_core_logic.c launchd_unix_ipc.c protocol_vprocServer.c notifyServer.c launchd_internalUser.c launchd_internalServer.c job_replyUser.c launchd_runtime.c launchd_runtime_kill.c job_forwardUser.c mach_excServer.c
+ at LIBS_ONLY_FALSE@launchd_SOURCES = launchd.c launchd_core_logic.c launchd_unix_ipc.c protocol_vprocServer.c notifyServer.c launchd_internalUser.c launchd_internalServer.c job_replyUser.c launchd_runtime.c launchd_runtime_kill.c job_forwardUser.c mach_excServer.c launchd_ktrace.c
 @LIBS_ONLY_FALSE at launchproxy_LDFLAGS = $(AM_LDFLAGS) $(LIBS_SECURITY)
 @LIBS_ONLY_FALSE at man1_MANS = wait4path.1 launchctl.1
 @LIBS_ONLY_FALSE at man5_MANS = launchd.plist.5 launchd.conf.5
@@ -433,6 +437,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd_core_logic.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd_internalServer.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd_internalUser.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd_ktrace.Po at am__quote@
 @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_runtime_kill.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-launchd_unix_ipc.Po at am__quote@
@@ -441,11 +446,13 @@
 @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_a-__version.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_a-launchd_ktrace.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_a-libbootstrap.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_a-liblaunch.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_a-libvproc.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_a-protocol_vprocUser.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-__version.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-launchd_ktrace.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-libbootstrap.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-liblaunch.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-libvproc.Po at am__quote@
@@ -522,6 +529,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-protocol_vprocUser.obj `if test -f 'protocol_vprocUser.c'; then $(CYGPATH_W) 'protocol_vprocUser.c'; else $(CYGPATH_W) '$(srcdir)/protocol_vprocUser.c'; fi`
 
+liblaunch_a-launchd_ktrace.o: launchd_ktrace.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-launchd_ktrace.o -MD -MP -MF $(DEPDIR)/liblaunch_a-launchd_ktrace.Tpo -c -o liblaunch_a-launchd_ktrace.o `test -f 'launchd_ktrace.c' || echo '$(srcdir)/'`launchd_ktrace.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-launchd_ktrace.Tpo $(DEPDIR)/liblaunch_a-launchd_ktrace.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_ktrace.c' object='liblaunch_a-launchd_ktrace.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-launchd_ktrace.o `test -f 'launchd_ktrace.c' || echo '$(srcdir)/'`launchd_ktrace.c
+
+liblaunch_a-launchd_ktrace.obj: launchd_ktrace.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-launchd_ktrace.obj -MD -MP -MF $(DEPDIR)/liblaunch_a-launchd_ktrace.Tpo -c -o liblaunch_a-launchd_ktrace.obj `if test -f 'launchd_ktrace.c'; then $(CYGPATH_W) 'launchd_ktrace.c'; else $(CYGPATH_W) '$(srcdir)/launchd_ktrace.c'; fi`
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-launchd_ktrace.Tpo $(DEPDIR)/liblaunch_a-launchd_ktrace.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_ktrace.c' object='liblaunch_a-launchd_ktrace.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -c -o liblaunch_a-launchd_ktrace.obj `if test -f 'launchd_ktrace.c'; then $(CYGPATH_W) 'launchd_ktrace.c'; else $(CYGPATH_W) '$(srcdir)/launchd_ktrace.c'; fi`
+
 liblaunch_a-__version.o: __version.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_a_CFLAGS) $(CFLAGS) -MT liblaunch_a-__version.o -MD -MP -MF $(DEPDIR)/liblaunch_a-__version.Tpo -c -o liblaunch_a-__version.o `test -f '__version.c' || echo '$(srcdir)/'`__version.c
 @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_a-__version.Tpo $(DEPDIR)/liblaunch_a-__version.Po
@@ -592,6 +613,20 @@
 @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-protocol_vprocUser.obj `if test -f 'protocol_vprocUser.c'; then $(CYGPATH_W) 'protocol_vprocUser.c'; else $(CYGPATH_W) '$(srcdir)/protocol_vprocUser.c'; fi`
 
+liblaunch_profile_a-launchd_ktrace.o: launchd_ktrace.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-launchd_ktrace.o -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-launchd_ktrace.Tpo -c -o liblaunch_profile_a-launchd_ktrace.o `test -f 'launchd_ktrace.c' || echo '$(srcdir)/'`launchd_ktrace.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-launchd_ktrace.Tpo $(DEPDIR)/liblaunch_profile_a-launchd_ktrace.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_ktrace.c' object='liblaunch_profile_a-launchd_ktrace.o' libtool=no @AMDEPBACKSLASH@
+ at 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-launchd_ktrace.o `test -f 'launchd_ktrace.c' || echo '$(srcdir)/'`launchd_ktrace.c
+
+liblaunch_profile_a-launchd_ktrace.obj: launchd_ktrace.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-launchd_ktrace.obj -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-launchd_ktrace.Tpo -c -o liblaunch_profile_a-launchd_ktrace.obj `if test -f 'launchd_ktrace.c'; then $(CYGPATH_W) 'launchd_ktrace.c'; else $(CYGPATH_W) '$(srcdir)/launchd_ktrace.c'; fi`
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-launchd_ktrace.Tpo $(DEPDIR)/liblaunch_profile_a-launchd_ktrace.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_ktrace.c' object='liblaunch_profile_a-launchd_ktrace.obj' libtool=no @AMDEPBACKSLASH@
+ at 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-launchd_ktrace.obj `if test -f 'launchd_ktrace.c'; then $(CYGPATH_W) 'launchd_ktrace.c'; else $(CYGPATH_W) '$(srcdir)/launchd_ktrace.c'; fi`
+
 liblaunch_profile_a-__version.o: __version.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-__version.o -MD -MP -MF $(DEPDIR)/liblaunch_profile_a-__version.Tpo -c -o liblaunch_profile_a-__version.o `test -f '__version.c' || echo '$(srcdir)/'`__version.c
 @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/liblaunch_profile_a-__version.Tpo $(DEPDIR)/liblaunch_profile_a-__version.Po
@@ -829,6 +864,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mach_excServer.c' object='launchd-mach_excServer.obj' libtool=no @AMDEPBACKSLASH@
 @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-mach_excServer.obj `if test -f 'mach_excServer.c'; then $(CYGPATH_W) 'mach_excServer.c'; else $(CYGPATH_W) '$(srcdir)/mach_excServer.c'; fi`
+
+launchd-launchd_ktrace.o: launchd_ktrace.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_ktrace.o -MD -MP -MF $(DEPDIR)/launchd-launchd_ktrace.Tpo -c -o launchd-launchd_ktrace.o `test -f 'launchd_ktrace.c' || echo '$(srcdir)/'`launchd_ktrace.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_ktrace.Tpo $(DEPDIR)/launchd-launchd_ktrace.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_ktrace.c' object='launchd-launchd_ktrace.o' libtool=no @AMDEPBACKSLASH@
+ at 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-launchd_ktrace.o `test -f 'launchd_ktrace.c' || echo '$(srcdir)/'`launchd_ktrace.c
+
+launchd-launchd_ktrace.obj: launchd_ktrace.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(launchd_CFLAGS) $(CFLAGS) -MT launchd-launchd_ktrace.obj -MD -MP -MF $(DEPDIR)/launchd-launchd_ktrace.Tpo -c -o launchd-launchd_ktrace.obj `if test -f 'launchd_ktrace.c'; then $(CYGPATH_W) 'launchd_ktrace.c'; else $(CYGPATH_W) '$(srcdir)/launchd_ktrace.c'; fi`
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/launchd-launchd_ktrace.Tpo $(DEPDIR)/launchd-launchd_ktrace.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='launchd_ktrace.c' object='launchd-launchd_ktrace.obj' libtool=no @AMDEPBACKSLASH@
+ at 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-launchd_ktrace.obj `if test -f 'launchd_ktrace.c'; then $(CYGPATH_W) 'launchd_ktrace.c'; else $(CYGPATH_W) '$(srcdir)/launchd_ktrace.c'; fi`
 install-man1: $(man1_MANS) $(man_MANS)
 	@$(NORMAL_INSTALL)
 	test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"

Modified: trunk/launchd/src/launchctl.c
===================================================================
--- trunk/launchd/src/launchctl.c	2008-09-03 00:07:58 UTC (rev 23711)
+++ trunk/launchd/src/launchctl.c	2008-09-17 18:41:18 UTC (rev 23712)
@@ -1390,13 +1390,20 @@
 }
 
 static void
+exit_at_sigterm(int sig)
+{
+	if( sig == SIGTERM ) {
+		exit(EXIT_SUCCESS);
+	}
+}
+
+static void
 system_specific_bootstrap(bool sflag)
 {
 	int hnmib[] = { CTL_KERN, KERN_HOSTNAME };
 	struct kevent kev;
 	int kq;
 
-
 	do_sysversion_sysctl();
 
 	do_single_user_mode(sflag);
@@ -1419,6 +1426,11 @@
 
 	if (path_check("/etc/rc.cdrom")) {
 		const char *rccdrom_tool[] = { _PATH_BSHELL, "/etc/rc.cdrom", "multiuser", NULL };
+		
+		/* The bootstrapper should always be killable during install-time (rdar://problem/6103485). 
+		 * This is a special case for /etc/rc.cdrom, which runs a process and never exits.
+		 */
+		assumes(signal(SIGTERM, exit_at_sigterm) != SIG_ERR);
 		assumes(fwexec(rccdrom_tool, NULL) != -1);
 		assumes(reboot(RB_HALT) != -1);
 		_exit(EXIT_FAILURE);

Modified: trunk/launchd/src/launchd.c
===================================================================
--- trunk/launchd/src/launchd.c	2008-09-03 00:07:58 UTC (rev 23711)
+++ trunk/launchd/src/launchd.c	2008-09-17 18:41:18 UTC (rev 23712)
@@ -82,7 +82,6 @@
 #define LAUNCHD_CONF ".launchd.conf"
 #define SECURITY_LIB "/System/Library/Frameworks/Security.framework/Versions/A/Security"
 
-
 extern char **environ;
 
 INTERNAL_ABI static void pfsystem_callback(void *, struct kevent *);
@@ -107,6 +106,7 @@
 bool shutdown_in_progress;
 bool fake_shutdown_in_progress;
 bool network_up;
+char g_username[128] = "__UnknownUserToLaunchd_DontPanic_NotImportant__";
 
 int
 main(int argc, char *const *argv)
@@ -157,6 +157,17 @@
 		pid1_magic_init();
 	} else {
 		ipc_server_init();
+		
+		runtime_log_push();
+
+		int64_t now = runtime_get_wall_time();
+		
+		struct passwd *pwent = getpwuid(getuid());
+		if( pwent ) {
+			strlcpy(g_username, pwent->pw_name, sizeof(g_username) - 1);
+		}
+		
+		runtime_syslog(LOG_NOTICE, "Per-user launchd for UID %u (%s) began at: %lld.%06llu", getuid(), g_username, now / USEC_PER_SEC, now % USEC_PER_SEC);
 	}
 
 	monitor_networking_state();
@@ -301,7 +312,8 @@
 
 	now = runtime_get_wall_time();
 
-	runtime_syslog(LOG_NOTICE, "Shutdown began at: %lld.%06llu", now / USEC_PER_SEC, now % USEC_PER_SEC);
+	char *term_who = pid1_magic ? "System shutdown" : "Per-user launchd termination";
+	runtime_syslog(LOG_NOTICE, "%s began at: %lld.%06llu", term_who, now / USEC_PER_SEC, now % USEC_PER_SEC);
 
 	launchd_assert(jobmgr_shutdown(root_jobmgr) != NULL);
 }

Modified: trunk/launchd/src/launchd.h
===================================================================
--- trunk/launchd/src/launchd.h	2008-09-03 00:07:58 UTC (rev 23711)
+++ trunk/launchd/src/launchd.h	2008-09-17 18:41:18 UTC (rev 23712)
@@ -32,6 +32,7 @@
 extern bool shutdown_in_progress;
 extern bool fake_shutdown_in_progress;
 extern bool network_up;
+extern bool g_force_old_kill_path;
 
 INTERNAL_ABI bool init_check_pid(pid_t);
 

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c	2008-09-03 00:07:58 UTC (rev 23711)
+++ trunk/launchd/src/launchd_core_logic.c	2008-09-17 18:41:18 UTC (rev 23712)
@@ -619,7 +619,7 @@
 		return;
 	}
 
-	if (j->kill_via_shmem) {
+	if (j->kill_via_shmem && !g_force_old_kill_path) {
 		if (j->shmem) {
 			if (!j->sent_kill_via_shmem) {
 				j->shmem->vp_shmem_flags |= VPROC_SHMEM_EXITING;
@@ -631,6 +631,8 @@
 		} else {
 			newval = -1;
 		}
+	} else if( j->kill_via_shmem ) {
+		job_log(j, LOG_DEBUG, "Stopping transactional job the old-fashioned way.");
 	}
 
 	j->sent_signal_time = runtime_get_opaque_time();
@@ -1861,7 +1863,7 @@
 	case 'E':
 		if (strcasecmp(key, LAUNCH_JOBKEY_ENVIRONMENTVARIABLES) == 0) {
 			launch_data_dict_iterate(value, envitem_setup, j);
-		}
+		}		
 		break;
 	case 'u':
 	case 'U':
@@ -3493,6 +3495,10 @@
 		setenv(ei->key, ei->value, 1);
 	}
 
+	if( do_apple_internal_logging ) {
+		setenv(LAUNCHD_DO_APPLE_INTERNAL_LOGGING, "true", 1);
+	}
+
 	/*
 	 * We'd like to call setsid() unconditionally, but we have reason to
 	 * believe that prevents launchd from being able to send signals to
@@ -4214,7 +4220,7 @@
 		return;
 	}
 
-	if( strncmp(LAUNCHD_TRUSTED_FD_ENV, key, sizeof(LAUNCHD_TRUSTED_FD_ENV) - 1) ) {
+	if( strncmp(LAUNCHD_TRUSTED_FD_ENV, key, sizeof(LAUNCHD_TRUSTED_FD_ENV) - 1) != 0 ) {
 		envitem_new(j, key, launch_data_get_string(obj), j->importing_global_env);
 	} else {
 		job_log(j, LOG_WARNING, "Ignoring reserved environmental variable: %s", key);
@@ -5020,6 +5026,7 @@
 
 	snprintf(thelabel, sizeof(thelabel), "com.apple.launchctl.%s", session_type);
 	bootstrapper = job_new(jm, thelabel, NULL, bootstrap_tool);
+	
 	if (jobmgr_assumes(jm, bootstrapper != NULL) && (jm->parentmgr || getuid())) {
 		char buf[100];
 
@@ -6134,7 +6141,7 @@
 		} else {
 			job_log(j, LOG_DEBUG, "Now participating in transaction model.");
 			j->kill_via_shmem = (bool)inval;
-			job_log(j, LOG_DEBUG, "j->kill_via_shmem = %s", j->kill_via_shmem ? "YES" : "NO");
+			job_log(j, LOG_DEBUG, "j->kill_via_shmem = %s", j->kill_via_shmem ? "true" : "false");
 		}
 	case 0:
 		break;

Added: trunk/launchd/src/launchd_ktrace.c
===================================================================
--- trunk/launchd/src/launchd_ktrace.c	                        (rev 0)
+++ trunk/launchd/src/launchd_ktrace.c	2008-09-17 18:41:18 UTC (rev 23712)
@@ -0,0 +1,34 @@
+#include "launchd_ktrace.h"
+
+INTERNAL_ABI void
+runtime_ktrace1(runtime_ktrace_code_t code)
+{
+	void *ra = __builtin_extract_return_addr(__builtin_return_address(1));
+
+	/* This syscall returns EINVAL when the trace isn't enabled. */
+	if (do_apple_internal_logging) {
+		syscall(180, code, 0, 0, 0, (long)ra);
+	}
+}
+
+INTERNAL_ABI void
+runtime_ktrace0(runtime_ktrace_code_t code)
+{
+	void *ra = __builtin_extract_return_addr(__builtin_return_address(0));
+
+	/* This syscall returns EINVAL when the trace isn't enabled. */
+	if (do_apple_internal_logging) {
+		syscall(180, code, 0, 0, 0, (long)ra);
+	}
+}
+
+INTERNAL_ABI void
+runtime_ktrace(runtime_ktrace_code_t code, long a, long b, long c)
+{
+	void *ra = __builtin_extract_return_addr(__builtin_return_address(0));
+
+	/* This syscall returns EINVAL when the trace isn't enabled. */
+	if (do_apple_internal_logging) {
+		syscall(180, code, a, b, c, (long)ra);
+	}
+}

Added: trunk/launchd/src/launchd_ktrace.h
===================================================================
--- trunk/launchd/src/launchd_ktrace.h	                        (rev 0)
+++ trunk/launchd/src/launchd_ktrace.h	2008-09-17 18:41:18 UTC (rev 23712)
@@ -0,0 +1,43 @@
+#ifndef __LAUNCHD_KTRACE_H__
+#define __LAUNCHD_KTRACE_H__
+
+#include <unistd.h>
+#include <stdbool.h>
+
+extern bool do_apple_internal_logging;
+
+#ifdef __i386__
+	#define INTERNAL_ABI __attribute__((regparm(3))) /* Enable register-passing for the first 3 arguments on i386. */
+#else
+	#define INTERNAL_ABI
+#endif
+
+#ifndef DBG_LAUNCHD
+	#define DBG_LAUNCHD 34
+#endif
+
+/* Class(8) | SubClass(8) | Code(14) | Qual(2) */
+#define RTKT_CODE(c) ((DBG_LAUNCHD << 24) | (((c) & 0x3fffff) << 2))
+
+typedef enum {
+	RTKT_LAUNCHD_STARTING				= RTKT_CODE(1),
+	RTKT_LAUNCHD_EXITING				= RTKT_CODE(2),
+	RTKT_LAUNCHD_FINDING_STRAY_PG		= RTKT_CODE(3),
+	RTKT_LAUNCHD_FINDING_ALL_STRAYS		= RTKT_CODE(4),
+	RTKT_LAUNCHD_FINDING_EXECLESS		= RTKT_CODE(5),
+	RTKT_LAUNCHD_FINDING_WEIRD_UIDS		= RTKT_CODE(6),
+	RTKT_LAUNCHD_DATA_PACK				= RTKT_CODE(7),
+	RTKT_LAUNCHD_DATA_UNPACK			= RTKT_CODE(8),
+	RTKT_LAUNCHD_BUG					= RTKT_CODE(9),
+	RTKT_LAUNCHD_MACH_IPC				= RTKT_CODE(10),
+	RTKT_LAUNCHD_BSD_KEVENT				= RTKT_CODE(11),
+	RTKT_VPROC_TRANSACTION_INCREMENT	= RTKT_CODE(12),
+	RTKT_VPROC_TRANSACTION_DECREMENT	= RTKT_CODE(13),
+} runtime_ktrace_code_t;
+
+/* All of these log the return address as "arg4" */
+INTERNAL_ABI void runtime_ktrace1(runtime_ktrace_code_t code);
+INTERNAL_ABI void runtime_ktrace0(runtime_ktrace_code_t code);
+INTERNAL_ABI void runtime_ktrace(runtime_ktrace_code_t code, long a, long b, long c);
+
+#endif /* __LAUNCHD_KTRACE_H__ */

Modified: trunk/launchd/src/launchd_runtime.c
===================================================================
--- trunk/launchd/src/launchd_runtime.c	2008-09-03 00:07:58 UTC (rev 23711)
+++ trunk/launchd/src/launchd_runtime.c	2008-09-17 18:41:18 UTC (rev 23712)
@@ -130,8 +130,8 @@
 bool pid1_magic;
 bool do_apple_internal_logging;
 bool low_level_debug;
+bool g_force_old_kill_path = false;
 
-
 INTERNAL_ABI mach_port_t
 runtime_get_kernel_port(void)
 {
@@ -1357,39 +1357,6 @@
 }
 
 INTERNAL_ABI void
-runtime_ktrace1(runtime_ktrace_code_t code)
-{
-	void *ra = __builtin_extract_return_addr(__builtin_return_address(1));
-
-	/* This syscall returns EINVAL when the trace isn't enabled. */
-	if (do_apple_internal_logging) {
-		syscall(180, code, 0, 0, 0, (long)ra);
-	}
-}
-
-INTERNAL_ABI void
-runtime_ktrace0(runtime_ktrace_code_t code)
-{
-	void *ra = __builtin_extract_return_addr(__builtin_return_address(0));
-
-	/* This syscall returns EINVAL when the trace isn't enabled. */
-	if (do_apple_internal_logging) {
-		syscall(180, code, 0, 0, 0, (long)ra);
-	}
-}
-
-INTERNAL_ABI void
-runtime_ktrace(runtime_ktrace_code_t code, long a, long b, long c)
-{
-	void *ra = __builtin_extract_return_addr(__builtin_return_address(0));
-
-	/* This syscall returns EINVAL when the trace isn't enabled. */
-	if (do_apple_internal_logging) {
-		syscall(180, code, a, b, c, (long)ra);
-	}
-}
-
-INTERNAL_ABI void
 runtime_log_push(void)
 {
 	static pthread_mutex_t ourlock = PTHREAD_MUTEX_INITIALIZER;
@@ -1726,4 +1693,8 @@
 		internal_mask_pri = LOG_UPTO(LOG_DEBUG);
 		low_level_debug = true;
 	}
+	
+	if( stat("/var/db/.launchd_disable_sudden_termination", &sb) == 0 ) {
+		g_force_old_kill_path = true;
+	}
 }

Modified: trunk/launchd/src/launchd_runtime.h
===================================================================
--- trunk/launchd/src/launchd_runtime.h	2008-09-03 00:07:58 UTC (rev 23711)
+++ trunk/launchd/src/launchd_runtime.h	2008-09-17 18:41:18 UTC (rev 23712)
@@ -29,6 +29,7 @@
 #include <syslog.h>
 
 #include "launchd_runtime_kill.h"
+#include "launchd_ktrace.h"
 
 #if 0
 
@@ -104,8 +105,8 @@
 typedef INTERNAL_ABI void (*timeout_callback)(void);
 
 extern bool pid1_magic;
-extern bool do_apple_internal_logging;
 extern bool low_level_debug;
+extern char g_username[128];
 
 INTERNAL_ABI mach_port_t runtime_get_kernel_port(void);
 
@@ -142,33 +143,6 @@
 INTERNAL_ABI kern_return_t runtime_log_forward(uid_t forward_uid, gid_t forward_gid, vm_offset_t inval, mach_msg_type_number_t invalCnt);
 INTERNAL_ABI kern_return_t runtime_log_drain(mach_port_t srp, vm_offset_t *outval, mach_msg_type_number_t *outvalCnt);
 
-#ifndef DBG_LAUNCHD
-#define DBG_LAUNCHD 34
-#endif
-
-/* Class(8) | SubClass(8) | Code(14) | Qual(2) */
-#define RTKT_CODE(c) ((DBG_LAUNCHD << 24) | (((c) & 0x3fffff) << 2))
-
-typedef enum {
-	RTKT_LAUNCHD_STARTING		= RTKT_CODE(1),
-	RTKT_LAUNCHD_EXITING		= RTKT_CODE(2),
-	RTKT_LAUNCHD_FINDING_STRAY_PG	= RTKT_CODE(3),
-	RTKT_LAUNCHD_FINDING_ALL_STRAYS	= RTKT_CODE(4),
-	RTKT_LAUNCHD_FINDING_EXECLESS	= RTKT_CODE(5),
-	RTKT_LAUNCHD_FINDING_WEIRD_UIDS	= RTKT_CODE(6),
-	RTKT_LAUNCHD_DATA_PACK		= RTKT_CODE(7),
-	RTKT_LAUNCHD_DATA_UNPACK	= RTKT_CODE(8),
-	RTKT_LAUNCHD_BUG		= RTKT_CODE(9),
-	RTKT_LAUNCHD_MACH_IPC		= RTKT_CODE(10),
-	RTKT_LAUNCHD_BSD_KEVENT		= RTKT_CODE(11),
-} runtime_ktrace_code_t;
-
-/* All of these log the return address as "arg4" */
-INTERNAL_ABI void runtime_ktrace1(runtime_ktrace_code_t code);
-INTERNAL_ABI void runtime_ktrace0(runtime_ktrace_code_t code);
-INTERNAL_ABI void runtime_ktrace(runtime_ktrace_code_t code, long a, long b, long c);
-
-
 #define LOG_APPLEONLY 0x4141504c /* AAPL in hex */
 
 struct runtime_syslog_attr {

Modified: trunk/launchd/src/liblaunch.c
===================================================================
--- trunk/launchd/src/liblaunch.c	2008-09-03 00:07:58 UTC (rev 23711)
+++ trunk/launchd/src/liblaunch.c	2008-09-17 18:41:18 UTC (rev 23712)
@@ -22,6 +22,7 @@
 #include "liblaunch_public.h"
 #include "liblaunch_private.h"
 #include "liblaunch_internal.h"
+#include "launchd_ktrace.h"
 
 #include <mach/mach.h>
 #include <libkern/OSByteOrder.h>
@@ -169,6 +170,8 @@
 static launch_t in_flight_msg_recv_client;
 static pthread_once_t _lc_once = PTHREAD_ONCE_INIT;
 
+bool do_apple_internal_logging = false;
+
 static struct _launch_client {
 	pthread_mutex_t mtx;
 	launch_t	l;

Modified: trunk/launchd/src/liblaunch_private.h
===================================================================
--- trunk/launchd/src/liblaunch_private.h	2008-09-03 00:07:58 UTC (rev 23711)
+++ trunk/launchd/src/liblaunch_private.h	2008-09-17 18:41:18 UTC (rev 23712)
@@ -30,38 +30,39 @@
 
 __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 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 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 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_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_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;

Modified: trunk/launchd/src/liblaunch_public.h
===================================================================
--- trunk/launchd/src/liblaunch_public.h	2008-09-03 00:07:58 UTC (rev 23711)
+++ trunk/launchd/src/liblaunch_public.h	2008-09-17 18:41:18 UTC (rev 23712)
@@ -44,109 +44,109 @@
 #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_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_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_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_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_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_JOBINETDCOMPATIBILITY_WAIT		"Wait"
 
-#define LAUNCH_JOBKEY_MACH_RESETATCLOSE		"ResetAtClose"
-#define LAUNCH_JOBKEY_MACH_HIDEUNTILCHECKIN	"HideUntilCheckIn"
+#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_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_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_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_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"
 
-#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 {

Modified: trunk/launchd/src/libvproc.c
===================================================================
--- trunk/launchd/src/libvproc.c	2008-09-03 00:07:58 UTC (rev 23711)
+++ trunk/launchd/src/libvproc.c	2008-09-17 18:41:18 UTC (rev 23712)
@@ -41,6 +41,7 @@
 #include "liblaunch_public.h"
 #include "liblaunch_private.h"
 #include "liblaunch_internal.h"
+#include "launchd_ktrace.h"
 
 #include "protocol_vproc.h"
 
@@ -83,6 +84,19 @@
 	vproc_shmem = (struct vproc_shmem_s *)vm_addr;
 }
 
+static void
+vproc_client_init(void)
+{
+	char *val = getenv(LAUNCHD_DO_APPLE_INTERNAL_LOGGING);
+	if( val ) {
+		if( strncmp(val, "true", sizeof("true") - 1) == 0 ) {
+			do_apple_internal_logging = true;
+		}
+	}
+	
+	vproc_shmem_init();
+}
+
 vproc_transaction_t
 vproc_transaction_begin(vproc_t vp __attribute__((unused)))
 {
@@ -97,7 +111,7 @@
 _vproc_transaction_begin(void)
 {
 	if (unlikely(vproc_shmem == NULL)) {
-		int po_r = pthread_once(&shmem_inited, vproc_shmem_init);
+		int po_r = pthread_once(&shmem_inited, vproc_client_init);
 		if (po_r != 0 || vproc_shmem == NULL) {
 			return;
 		}
@@ -117,6 +131,8 @@
 			abort();
 		}
 	} while( !__sync_bool_compare_and_swap(&vproc_shmem->vp_shmem_transaction_cnt, old, old + 1) );
+	
+	runtime_ktrace(RTKT_VPROC_TRANSACTION_INCREMENT, old + 1, 0, 0);
 }
 
 size_t
@@ -172,6 +188,7 @@
 
 	newval = __sync_sub_and_fetch(&vproc_shmem->vp_shmem_transaction_cnt, 1);
 
+	runtime_ktrace(RTKT_VPROC_TRANSACTION_DECREMENT, newval, 0, 0);
 	if (unlikely(newval < 0)) {
 		if (vproc_shmem->vp_shmem_flags & VPROC_SHMEM_EXITING) {
 			raise(SIGKILL);
@@ -199,7 +216,7 @@
 	typeof(vproc_shmem->vp_shmem_standby_cnt) newval;
 
 	if (unlikely(vproc_shmem == NULL)) {
-		int po_r = pthread_once(&shmem_inited, vproc_shmem_init);
+		int po_r = pthread_once(&shmem_inited, vproc_client_init);
 		if (po_r != 0 || vproc_shmem == NULL) {
 			return;
 		}
@@ -229,6 +246,11 @@
 {
 	typeof(vproc_shmem->vp_shmem_standby_cnt) newval;
 
+	if( unlikely(vproc_shmem == NULL) ) {
+		__crashreporter_info__ = "Process called vproc_standby_end() when not enrolled in transaction model.";
+		abort();
+	}
+
 	newval = __sync_sub_and_fetch(&vproc_shmem->vp_shmem_standby_cnt, 1);
 
 	if (unlikely(newval < 0)) {
@@ -648,7 +670,7 @@
 	case VPROC_GSK_TRANSACTIONS_ENABLED:
 		/* Shared memory region is required for transactions. */
 		if( unlikely(vproc_shmem == NULL) ) {
-			int po_r = pthread_once(&shmem_inited, vproc_shmem_init);
+			int po_r = pthread_once(&shmem_inited, vproc_client_init);
 			if( po_r != 0 || vproc_shmem == NULL ) {
 				if( outval ) {
 					*outval = -1;

Modified: trunk/launchd/src/libvproc_private.h
===================================================================
--- trunk/launchd/src/libvproc_private.h	2008-09-03 00:07:58 UTC (rev 23711)
+++ trunk/launchd/src/libvproc_private.h	2008-09-17 18:41:18 UTC (rev 23712)
@@ -20,6 +20,7 @@
  * @APPLE_APACHE_LICENSE_HEADER_END@
  */
 
+#include <Availability.h>
 #include <sys/types.h>
 #include <sys/cdefs.h>
 #include <sys/syslog.h>
@@ -27,6 +28,8 @@
 #include <stdbool.h>
 #include <launch.h>
 
+#define VPROC_HAS_TRANSACTIONS 1
+
 __BEGIN_DECLS
 
 #pragma GCC visibility push(default)
@@ -73,24 +76,23 @@
 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"
+#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);
-void _vproc_standby_end(void);
-size_t _vproc_standby_count(void);
-size_t _vproc_standby_timeout(void);
+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);
-void _vproc_transaction_begin(void);
-void _vproc_transaction_end(void);
-size_t _vproc_transaction_count(void);
+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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080917/a57c69ca/attachment-0001.html 


More information about the launchd-changes mailing list