Module Name:    src
Committed By:   ozaki-r
Date:           Wed Nov 11 07:49:59 UTC 2015

Added Files:
        src/usr.sbin/rtadvd: prog_ops.h rtadvd_hostops.c rtadvd_rumpops.c

Log Message:
Introduce rump.rtadvd

It is used to write ATF tests for RA.

>From s-yamaguchi@IIJ.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/usr.sbin/rtadvd/prog_ops.h \
    src/usr.sbin/rtadvd/rtadvd_hostops.c src/usr.sbin/rtadvd/rtadvd_rumpops.c

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

Added files:

Index: src/usr.sbin/rtadvd/prog_ops.h
diff -u /dev/null src/usr.sbin/rtadvd/prog_ops.h:1.1
--- /dev/null	Wed Nov 11 07:49:59 2015
+++ src/usr.sbin/rtadvd/prog_ops.h	Wed Nov 11 07:49:59 2015
@@ -0,0 +1,84 @@
+#ifndef _PROG_OPS_H_
+#define _PROG_OPS_H_
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <poll.h>
+
+#ifndef CRUNCHOPS
+struct prog_ops {
+	int (*op_init)(void);
+	int (*op_daemon)(int, int);
+
+	int (*op_sysctl)(const int *, u_int, void *, size_t *,
+			 const void *, size_t);
+	int (*op_ioctl)(int, unsigned long, ...);
+
+	int (*op_socket)(int, int, int);
+	int (*op_open)(const char *, int, ...);
+	int (*op_close)(int);
+	pid_t (*op_getpid)(void);
+
+	ssize_t (*op_read)(int, void *, size_t);
+	ssize_t (*op_write)(int, const void *, size_t);
+
+	int (*op_chdir)(const char *);
+	int (*op_chroot)(const char *);
+
+	int (*op_setuid)(uid_t);
+	int (*op_setgid)(gid_t);
+	int (*op_setgroups)(int, const gid_t *);
+
+	ssize_t (*op_recvmsg)(int, struct msghdr *, int);
+	ssize_t (*op_sendmsg)(int, const struct msghdr *, int);
+
+	int (*op_setsockopt)(int, int, int, const void *, socklen_t);
+	int (*op_poll)(struct pollfd *, u_int, int);
+	int (*op_clock_gettime)(clockid_t, struct timespec *);
+};
+extern const struct prog_ops prog_ops;
+
+#define prog_init prog_ops.op_init
+#define prog_daemon prog_ops.op_daemon
+#define prog_socket prog_ops.op_socket
+#define prog_open prog_ops.op_open
+#define prog_close prog_ops.op_close
+#define prog_getpid prog_ops.op_getpid
+#define prog_read prog_ops.op_read
+#define prog_write prog_ops.op_write
+#define prog_sysctl prog_ops.op_sysctl
+#define prog_ioctl prog_ops.op_ioctl
+#define prog_chdir prog_ops.op_chdir
+#define prog_chroot prog_ops.op_chroot
+#define prog_setuid prog_ops.op_setuid
+#define prog_setgid prog_ops.op_setgid
+#define prog_setgroups prog_ops.op_setgroups
+#define prog_recvmsg prog_ops.op_recvmsg
+#define prog_sendmsg prog_ops.op_sendmsg
+#define prog_setsockopt prog_ops.op_setsockopt
+#define prog_poll prog_ops.op_poll
+#define prog_clock_gettime prog_ops.op_clock_gettime
+#else
+#define prog_init ((int (*)(void))NULL)
+#define prog_daemon daemon
+#define prog_socket socket
+#define prog_open open
+#define prog_close close
+#define prog_getpid getpid
+#define prog_read read
+#define prog_write write
+#define prog_sysctl sysctl
+#define prog_ioctl ioctl
+#define prog_chdir chdir
+#define prog_chroot chroot
+#define prog_setuid setuid
+#define prog_setgid setgid
+#define prog_setgroups setgroups
+#define prog_recvmsg recvmsg
+#define prog_sendmsg sendmsg
+#define prog_setsockopt setsockopt
+#define prog_poll poll
+#define prog_clock_gettime clock_gettime
+#endif
+
+#endif /* _PROG_OPS_H_ */
Index: src/usr.sbin/rtadvd/rtadvd_hostops.c
diff -u /dev/null src/usr.sbin/rtadvd/rtadvd_hostops.c:1.1
--- /dev/null	Wed Nov 11 07:49:59 2015
+++ src/usr.sbin/rtadvd/rtadvd_hostops.c	Wed Nov 11 07:49:59 2015
@@ -0,0 +1,40 @@
+#include <sys/cdefs.h>
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/sysctl.h>
+#include <sys/ioctl.h>
+
+#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
+
+#include "prog_ops.h"
+
+const struct prog_ops prog_ops = {
+	.op_daemon =		daemon,
+	.op_socket =		socket,
+	.op_open =		open,
+	.op_close =		close,
+	.op_getpid =		getpid,
+
+	.op_read =		read,
+	.op_write =		write,
+
+	.op_sysctl =		sysctl,
+	.op_ioctl =		ioctl,
+
+	.op_chdir =		chdir,
+	.op_chroot =		chroot,
+
+	.op_setuid =		setuid,
+	.op_setgid =		setgid,
+	.op_setgroups =		setgroups,
+
+	.op_recvmsg =		recvmsg,
+	.op_sendmsg =		sendmsg,
+
+	.op_setsockopt =	setsockopt,
+	.op_poll =		poll,
+	.op_clock_gettime =	clock_gettime,
+};
Index: src/usr.sbin/rtadvd/rtadvd_rumpops.c
diff -u /dev/null src/usr.sbin/rtadvd/rtadvd_rumpops.c:1.1
--- /dev/null	Wed Nov 11 07:49:59 2015
+++ src/usr.sbin/rtadvd/rtadvd_rumpops.c	Wed Nov 11 07:49:59 2015
@@ -0,0 +1,45 @@
+#include <sys/cdefs.h>
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/ioctl.h>
+
+#include <unistd.h>
+
+#include <rump/rump.h>
+#include <rump/rump_syscalls.h>
+#include <rump/rumpclient.h>
+
+#include "prog_ops.h"
+
+const struct prog_ops prog_ops = {
+	.op_init =		rumpclient_init,
+	.op_daemon =		rumpclient_daemon,
+
+	.op_socket =		rump_sys_socket,
+	.op_open =		rump_sys_open,
+	.op_close =		rump_sys_close,
+	.op_getpid =		rump_sys_getpid,
+
+	.op_read =		rump_sys_read,
+	.op_write =		rump_sys_write,
+
+	.op_sysctl =		rump_sys___sysctl,
+	.op_ioctl =		rump_sys_ioctl,
+
+	.op_chdir =		rump_sys_chdir,
+	.op_chroot =		rump_sys_chroot,
+
+	.op_setuid =		rump_sys_setuid,
+	.op_setgid =		rump_sys_setgid,
+	.op_setgroups =		rump_sys_setgroups,
+
+	.op_recvmsg =		rump_sys_recvmsg,
+	.op_sendmsg =		rump_sys_sendmsg,
+
+	.op_setsockopt =	rump_sys_setsockopt,
+	.op_poll =		rump_sys_poll,
+	.op_clock_gettime =	rump_sys_clock_gettime,
+
+};
+

Reply via email to