[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