1/*	$NetBSD: kernelops.c,v 1.2 2009/08/06 00:55:08 pooka Exp $	*/
2
3/*
4 * Copyright (c) 2009 The NetBSD Foundation, Inc.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 *    notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
17 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
18 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
20 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26 * POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#include <sys/cdefs.h>
30#ifndef lint
31__RCSID("$NetBSD: kernelops.c,v 1.2 2009/08/06 00:55:08 pooka Exp $");
32#endif /* !lint */
33
34/*
35 * Select operations vector for kernel communication -- either regular
36 * system calls or rump system calls.  The latter are use when the
37 * cleaner is run as part of rump_lfs.
38 *
39 * The selection is controlled by an ifdef for now, since I see no
40 * value in making it dynamic.
41 */
42
43#include <sys/types.h>
44#include <sys/mount.h>
45#include <sys/statvfs.h>
46
47#include <fcntl.h>
48#include <unistd.h>
49
50#include "kernelops.h"
51
52#ifdef USE_RUMP
53
54#include <rump/rump.h>
55#include <rump/rump_syscalls.h>
56
57const struct kernelops kops = {
58	.ko_open = rump_sys_open,
59	.ko_fcntl = rump_sys_fcntl,
60	.ko_statvfs = rump_sys_statvfs1,
61	.ko_fhopen = rump_sys_fhopen,
62	.ko_close = rump_sys_close,
63
64	.ko_pread = rump_sys_pread,
65	.ko_pwrite = rump_sys_pwrite,
66};
67
68#else
69
70const struct kernelops kops = {
71	.ko_open = open,
72	.ko_fcntl = fcntl,
73	.ko_statvfs = statvfs1,
74	.ko_fhopen = fhopen,
75	.ko_close = close,
76
77	.ko_pread = pread,
78	.ko_pwrite = pwrite,
79};
80#endif
81