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

source_changes at macosforge.org source_changes at macosforge.org
Thu Feb 15 14:18:08 PST 2007


Revision: 23073
          http://trac.macosforge.org/projects/launchd/changeset/23073
Author:   zarzycki at apple.com
Date:     2007-02-15 14:18:08 -0800 (Thu, 15 Feb 2007)

Log Message:
-----------
On second thought, let's call the poweroff() API "reboot2()" and just pass the reboot flags down opaquely.

Modified Paths:
--------------
    trunk/launchd/src/Makefile.am
    trunk/launchd/src/Makefile.in
    trunk/launchd/src/launchd_core_logic.c
    trunk/launchd/src/libvproc.c
    trunk/launchd/src/protocol_job.defs

Added Paths:
-----------
    trunk/launchd/src/reboot2.h

Removed Paths:
-------------
    trunk/launchd/src/poweroff.h

Modified: trunk/launchd/src/Makefile.am
===================================================================
--- trunk/launchd/src/Makefile.am	2007-02-15 18:57:17 UTC (rev 23072)
+++ trunk/launchd/src/Makefile.am	2007-02-15 22:18:08 UTC (rev 23073)
@@ -89,7 +89,7 @@
 	mkdir -p $(DESTDIR)/usr/local/include
 	cp $(srcdir)/liblaunch_private.h $(DESTDIR)/usr/local/include/launch_priv.h
 	cp $(srcdir)/libvproc_private.h $(DESTDIR)/usr/local/include/vproc_priv.h
-	cp $(srcdir)/poweroff.h $(DESTDIR)/usr/local/include/poweroff.h
+	cp $(srcdir)/reboot2.h $(DESTDIR)/usr/local/include/reboot2.h
 	mkdir -p $(DESTDIR)/$(sysconfdir)/mach_init.d
 	mkdir -p $(DESTDIR)/$(sysconfdir)/mach_init_per_user.d
 	mkdir -p $(DESTDIR)/Library/LaunchDaemons

Modified: trunk/launchd/src/Makefile.in
===================================================================
--- trunk/launchd/src/Makefile.in	2007-02-15 18:57:17 UTC (rev 23072)
+++ trunk/launchd/src/Makefile.in	2007-02-15 22:18:08 UTC (rev 23073)
@@ -1103,7 +1103,7 @@
 @LIBS_ONLY_FALSE@	mkdir -p $(DESTDIR)/usr/local/include
 @LIBS_ONLY_FALSE@	cp $(srcdir)/liblaunch_private.h $(DESTDIR)/usr/local/include/launch_priv.h
 @LIBS_ONLY_FALSE@	cp $(srcdir)/libvproc_private.h $(DESTDIR)/usr/local/include/vproc_priv.h
- at LIBS_ONLY_FALSE@	cp $(srcdir)/poweroff.h $(DESTDIR)/usr/local/include/poweroff.h
+ at LIBS_ONLY_FALSE@	cp $(srcdir)/reboot2.h $(DESTDIR)/usr/local/include/reboot2.h
 @LIBS_ONLY_FALSE@	mkdir -p $(DESTDIR)/$(sysconfdir)/mach_init.d
 @LIBS_ONLY_FALSE@	mkdir -p $(DESTDIR)/$(sysconfdir)/mach_init_per_user.d
 @LIBS_ONLY_FALSE@	mkdir -p $(DESTDIR)/Library/LaunchDaemons

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c	2007-02-15 18:57:17 UTC (rev 23072)
+++ trunk/launchd/src/launchd_core_logic.c	2007-02-15 22:18:08 UTC (rev 23073)
@@ -80,7 +80,7 @@
 #include "libvproc_public.h"
 #include "libvproc_internal.h"
 
-#include "poweroff.h"
+#include "reboot2.h"
 
 #include "launchd.h"
 #include "launchd_runtime.h"
@@ -202,8 +202,9 @@
 	job_t anonj;
 	char *jm_stdout;
 	char *jm_stderr;
+	int reboot_flags;
 	unsigned int global_on_demand_cnt;
-	unsigned int transfer_bstrap:1, sent_stop_to_hopeful_jobs:1, shutting_down:1, power_cycle:1, ups_delay:1;
+	unsigned int transfer_bstrap:1, sent_stop_to_hopeful_jobs:1, shutting_down:1;
 	char name[0];
 };
 
@@ -588,16 +589,7 @@
 		SLIST_REMOVE(&jm->parentmgr->submgrs, jm, jobmgr_s, sle);
 		jobmgr_tickle(jm->parentmgr);
 	} else if (getpid() == 1) {
-		int flags = 0;
-
-		if (!jm->power_cycle) {
-			flags |= RB_HALT;
-		}
-		if (jm->ups_delay) {
-			flags |= RB_UPSDELAY;
-		}
-
-		jobmgr_assumes(jm,  reboot(flags) != -1);
+		jobmgr_assumes(jm,  reboot(jm->reboot_flags) != -1);
 	} else {
 		exit(EXIT_SUCCESS);
 	}
@@ -4122,7 +4114,7 @@
 }
 
 kern_return_t
-job_mig_poweroff(job_t j, uint64_t flags)
+job_mig_reboot2(job_t j, uint64_t flags)
 {
 	struct ldcred ldc;
 
@@ -4136,12 +4128,7 @@
 		return BOOTSTRAP_NOT_PRIVILEGED;
 	}
 
-	if (flags & POWEROFF_RESET) {
-		root_jobmgr->power_cycle = true;
-	}
-	if (flags & POWEROFF_UPSDELAY) {
-		root_jobmgr->ups_delay = true;
-	}
+	root_jobmgr->reboot_flags = (int)flags;
 
 	launchd_shutdown();
 

Modified: trunk/launchd/src/libvproc.c
===================================================================
--- trunk/launchd/src/libvproc.c	2007-02-15 18:57:17 UTC (rev 23072)
+++ trunk/launchd/src/libvproc.c	2007-02-15 22:18:08 UTC (rev 23073)
@@ -36,7 +36,7 @@
 
 #include "protocol_vproc.h"
 
-#include "poweroff.h"
+#include "reboot2.h"
 
 kern_return_t
 _vproc_grab_subset(mach_port_t bp, mach_port_t *reqport, mach_port_t *rcvright,
@@ -220,7 +220,7 @@
 }
 
 void *
-poweroff(uint64_t flags)
+reboot2(uint64_t flags)
 {
 	mach_port_t parent_port = 0;
 	mach_port_t previous_port = 0;
@@ -239,12 +239,12 @@
 
 	} while (parent_port != previous_port);
 
-	if (vproc_mig_poweroff(parent_port, flags) == 0) {
+	if (vproc_mig_reboot2(parent_port, flags) == 0) {
 		return NULL;
 	}
 
 out_bad:
-	return poweroff;
+	return reboot2;
 }
 
 vproc_err_t

Deleted: trunk/launchd/src/poweroff.h
===================================================================
--- trunk/launchd/src/poweroff.h	2007-02-15 18:57:17 UTC (rev 23072)
+++ trunk/launchd/src/poweroff.h	2007-02-15 22:18:08 UTC (rev 23073)
@@ -1,37 +0,0 @@
-#ifndef _POWEROFF_H_
-#define _POWEROFF_H_
-/*
- * Copyright (c) 2007 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * 
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#include <sys/cdefs.h>
-#include <stdint.h>
-
-__BEGIN_DECLS
-
-#define POWEROFF_RESET	1
-#define POWEROFF_UPSDELAY	2
-
-/* Returns NULL on success. Not NULL on failure */
-
-__attribute__((visibility("default"))) void *poweroff(uint64_t flags);
-
-__END_DECLS
-
-#endif

Modified: trunk/launchd/src/protocol_job.defs
===================================================================
--- trunk/launchd/src/protocol_job.defs	2007-02-15 18:57:17 UTC (rev 23072)
+++ trunk/launchd/src/protocol_job.defs	2007-02-15 22:18:08 UTC (rev 23073)
@@ -41,7 +41,7 @@
 		__on_demand	: boolean_t;
 	out	__server_port	: mach_port_make_send_t);
 
-routine poweroff(
+routine reboot2(
 		__bs_port	: job_t;
 		__flags		: uint64_t);
 

Copied: trunk/launchd/src/reboot2.h (from rev 23071, trunk/launchd/src/poweroff.h)
===================================================================
--- trunk/launchd/src/reboot2.h	                        (rev 0)
+++ trunk/launchd/src/reboot2.h	2007-02-15 22:18:08 UTC (rev 23073)
@@ -0,0 +1,35 @@
+#ifndef _REBOOT2_H_
+#define _REBOOT2_H_
+/*
+ * Copyright (c) 2007 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#include <sys/cdefs.h>
+#include <sys/reboot.h>
+#include <stdint.h>
+
+__BEGIN_DECLS
+
+/* Returns NULL on success. Not NULL on failure */
+
+__attribute__((visibility("default"))) void *reboot2(uint64_t flags);
+
+__END_DECLS
+
+#endif

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


More information about the launchd-changes mailing list