Module Name:    src
Committed By:   pooka
Date:           Fri Nov  5 15:55:23 UTC 2010

Modified Files:
        src/lib/libc/gen: sysctlgetmibinfo.c
        src/sbin/sysctl: Makefile sysctl.c

Log Message:
make sysctl(8) work as a rump client


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/lib/libc/gen/sysctlgetmibinfo.c
cvs rdiff -u -r1.18 -r1.19 src/sbin/sysctl/Makefile
cvs rdiff -u -r1.131 -r1.132 src/sbin/sysctl/sysctl.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/gen/sysctlgetmibinfo.c
diff -u src/lib/libc/gen/sysctlgetmibinfo.c:1.7 src/lib/libc/gen/sysctlgetmibinfo.c:1.8
--- src/lib/libc/gen/sysctlgetmibinfo.c:1.7	Thu Feb 12 04:13:08 2009
+++ src/lib/libc/gen/sysctlgetmibinfo.c	Fri Nov  5 15:55:23 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: sysctlgetmibinfo.c,v 1.7 2009/02/12 04:13:08 lukem Exp $ */
+/*	$NetBSD: sysctlgetmibinfo.c,v 1.8 2010/11/05 15:55:23 pooka Exp $ */
 
 /*-
  * Copyright (c) 2003,2004 The NetBSD Foundation, Inc.
@@ -31,13 +31,15 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: sysctlgetmibinfo.c,v 1.7 2009/02/12 04:13:08 lukem Exp $");
+__RCSID("$NetBSD: sysctlgetmibinfo.c,v 1.8 2010/11/05 15:55:23 pooka Exp $");
 #endif /* LIBC_SCCS and not lint */
 
+#ifndef RUMP_ACTION
 #include "namespace.h"
 #ifdef _REENTRANT
 #include "reentrant.h"
 #endif /* _REENTRANT */
+#endif /* RUMP_ACTION */
 #include <sys/param.h>
 #include <sys/sysctl.h>
 
@@ -51,6 +53,11 @@
 __weak_alias(sysctlgetmibinfo,_sysctlgetmibinfo)
 #endif
 
+#ifdef RUMP_ACTION
+#include <rump/rump_syscalls.h>
+#define sysctl(a,b,c,d,e,f) rump_sys___sysctl(a,b,c,d,e,f)
+#endif
+
 /*
  * the place where we attach stuff we learn on the fly, not
  * necessarily used.

Index: src/sbin/sysctl/Makefile
diff -u src/sbin/sysctl/Makefile:1.18 src/sbin/sysctl/Makefile:1.19
--- src/sbin/sysctl/Makefile:1.18	Fri Feb 13 16:02:05 2009
+++ src/sbin/sysctl/Makefile	Fri Nov  5 15:55:23 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.18 2009/02/13 16:02:05 uebayasi Exp $
+#	$NetBSD: Makefile,v 1.19 2010/11/05 15:55:23 pooka Exp $
 #	@(#)Makefile	8.1 (Berkeley) 6/6/93
 
 .include <bsd.own.mk>
@@ -7,4 +7,13 @@
 PROG=	sysctl
 MAN=	sysctl.8
 
+SRCS=	sysctl.c
+
+.ifdef RUMP_ACTION
+.PATH:	${.CURDIR}/../../lib/libc/gen
+CPPFLAGS+= -DRUMP_ACTION
+LDADD+=	-lrumpclient
+SRCS+=	sysctlgetmibinfo.c
+.endif
+
 .include <bsd.prog.mk>

Index: src/sbin/sysctl/sysctl.c
diff -u src/sbin/sysctl/sysctl.c:1.131 src/sbin/sysctl/sysctl.c:1.132
--- src/sbin/sysctl/sysctl.c:1.131	Sun Apr 11 01:52:10 2010
+++ src/sbin/sysctl/sysctl.c	Fri Nov  5 15:55:23 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: sysctl.c,v 1.131 2010/04/11 01:52:10 mrg Exp $ */
+/*	$NetBSD: sysctl.c,v 1.132 2010/11/05 15:55:23 pooka Exp $ */
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
 #if 0
 static char sccsid[] = "@(#)sysctl.c	8.1 (Berkeley) 6/6/93";
 #else
-__RCSID("$NetBSD: sysctl.c,v 1.131 2010/04/11 01:52:10 mrg Exp $");
+__RCSID("$NetBSD: sysctl.c,v 1.132 2010/11/05 15:55:23 pooka Exp $");
 #endif
 #endif /* not lint */
 
@@ -105,6 +105,13 @@
 #include <time.h>
 #include <unistd.h>
 
+#ifdef RUMP_ACTION
+#include <rump/rumpclient.h>
+#include <rump/rump_syscalls.h>
+
+#define sysctl(a,b,c,d,e,f) rump_sys___sysctl(a,b,c,d,e,f)
+#endif
+
 /*
  * this needs to be able to do the printing and the setting
  */
@@ -269,6 +276,11 @@
 	int name[CTL_MAXNAME];
 	int ch;
 
+#ifdef RUMP_ACTION
+	if (rumpclient_init() == -1)
+		err(1, "rumpclient init failed");
+#endif
+
 	while ((ch = getopt(argc, argv, "Aabdef:Mnqrwx")) != -1) {
 		switch (ch) {
 		case 'A':

Reply via email to