Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src utility to halt a rump kernel



details:   https://anonhg.NetBSD.org/src/rev/951d03264319
branches:  trunk
changeset: 759529:951d03264319
user:      pooka <pooka%NetBSD.org@localhost>
date:      Sun Dec 12 12:48:30 2010 +0000

description:
utility to halt a rump kernel

diffstat:

 distrib/sets/lists/base/mi    |   3 +-
 distrib/sets/lists/comp/mi    |   3 +-
 distrib/sets/lists/man/mi     |   5 +-
 usr.bin/Makefile              |   4 +-
 usr.bin/rump_halt/Makefile    |   9 ++++
 usr.bin/rump_halt/rump.halt.1 |  73 ++++++++++++++++++++++++++++++++++
 usr.bin/rump_halt/rump.halt.c |  90 +++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 182 insertions(+), 5 deletions(-)

diffs (269 lines):

diff -r f69423053149 -r 951d03264319 distrib/sets/lists/base/mi
--- a/distrib/sets/lists/base/mi        Sun Dec 12 12:09:51 2010 +0000
+++ b/distrib/sets/lists/base/mi        Sun Dec 12 12:48:30 2010 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.898 2010/12/08 23:56:01 njoly Exp $
+# $NetBSD: mi,v 1.899 2010/12/12 12:48:31 pooka Exp $
 #
 # Note:        Don't delete entries from here - mark them as "obsolete" instead,
 #      unless otherwise stated below.
@@ -588,6 +588,7 @@
 ./usr/bin/rs                                   base-util-bin
 ./usr/bin/rsh                                  base-netutil-bin
 ./usr/bin/rump_allserver                       base-util-bin
+./usr/bin/rump.halt                    base-util-bin
 ./usr/bin/rup                                  base-netutil-bin
 ./usr/bin/ruptime                              base-netutil-bin
 ./usr/bin/rusers                               base-netutil-bin
diff -r f69423053149 -r 951d03264319 distrib/sets/lists/comp/mi
--- a/distrib/sets/lists/comp/mi        Sun Dec 12 12:09:51 2010 +0000
+++ b/distrib/sets/lists/comp/mi        Sun Dec 12 12:48:30 2010 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: mi,v 1.1535 2010/12/11 10:41:11 rtr Exp $
+#      $NetBSD: mi,v 1.1536 2010/12/12 12:48:31 pooka Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -3322,6 +3322,7 @@
 ./usr/libdata/debug/usr/bin/rs.debug           comp-util-debug         debug
 ./usr/libdata/debug/usr/bin/rsh.debug          comp-netutil-debug      debug
 ./usr/libdata/debug/usr/bin/rump_allserver.debug               comp-util-debug         debug
+./usr/libdata/debug/usr/bin/rump.halt.debug            comp-util-debug         debug
 ./usr/libdata/debug/usr/bin/rup.debug          comp-netutil-debug      debug
 ./usr/libdata/debug/usr/bin/ruptime.debug      comp-netutil-debug      debug
 ./usr/libdata/debug/usr/bin/rusers.debug       comp-netutil-debug      debug
diff -r f69423053149 -r 951d03264319 distrib/sets/lists/man/mi
--- a/distrib/sets/lists/man/mi Sun Dec 12 12:09:51 2010 +0000
+++ b/distrib/sets/lists/man/mi Sun Dec 12 12:48:30 2010 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1262 2010/12/08 07:20:59 kefren Exp $
+# $NetBSD: mi,v 1.1263 2010/12/12 12:48:32 pooka Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -444,6 +444,7 @@
 ./usr/share/man/cat1/rs.0                      man-util-catman         .cat
 ./usr/share/man/cat1/rsh.0                     man-netutil-catman      .cat
 ./usr/share/man/cat1/rtld.0                    man-shlib-catman        .cat
+./usr/share/man/cat1/rump.halt.0                       man-netutil-catman      .cat
 ./usr/share/man/cat1/rup.0                     man-netutil-catman      .cat
 ./usr/share/man/cat1/ruptime.0                 man-netutil-catman      .cat
 ./usr/share/man/cat1/rusers.0                  man-netutil-catman      .cat
@@ -3221,6 +3222,7 @@
 ./usr/share/man/html1/rs.html                  man-util-htmlman        html
 ./usr/share/man/html1/rsh.html                 man-netutil-htmlman     html
 ./usr/share/man/html1/rtld.html                        man-shlib-htmlman       html
+./usr/share/man/html1/rump.halt.html                   man-netutil-htmlman     html
 ./usr/share/man/html1/rup.html                 man-netutil-htmlman     html
 ./usr/share/man/html1/ruptime.html             man-netutil-htmlman     html
 ./usr/share/man/html1/rusers.html              man-netutil-htmlman     html
@@ -5656,6 +5658,7 @@
 ./usr/share/man/man1/rs.1                      man-util-man            .man
 ./usr/share/man/man1/rsh.1                     man-netutil-man         .man
 ./usr/share/man/man1/rtld.1                    man-shlib-man           .man
+./usr/share/man/man1/rump.halt.1                       man-netutil-man         .man
 ./usr/share/man/man1/rup.1                     man-netutil-man         .man
 ./usr/share/man/man1/ruptime.1                 man-netutil-man         .man
 ./usr/share/man/man1/rusers.1                  man-netutil-man         .man
diff -r f69423053149 -r 951d03264319 usr.bin/Makefile
--- a/usr.bin/Makefile  Sun Dec 12 12:09:51 2010 +0000
+++ b/usr.bin/Makefile  Sun Dec 12 12:48:30 2010 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile,v 1.194 2010/12/05 17:45:08 pooka Exp $
+#      $NetBSD: Makefile,v 1.195 2010/12/12 12:48:30 pooka Exp $
 #      from: @(#)Makefile      8.3 (Berkeley) 1/7/94
 
 .include <bsd.own.mk>
@@ -22,7 +22,7 @@
        pagesize passwd paste patch pathchk pkill pmap pmc pr \
        printenv printf progress pwhash qsubst quota radioctl rdist \
        renice rev revoke rfcomm_sppd rlogin rpcgen rpcinfo rs rsh \
-       rump_allserver rup ruptime rusers rwall rwho \
+       rump_allserver rump_halt rup ruptime rusers rwall rwho \
        script sdiff sdpquery sed seq shar shlock \
        showmount shuffle sockstat soelim sort spell split stat su systat \
        tabs tail talk tcopy tee telnet tftp tic time tip touch tput \
diff -r f69423053149 -r 951d03264319 usr.bin/rump_halt/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/usr.bin/rump_halt/Makefile        Sun Dec 12 12:48:30 2010 +0000
@@ -0,0 +1,9 @@
+#      $NetBSD: Makefile,v 1.1 2010/12/12 12:48:31 pooka Exp $
+#
+
+PROG=  rump.halt
+
+LDADD+= -lrumpclient
+DPADD+=        ${RUMPCLIENT}
+
+.include <bsd.prog.mk>
diff -r f69423053149 -r 951d03264319 usr.bin/rump_halt/rump.halt.1
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/usr.bin/rump_halt/rump.halt.1     Sun Dec 12 12:48:30 2010 +0000
@@ -0,0 +1,73 @@
+.\"    $NetBSD: rump.halt.1,v 1.1 2010/12/12 12:48:31 pooka Exp $
+.\"
+.\" Copyright (c) 1990, 1991, 1993
+.\"    The Regents of the University of California.  All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"    @(#)reboot.8    8.1 (Berkeley) 6/9/93
+.\"
+.Dd December 12, 2010
+.Dt RUMP.HALT 1
+.Os
+.Sh NAME
+.Nm rump.halt
+.Nd halt a rump kernel
+.Sh SYNOPSIS
+.Nm
+.Op Fl dhn
+.Sh DESCRIPTION
+The
+.Nm
+utility exits a rump kernel.
+The file system cache, if present, is flushed.
+Since a rump kernel does not control its clients, they are not
+directly affected by
+.Nm .
+However, they will be unable to request further services from the
+halted rump kernel.
+.Pp
+The options are as follows:
+.Bl -tag -width Ds
+.It Fl d
+Create a core dump.
+The core file is saved according to standard userland program
+coredump rules, and can be later examined with a debugger.
+.It Fl h
+By default the process hosting the rump kernel exits.
+Using this option shuts down rump kernel activity, but does not
+cause the hosting process to exit.
+.It Fl n
+Do not flush the file system cache.
+This option should be used with extreme caution.
+It can be used if a virtual disk or a virtual processor is virtually on fire.
+.El
+.Sh SEE ALSO
+.Xr rump 3
+.Sh HISTORY
+The
+.Nm
+command appeared in
+.Nx 6.0 .
diff -r f69423053149 -r 951d03264319 usr.bin/rump_halt/rump.halt.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/usr.bin/rump_halt/rump.halt.c     Sun Dec 12 12:48:30 2010 +0000
@@ -0,0 +1,90 @@
+/*     $NetBSD: rump.halt.c,v 1.1 2010/12/12 12:48:31 pooka Exp $      */
+
+/*-
+ * Copyright (c) 2010 Antti Kantee.  All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+#ifndef lint
+__RCSID("$NetBSD: rump.halt.c,v 1.1 2010/12/12 12:48:31 pooka Exp $");
+#endif /* !lint */
+
+#include <sys/types.h>
+
+#include <rump/rump.h>
+#include <rump/rumpclient.h>
+#include <rump/rump_syscalls.h>
+
+#include <err.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#define ARGFLAGS "dhn"
+
+static void
+usage(void)
+{
+
+       fprintf(stderr, "usage: %s [-" ARGFLAGS "]\n", getprogname());
+       exit(1);
+}
+
+int
+main(int argc, char *argv[])
+{
+       int ch, flags;
+
+       setprogname(argv[0]);
+
+       flags = 0;
+       while ((ch = getopt(argc, argv, ARGFLAGS)) != -1) {
+               switch (ch) {
+               case 'd':
+                       flags |= RUMP_RB_DUMP;
+                       break;
+               case 'h':
+                       flags |= RUMP_RB_HALT;
+                       break;
+               case 'n':
+                       flags |= RUMP_RB_NOSYNC;
+                       break;
+               default:
+                       usage();
+                       break;
+               }
+       }
+
+       if (optind != argc)
+               usage();
+
+       if (rumpclient_init() == -1)
+               err(1, "init failed");
+
+       rump_sys_reboot(flags, NULL);
+
+       return 0;
+}



Home | Main Index | Thread Index | Old Index