[launchd-changes] [22919] trunk/launchd/src
source_changes at macosforge.org
source_changes at macosforge.org
Wed Oct 25 18:18:09 PDT 2006
Revision: 22919
http://trac.macosforge.org/projects/launchd/changeset/22919
Author: zarzycki at apple.com
Date: 2006-10-25 18:18:08 -0700 (Wed, 25 Oct 2006)
Log Message:
-----------
Make the internal logging code accessible to jobs as private API.
Modified Paths:
--------------
trunk/launchd/src/launchd_core_logic.c
trunk/launchd/src/launchd_mig_types.defs
trunk/launchd/src/libvproc.c
trunk/launchd/src/libvproc_internal.h
trunk/launchd/src/libvproc_private.h
trunk/launchd/src/protocol_job.defs
Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c 2006-10-25 16:36:57 UTC (rev 22918)
+++ trunk/launchd/src/launchd_core_logic.c 2006-10-26 01:18:08 UTC (rev 22919)
@@ -3622,6 +3622,18 @@
}
kern_return_t
+job_mig_log(job_t j, int pri, int err, logmsg_t msg)
+{
+ if ((errno = err)) {
+ job_log_error(j, pri, "%s", msg);
+ } else {
+ job_log(j, pri, "%s", msg);
+ }
+
+ return 0;
+}
+
+kern_return_t
job_mig_check_in(job_t j, name_t servicename, mach_port_t *serviceportp)
{
static pid_t last_warned_pid = 0;
Modified: trunk/launchd/src/launchd_mig_types.defs
===================================================================
--- trunk/launchd/src/launchd_mig_types.defs 2006-10-25 16:36:57 UTC (rev 22918)
+++ trunk/launchd/src/launchd_mig_types.defs 2006-10-26 01:18:08 UTC (rev 22919)
@@ -25,6 +25,7 @@
type pid_t = integer_t;
type get_set_int_key_t = integer_t;
+type logmsg_t = c_string[*:2048];
type cmd_t = c_string[512];
type cmd_array_t = ^array [] of cmd_t;
type name_t = c_string[128];
Modified: trunk/launchd/src/libvproc.c
===================================================================
--- trunk/launchd/src/libvproc.c 2006-10-25 16:36:57 UTC (rev 22918)
+++ trunk/launchd/src/libvproc.c 2006-10-26 01:18:08 UTC (rev 22919)
@@ -27,6 +27,7 @@
#include <mach/vm_map.h>
#include <sys/param.h>
#include <stdlib.h>
+#include <stdio.h>
#include <errno.h>
#include "liblaunch_public.h"
@@ -175,3 +176,34 @@
return (vproc_err_t)_vproc_set_global_on_demand;
}
+
+static void
+_vproc_logv(int pri, int err, const char *msg, va_list ap)
+{
+ char flat_msg[3000];
+
+ snprintf(flat_msg, sizeof(flat_msg) - 1, msg, ap);
+ flat_msg[sizeof(flat_msg) - 1] = '\0';
+
+ vproc_mig_log(bootstrap_port, pri, err, flat_msg);
+}
+
+void
+_vproc_log(int pri, const char *msg, ...)
+{
+ va_list ap;
+
+ va_start(ap, msg);
+ _vproc_logv(pri, 0, msg, ap);
+ va_end(ap);
+}
+
+void
+_vproc_log_error(int pri, const char *msg, ...)
+{
+ va_list ap;
+
+ va_start(ap, msg);
+ _vproc_logv(pri, errno, msg, ap);
+ va_end(ap);
+}
Modified: trunk/launchd/src/libvproc_internal.h
===================================================================
--- trunk/launchd/src/libvproc_internal.h 2006-10-25 16:36:57 UTC (rev 22918)
+++ trunk/launchd/src/libvproc_internal.h 2006-10-26 01:18:08 UTC (rev 22919)
@@ -24,6 +24,7 @@
#include "libbootstrap_public.h"
typedef char * _internal_string_t;
+typedef char * logmsg_t;
typedef mach_port_t vproc_mig_t;
typedef enum {
LAST_EXIT_STATUS = 1,
Modified: trunk/launchd/src/libvproc_private.h
===================================================================
--- trunk/launchd/src/libvproc_private.h 2006-10-25 16:36:57 UTC (rev 22918)
+++ trunk/launchd/src/libvproc_private.h 2006-10-26 01:18:08 UTC (rev 22919)
@@ -30,6 +30,9 @@
vproc_err_t _vproc_get_last_exit_status(int *wstatus);
vproc_err_t _vproc_set_global_on_demand(bool val);
+void _vproc_log(int pri, const char *msg, ...) __attribute__((format(printf, 2, 3)));
+void _vproc_log_error(int pri, const char *msg, ...) __attribute__((format(printf, 2, 3)));
+
#pragma GCC visibility pop
__END_DECLS
Modified: trunk/launchd/src/protocol_job.defs
===================================================================
--- trunk/launchd/src/protocol_job.defs 2006-10-25 16:36:57 UTC (rev 22918)
+++ trunk/launchd/src/protocol_job.defs 2006-10-26 01:18:08 UTC (rev 22919)
@@ -119,3 +119,9 @@
__bs_port : job_t;
__key : get_set_int_key_t;
__val : int64_t);
+
+simpleroutine log(
+ __bs_port : job_t;
+ __pri : integer_t;
+ __err : integer_t;
+ __msg : logmsg_t);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20061025/db99f7ca/attachment.html
More information about the launchd-changes
mailing list