[launchd-changes] [22911] trunk/launchd/src
source_changes at macosforge.org
source_changes at macosforge.org
Mon Oct 23 13:10:12 PDT 2006
Revision: 22911
http://trac.macosforge.org/projects/launchd/changeset/22911
Author: zarzycki at apple.com
Date: 2006-10-23 13:10:11 -0700 (Mon, 23 Oct 2006)
Log Message:
-----------
Let's put all the old bootstrap_*() APIs in their own file.
Modified Paths:
--------------
trunk/launchd/src/Makefile.am
trunk/launchd/src/Makefile.in
trunk/launchd/src/bootstrap_public.h
trunk/launchd/src/launch.h
trunk/launchd/src/launch_priv.h
trunk/launchd/src/libbootstrap.c
trunk/launchd/src/libvproc.c
trunk/launchd/src/vproc_priv.h
Modified: trunk/launchd/src/Makefile.am
===================================================================
--- trunk/launchd/src/Makefile.am 2006-10-23 17:46:23 UTC (rev 22910)
+++ trunk/launchd/src/Makefile.am 2006-10-23 20:10:11 UTC (rev 22911)
@@ -1,4 +1,4 @@
-AM_CFLAGS = -no-cpp-precomp -F/System/Library/PrivateFrameworks -Wall -Wextra -Waggregate-return -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror -D__MigTypeCheck=1
+AM_CFLAGS = -no-cpp-precomp -F/System/Library/PrivateFrameworks -Wall -Wextra -Waggregate-return -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror -D__MigTypeCheck=1 -fvisibility=hidden -Dmig_external=__private_extern__
CLEANFILES = protocol_vproc.h protocol_vprocServer.c protocol_vprocUser.c protocol_vprocServer.h \
launchd_internal.h launchd_internalServer.h launchd_internalServer.h launchd_internalUser.c \
@@ -11,13 +11,15 @@
noinst_LIBRARIES = liblaunch.a liblaunch_profile.a
-liblaunch_a_SOURCES = liblaunch.c libvproc.c
+liblaunch_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c
liblaunch_profile_a_CFLAGS = -pg $(AM_CFLAGS)
-liblaunch_profile_a_SOURCES = liblaunch.c libvproc.c
+liblaunch_profile_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c
$(srcdir)/libvproc.c:: protocol_vproc.h
+$(srcdir)/protocol_vprocUser.c:: protocol_vproc.h
+
install-data-hook:
mkdir -p $(DESTDIR)/usr/local/lib/system
cp liblaunch.a $(DESTDIR)/usr/local/lib/system
@@ -34,14 +36,14 @@
sysconf_DATA = hostconfig rc.common rc.netboot rc.shutdown
-launchctl_CFLAGS = $(AM_CFLAGS) -fvisibility=hidden -I/System/Library/Frameworks/System.framework/PrivateHeaders
+launchctl_CFLAGS = $(AM_CFLAGS) -I/System/Library/Frameworks/System.framework/PrivateHeaders
launchctl_LDFLAGS = -framework CoreFoundation -weak_library /usr/lib/libedit.dylib
-SystemStarter_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS) -fvisibility=hidden
+SystemStarter_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS)
SystemStarter_LDFLAGS = -framework CoreFoundation
SystemStarter_SOURCES = StartupItems.c IPC.c SystemStarter.c
-launchd_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS) -Wno-unused-parameter -fvisibility=hidden
+launchd_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS) -Wno-unused-parameter
launchd_LDFLAGS = -lbsm
launchd_SOURCES = launchd.c launchd_core_logic.c launchd_unix_ipc.c init.c protocol_vprocServer.c notifyServer.c launchd_internalUser.c launchd_internalServer.c job_replyUser.c launchd_runtime.c
Modified: trunk/launchd/src/Makefile.in
===================================================================
--- trunk/launchd/src/Makefile.in 2006-10-23 17:46:23 UTC (rev 22910)
+++ trunk/launchd/src/Makefile.in 2006-10-23 20:10:11 UTC (rev 22911)
@@ -56,16 +56,21 @@
ARFLAGS = cru
liblaunch_a_AR = $(AR) $(ARFLAGS)
liblaunch_a_LIBADD =
-am__liblaunch_a_SOURCES_DIST = liblaunch.c libvproc.c
+am__liblaunch_a_SOURCES_DIST = liblaunch.c libvproc.c libbootstrap.c \
+ protocol_vprocUser.c
@LIBS_ONLY_TRUE at am_liblaunch_a_OBJECTS = liblaunch.$(OBJEXT) \
- at LIBS_ONLY_TRUE@ libvproc.$(OBJEXT)
+ at LIBS_ONLY_TRUE@ libvproc.$(OBJEXT) libbootstrap.$(OBJEXT) \
+ at LIBS_ONLY_TRUE@ protocol_vprocUser.$(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
+am__liblaunch_profile_a_SOURCES_DIST = liblaunch.c libvproc.c \
+ libbootstrap.c protocol_vprocUser.c
@LIBS_ONLY_TRUE at am_liblaunch_profile_a_OBJECTS = \
@LIBS_ONLY_TRUE@ liblaunch_profile_a-liblaunch.$(OBJEXT) \
- at LIBS_ONLY_TRUE@ liblaunch_profile_a-libvproc.$(OBJEXT)
+ at LIBS_ONLY_TRUE@ liblaunch_profile_a-libvproc.$(OBJEXT) \
+ at LIBS_ONLY_TRUE@ liblaunch_profile_a-libbootstrap.$(OBJEXT) \
+ at LIBS_ONLY_TRUE@ liblaunch_profile_a-protocol_vprocUser.$(OBJEXT)
liblaunch_profile_a_OBJECTS = $(am_liblaunch_profile_a_OBJECTS)
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" \
"$(DESTDIR)$(sbindir)" "$(DESTDIR)$(sbindir)" \
@@ -221,23 +226,23 @@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-AM_CFLAGS = -no-cpp-precomp -F/System/Library/PrivateFrameworks -Wall -Wextra -Waggregate-return -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror -D__MigTypeCheck=1
+AM_CFLAGS = -no-cpp-precomp -F/System/Library/PrivateFrameworks -Wall -Wextra -Waggregate-return -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror -D__MigTypeCheck=1 -fvisibility=hidden -Dmig_external=__private_extern__
CLEANFILES = protocol_vproc.h protocol_vprocServer.c protocol_vprocUser.c protocol_vprocServer.h \
launchd_internal.h launchd_internalServer.h launchd_internalServer.h launchd_internalUser.c \
notifyServer.c notifyServer.h job_replyUser.c job_reply.h
@LIBS_ONLY_TRUE at noinst_LIBRARIES = liblaunch.a liblaunch_profile.a
- at LIBS_ONLY_TRUE@liblaunch_a_SOURCES = liblaunch.c libvproc.c
+ at LIBS_ONLY_TRUE@liblaunch_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c
@LIBS_ONLY_TRUE at liblaunch_profile_a_CFLAGS = -pg $(AM_CFLAGS)
- at LIBS_ONLY_TRUE@liblaunch_profile_a_SOURCES = liblaunch.c libvproc.c
+ at LIBS_ONLY_TRUE@liblaunch_profile_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c
@LIBS_ONLY_FALSE at sbin_SCRIPTS = service
@LIBS_ONLY_FALSE at sysconf_DATA = hostconfig rc.common rc.netboot rc.shutdown
- at LIBS_ONLY_FALSE@launchctl_CFLAGS = $(AM_CFLAGS) -fvisibility=hidden -I/System/Library/Frameworks/System.framework/PrivateHeaders
+ at LIBS_ONLY_FALSE@launchctl_CFLAGS = $(AM_CFLAGS) -I/System/Library/Frameworks/System.framework/PrivateHeaders
@LIBS_ONLY_FALSE at launchctl_LDFLAGS = -framework CoreFoundation -weak_library /usr/lib/libedit.dylib
- at LIBS_ONLY_FALSE@SystemStarter_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS) -fvisibility=hidden
+ at LIBS_ONLY_FALSE@SystemStarter_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS)
@LIBS_ONLY_FALSE at SystemStarter_LDFLAGS = -framework CoreFoundation
@LIBS_ONLY_FALSE at SystemStarter_SOURCES = StartupItems.c IPC.c SystemStarter.c
- at LIBS_ONLY_FALSE@launchd_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS) -Wno-unused-parameter -fvisibility=hidden
+ at LIBS_ONLY_FALSE@launchd_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS) -Wno-unused-parameter
@LIBS_ONLY_FALSE at launchd_LDFLAGS = -lbsm
@LIBS_ONLY_FALSE at launchd_SOURCES = launchd.c launchd_core_logic.c launchd_unix_ipc.c init.c protocol_vprocServer.c notifyServer.c launchd_internalUser.c launchd_internalServer.c job_replyUser.c launchd_runtime.c
@LIBS_ONLY_FALSE at launchproxy_LDFLAGS = -weak_framework Security
@@ -432,10 +437,14 @@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/launchd-notifyServer.Po at am__quote@
@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@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libbootstrap.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-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@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libvproc.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/protocol_vprocUser.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/wait4path.Po at am__quote@
.c.o:
@@ -480,6 +489,34 @@
@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-libvproc.obj `if test -f 'libvproc.c'; then $(CYGPATH_W) 'libvproc.c'; else $(CYGPATH_W) '$(srcdir)/libvproc.c'; fi`
+liblaunch_profile_a-libbootstrap.o: libbootstrap.c
+ at am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-libbootstrap.o -MD -MP -MF "$(DEPDIR)/liblaunch_profile_a-libbootstrap.Tpo" -c -o liblaunch_profile_a-libbootstrap.o `test -f 'libbootstrap.c' || echo '$(srcdir)/'`libbootstrap.c; \
+ at am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/liblaunch_profile_a-libbootstrap.Tpo" "$(DEPDIR)/liblaunch_profile_a-libbootstrap.Po"; else rm -f "$(DEPDIR)/liblaunch_profile_a-libbootstrap.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libbootstrap.c' object='liblaunch_profile_a-libbootstrap.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-libbootstrap.o `test -f 'libbootstrap.c' || echo '$(srcdir)/'`libbootstrap.c
+
+liblaunch_profile_a-libbootstrap.obj: libbootstrap.c
+ at am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-libbootstrap.obj -MD -MP -MF "$(DEPDIR)/liblaunch_profile_a-libbootstrap.Tpo" -c -o liblaunch_profile_a-libbootstrap.obj `if test -f 'libbootstrap.c'; then $(CYGPATH_W) 'libbootstrap.c'; else $(CYGPATH_W) '$(srcdir)/libbootstrap.c'; fi`; \
+ at am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/liblaunch_profile_a-libbootstrap.Tpo" "$(DEPDIR)/liblaunch_profile_a-libbootstrap.Po"; else rm -f "$(DEPDIR)/liblaunch_profile_a-libbootstrap.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libbootstrap.c' object='liblaunch_profile_a-libbootstrap.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-libbootstrap.obj `if test -f 'libbootstrap.c'; then $(CYGPATH_W) 'libbootstrap.c'; else $(CYGPATH_W) '$(srcdir)/libbootstrap.c'; fi`
+
+liblaunch_profile_a-protocol_vprocUser.o: protocol_vprocUser.c
+ at am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-protocol_vprocUser.o -MD -MP -MF "$(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Tpo" -c -o liblaunch_profile_a-protocol_vprocUser.o `test -f 'protocol_vprocUser.c' || echo '$(srcdir)/'`protocol_vprocUser.c; \
+ at am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Tpo" "$(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Po"; else rm -f "$(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='protocol_vprocUser.c' object='liblaunch_profile_a-protocol_vprocUser.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-protocol_vprocUser.o `test -f 'protocol_vprocUser.c' || echo '$(srcdir)/'`protocol_vprocUser.c
+
+liblaunch_profile_a-protocol_vprocUser.obj: protocol_vprocUser.c
+ at am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblaunch_profile_a_CFLAGS) $(CFLAGS) -MT liblaunch_profile_a-protocol_vprocUser.obj -MD -MP -MF "$(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Tpo" -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`; \
+ at am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Tpo" "$(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Po"; else rm -f "$(DEPDIR)/liblaunch_profile_a-protocol_vprocUser.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='protocol_vprocUser.c' object='liblaunch_profile_a-protocol_vprocUser.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-protocol_vprocUser.obj `if test -f 'protocol_vprocUser.c'; then $(CYGPATH_W) 'protocol_vprocUser.c'; else $(CYGPATH_W) '$(srcdir)/protocol_vprocUser.c'; fi`
+
SystemStarter-StartupItems.o: StartupItems.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SystemStarter_CFLAGS) $(CFLAGS) -MT SystemStarter-StartupItems.o -MD -MP -MF "$(DEPDIR)/SystemStarter-StartupItems.Tpo" -c -o SystemStarter-StartupItems.o `test -f 'StartupItems.c' || echo '$(srcdir)/'`StartupItems.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/SystemStarter-StartupItems.Tpo" "$(DEPDIR)/SystemStarter-StartupItems.Po"; else rm -f "$(DEPDIR)/SystemStarter-StartupItems.Tpo"; exit 1; fi
@@ -1018,6 +1055,8 @@
@LIBS_ONLY_TRUE@$(srcdir)/libvproc.c:: protocol_vproc.h
+ at LIBS_ONLY_TRUE@$(srcdir)/protocol_vprocUser.c:: protocol_vproc.h
+
@LIBS_ONLY_TRUE at install-data-hook:
@LIBS_ONLY_TRUE@ mkdir -p $(DESTDIR)/usr/local/lib/system
@LIBS_ONLY_TRUE@ cp liblaunch.a $(DESTDIR)/usr/local/lib/system
Modified: trunk/launchd/src/bootstrap_public.h
===================================================================
--- trunk/launchd/src/bootstrap_public.h 2006-10-23 17:46:23 UTC (rev 22910)
+++ trunk/launchd/src/bootstrap_public.h 2006-10-23 20:10:11 UTC (rev 22911)
@@ -86,6 +86,8 @@
__BEGIN_DECLS
+#pragma GCC visibility push(default)
+
#define BOOTSTRAP_MAX_NAME_LEN 128
#define BOOTSTRAP_MAX_CMD_LEN 512
@@ -342,6 +344,8 @@
*/
const char *bootstrap_strerror(kern_return_t r) __attribute__((__nothrow__, __pure__, __warn_unused_result__));
+#pragma GCC visibility pop
+
__END_DECLS
#endif
Modified: trunk/launchd/src/launch.h
===================================================================
--- trunk/launchd/src/launch.h 2006-10-23 17:46:23 UTC (rev 22910)
+++ trunk/launchd/src/launch.h 2006-10-23 20:10:11 UTC (rev 22911)
@@ -25,6 +25,8 @@
#include <stddef.h>
#include <stdbool.h>
+#pragma GCC visibility push(default)
+
__BEGIN_DECLS
#ifdef __GNUC__
@@ -214,4 +216,6 @@
__END_DECLS
+#pragma GCC visibility pop
+
#endif
Modified: trunk/launchd/src/launch_priv.h
===================================================================
--- trunk/launchd/src/launch_priv.h 2006-10-23 17:46:23 UTC (rev 22910)
+++ trunk/launchd/src/launch_priv.h 2006-10-23 20:10:11 UTC (rev 22911)
@@ -22,6 +22,8 @@
#include <launch.h>
+#pragma GCC visibility push(default)
+
__BEGIN_DECLS
#define LAUNCH_KEY_GETUSERENVIRONMENT "GetUserEnvironment"
@@ -115,4 +117,7 @@
__END_DECLS
+#pragma GCC visibility pop
+
+
#endif
Modified: trunk/launchd/src/libbootstrap.c
===================================================================
--- trunk/launchd/src/libbootstrap.c 2006-10-23 17:46:23 UTC (rev 22910)
+++ trunk/launchd/src/libbootstrap.c 2006-10-23 20:10:11 UTC (rev 22911)
@@ -22,130 +22,17 @@
#include <mach/vm_map.h>
#include "bootstrap_public.h"
-#include "bootstrap_private.h"
+#include "vproc_priv.h"
#include "launch.h"
#include "launch_priv.h"
-#define mig_external static
-#include "bootstrap.h"
-#include "bootstrapUser.c"
+#include "protocol_vproc.h"
#include <sys/param.h>
#include <stdlib.h>
#include <errno.h>
kern_return_t
-_launchd_to_launchd(mach_port_t bp, mach_port_t *reqport, mach_port_t *rcvright,
- name_array_t *service_names, mach_msg_type_number_t *service_namesCnt,
- mach_port_array_t *ports, mach_msg_type_number_t *portCnt)
-{
- return vproc_mig_transfer_subset(bp, reqport, rcvright, service_names, service_namesCnt, ports, portCnt);
-}
-
-pid_t
-_spawn_via_launchd(const char *label, const char *const *argv, const struct spawn_via_launchd_attr *spawn_attrs, int struct_version)
-{
- kern_return_t kr;
- const char *const *tmpp;
- size_t len, buf_len = strlen(label) + 1;
- char *buf = strdup(label);
- uint64_t flags = 0;
- uint32_t argc = 0;
- uint32_t envc = 0;
- pid_t p = -1;
- mode_t u_mask = CMASK;
- mach_port_t obsvr_port = MACH_PORT_NULL;
-
- for (tmpp = argv; *tmpp; tmpp++) {
- argc++;
- len = strlen(*tmpp) + 1;
- buf = reallocf(buf, buf_len + len);
- strcpy(buf + buf_len, *tmpp);
- buf_len += len;
- }
-
- if (spawn_attrs) switch (struct_version) {
- case 0:
- if (spawn_attrs->spawn_flags & SPAWN_VIA_LAUNCHD_STOPPED) {
- flags |= SPAWN_WANTS_WAIT4DEBUGGER;
- }
- if (spawn_attrs->spawn_flags & SPAWN_VIA_LAUNCHD_FORCE_PPC) {
- flags |= SPAWN_WANTS_FORCE_PPC;
- }
-
- if (spawn_attrs->spawn_env) {
- for (tmpp = spawn_attrs->spawn_env; *tmpp; tmpp++) {
- envc++;
- len = strlen(*tmpp) + 1;
- buf = reallocf(buf, buf_len + len);
- strcpy(buf + buf_len, *tmpp);
- buf_len += len;
- }
- }
-
- if (spawn_attrs->spawn_path) {
- flags |= SPAWN_HAS_PATH;
- len = strlen(spawn_attrs->spawn_path) + 1;
- buf = reallocf(buf, buf_len + len);
- strcpy(buf + buf_len, spawn_attrs->spawn_path);
- buf_len += len;
- }
-
- if (spawn_attrs->spawn_chdir) {
- flags |= SPAWN_HAS_WDIR;
- len = strlen(spawn_attrs->spawn_chdir) + 1;
- buf = reallocf(buf, buf_len + len);
- strcpy(buf + buf_len, spawn_attrs->spawn_chdir);
- buf_len += len;
- }
-
- if (spawn_attrs->spawn_umask) {
- flags |= SPAWN_HAS_UMASK;
- u_mask = *spawn_attrs->spawn_umask;
- }
-
- break;
- default:
- break;
- }
-
- kr = vproc_mig_spawn(bootstrap_port, buf, buf_len, argc, envc, flags, u_mask, &p, &obsvr_port);
-
- free(buf);
-
- if (kr == BOOTSTRAP_SUCCESS) {
- if (spawn_attrs && spawn_attrs->spawn_observer_port) {
- *spawn_attrs->spawn_observer_port = obsvr_port;
- } else {
- mach_port_deallocate(mach_task_self(), obsvr_port);
- }
- return p;
- }
-
- switch (kr) {
- case BOOTSTRAP_NOT_PRIVILEGED:
- errno = EPERM; break;
- case BOOTSTRAP_NO_MEMORY:
- errno = ENOMEM; break;
- default:
- errno = EINVAL; break;
- }
- return -1;
-}
-
-kern_return_t
-mpm_wait(mach_port_t ajob, int *wstatus)
-{
- return vproc_mig_wait(ajob, wstatus);
-}
-
-kern_return_t
-mpm_uncork_fork(mach_port_t ajob)
-{
- return vproc_mig_uncork_fork(ajob);
-}
-
-kern_return_t
bootstrap_create_server(mach_port_t bp, cmd_t server_cmd, uid_t server_uid, boolean_t on_demand, mach_port_t *server_port)
{
return vproc_mig_create_server(bp, server_cmd, server_uid, on_demand, server_port);
@@ -174,12 +61,6 @@
}
kern_return_t
-bootstrap_getsocket(mach_port_t bp, name_t sockpath)
-{
- return vproc_mig_getsocket(bp, sockpath);
-}
-
-kern_return_t
bootstrap_parent(mach_port_t bp, mach_port_t *parent_port)
{
return vproc_mig_parent(bp, parent_port);
@@ -267,7 +148,6 @@
service_active, service_activeCnt);
}
-
const char *
bootstrap_strerror(kern_return_t r)
{
Modified: trunk/launchd/src/libvproc.c
===================================================================
--- trunk/launchd/src/libvproc.c 2006-10-23 17:46:23 UTC (rev 22910)
+++ trunk/launchd/src/libvproc.c 2006-10-23 20:10:11 UTC (rev 22911)
@@ -26,9 +26,7 @@
#include "launch.h"
#include "launch_priv.h"
-#define mig_external static
#include "protocol_vproc.h"
-#include "protocol_vprocUser.c"
#include <sys/param.h>
#include <stdlib.h>
@@ -146,146 +144,7 @@
}
kern_return_t
-bootstrap_create_server(mach_port_t bp, cmd_t server_cmd, uid_t server_uid, boolean_t on_demand, mach_port_t *server_port)
-{
- return vproc_mig_create_server(bp, server_cmd, server_uid, on_demand, server_port);
-}
-
-kern_return_t
-bootstrap_subset(mach_port_t bp, mach_port_t requestor_port, mach_port_t *subset_port)
-{
- return vproc_mig_subset(bp, requestor_port, subset_port);
-}
-
-kern_return_t
-bootstrap_unprivileged(mach_port_t bp, mach_port_t *unpriv_port)
-{
- kern_return_t kr;
-
- *unpriv_port = MACH_PORT_NULL;
-
- kr = mach_port_mod_refs(mach_task_self(), bp, MACH_PORT_RIGHT_SEND, 1);
-
- if (kr == KERN_SUCCESS) {
- *unpriv_port = bp;
- }
-
- return kr;
-}
-
-kern_return_t
bootstrap_getsocket(mach_port_t bp, name_t sockpath)
{
return vproc_mig_getsocket(bp, sockpath);
}
-
-kern_return_t
-bootstrap_parent(mach_port_t bp, mach_port_t *parent_port)
-{
- return vproc_mig_parent(bp, parent_port);
-}
-
-kern_return_t
-bootstrap_register(mach_port_t bp, name_t service_name, mach_port_t sp)
-{
- return vproc_mig_register(bp, service_name, sp);
-}
-
-kern_return_t
-bootstrap_create_service(mach_port_t bp, name_t service_name, mach_port_t *sp)
-{
- return vproc_mig_create_service(bp, service_name, sp);
-}
-
-kern_return_t
-bootstrap_check_in(mach_port_t bp, name_t service_name, mach_port_t *sp)
-{
- return vproc_mig_check_in(bp, service_name, sp);
-}
-
-kern_return_t
-bootstrap_look_up(mach_port_t bp, name_t service_name, mach_port_t *sp)
-{
- return vproc_mig_look_up(bp, service_name, sp);
-}
-
-kern_return_t
-bootstrap_look_up_array(mach_port_t bp,
- name_array_t names, mach_msg_type_number_t name_cnt,
- mach_port_array_t *ports, mach_msg_type_number_t *port_cnt,
- boolean_t *all)
-{
- unsigned int i;
- kern_return_t r;
-
- if (name_cnt > BOOTSTRAP_MAX_LOOKUP_COUNT)
- return BOOTSTRAP_BAD_COUNT;
-
- *port_cnt = name_cnt;
-
- r = vm_allocate(mach_task_self(), (vm_address_t *)&ports, name_cnt * sizeof(mach_port_t), true);
-
- if (r != KERN_SUCCESS)
- return r;
-
- *all = true;
-
- for (i = 0; i < name_cnt; i++) {
- if (bootstrap_look_up(bp, names[i], &((*ports)[i])) == BOOTSTRAP_SUCCESS)
- continue;
- *all = false;
- ports[i] = MACH_PORT_NULL;
- }
-
- return BOOTSTRAP_SUCCESS;
-}
-
-kern_return_t
-bootstrap_status(mach_port_t bp, name_t service_name, bootstrap_status_t *service_active)
-{
- mach_port_t p;
-
- if (bootstrap_check_in(bp, service_name, &p) == BOOTSTRAP_SUCCESS) {
- mach_port_mod_refs(mach_task_self(), p, MACH_PORT_RIGHT_RECEIVE, -1);
- *service_active = BOOTSTRAP_STATUS_ON_DEMAND;
- return BOOTSTRAP_SUCCESS;
- } else if (bootstrap_look_up(bp, service_name, &p) == BOOTSTRAP_SUCCESS) {
- mach_port_deallocate(mach_task_self(), p);
- *service_active = BOOTSTRAP_STATUS_ACTIVE;
- return BOOTSTRAP_SUCCESS;
- }
-
- return BOOTSTRAP_UNKNOWN_SERVICE;
-}
-
-kern_return_t
-bootstrap_info(mach_port_t bp,
- name_array_t *service_names, mach_msg_type_number_t *service_namesCnt,
- bootstrap_status_array_t *service_active, mach_msg_type_number_t *service_activeCnt)
-{
- return vproc_mig_info(bp, service_names, service_namesCnt,
- service_active, service_activeCnt);
-}
-
-
-const char *
-bootstrap_strerror(kern_return_t r)
-{
- switch (r) {
- case BOOTSTRAP_SUCCESS:
- return "Success";
- case BOOTSTRAP_NOT_PRIVILEGED:
- return "Permission denied";
- case BOOTSTRAP_NAME_IN_USE:
- case BOOTSTRAP_SERVICE_ACTIVE:
- return "Service name already exists";
- case BOOTSTRAP_UNKNOWN_SERVICE:
- return "Unknown service name";
- case BOOTSTRAP_BAD_COUNT:
- return "Too many lookups were requested in one request";
- case BOOTSTRAP_NO_MEMORY:
- return "Out of memory";
- default:
- return mach_error_string(r);
- }
-}
Modified: trunk/launchd/src/vproc_priv.h
===================================================================
--- trunk/launchd/src/vproc_priv.h 2006-10-23 17:46:23 UTC (rev 22910)
+++ trunk/launchd/src/vproc_priv.h 2006-10-23 20:10:11 UTC (rev 22911)
@@ -20,6 +20,7 @@
* @APPLE_APACHE_LICENSE_HEADER_END@
*/
+
typedef char * _internal_string_t;
typedef mach_port_t vproc_mig_t;
@@ -28,6 +29,8 @@
#include "launchd_core_logic.h"
#endif
+#pragma GCC visibility push(default)
+
#define SPAWN_HAS_PATH 0x0001
#define SPAWN_HAS_WDIR 0x0002
#define SPAWN_HAS_UMASK 0x0004
@@ -59,4 +62,6 @@
bootstrap_status_array_t *service_active,
mach_msg_type_number_t *service_activeCnt);
+#pragma GCC visibility pop
+
#endif
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20061023/7ae5da37/attachment.html
More information about the launchd-changes
mailing list