rump: import libp2k
This commit is contained in:
parent
3ebab8327b
commit
32b574077f
|
|
@ -859,6 +859,9 @@
|
|||
./usr/lib/libobjc_pic.a minix-base gcc=5
|
||||
./usr/lib/libopcodes.so.6.0 minix-base binutils
|
||||
./usr/lib/libopcodes.so.6 minix-base binutils
|
||||
./usr/lib/libp2k.so minix-base
|
||||
./usr/lib/libp2k.so.2 minix-base
|
||||
./usr/lib/libp2k.so.2.0 minix-base
|
||||
./usr/lib/libpci.so minix-base
|
||||
./usr/lib/libpci.so.2 minix-base
|
||||
./usr/lib/libpci.so.2.0 minix-base obsolete
|
||||
|
|
|
|||
|
|
@ -1720,6 +1720,7 @@
|
|||
./usr/include/rpcsvc/yp_prot.h minix-comp
|
||||
./usr/include/rpcsvc/ypclnt.h minix-comp
|
||||
./usr/include/rump minix-comp rump
|
||||
./usr/include/rump/p2k.h minix-comp rump
|
||||
./usr/include/rump/rump.h minix-comp rump
|
||||
./usr/include/rump/rump_namei.h minix-comp rump
|
||||
./usr/include/rump/rump_syscalls.h minix-comp rump
|
||||
|
|
@ -2295,6 +2296,7 @@
|
|||
./usr/lib/libnetsock_pic.a minix-comp
|
||||
./usr/lib/libobjc.a minix-comp gcc=45
|
||||
./usr/lib/libobjc_pic.a minix-comp gcc=45
|
||||
./usr/lib/libp2k.a minix-comp rump
|
||||
./usr/lib/libpci.a minix-comp
|
||||
./usr/lib/libpci_pic.a minix-comp
|
||||
./usr/lib/libprop.a minix-comp
|
||||
|
|
|
|||
|
|
@ -2368,6 +2368,7 @@
|
|||
./usr/man/man3/orcmd_af.3 minix-man
|
||||
./usr/man/man3/overlay.3 minix-man
|
||||
./usr/man/man3/overwrite.3 minix-man
|
||||
./usr/man/man3/p2k.3 minix-man
|
||||
./usr/man/man3/p_query.3 minix-man
|
||||
./usr/man/man3/pair_content.3 minix-man
|
||||
./usr/man/man3/parsedate.3 minix-man
|
||||
|
|
|
|||
|
|
@ -316,7 +316,7 @@ SUBDIR+= ../crypto/external/cpl/trousers/lib
|
|||
#==================== 5th library dependency barrier ====================
|
||||
SUBDIR+= .WAIT
|
||||
|
||||
#SUBDIR+= libp2k # depends on libukfs, librumpvfs, libpuffs
|
||||
SUBDIR+= libp2k # depends on libukfs, librumpvfs, libpuffs
|
||||
|
||||
.if (${MKTPM} != "no")
|
||||
SUBDIR+= ../crypto/external/cpl/tpm-tools/lib # depends on trousers
|
||||
|
|
|
|||
16
lib/libp2k/Makefile
Normal file
16
lib/libp2k/Makefile
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# $NetBSD: Makefile,v 1.3 2013/09/11 23:04:10 joerg Exp $
|
||||
#
|
||||
|
||||
LIB= p2k
|
||||
LIBDPLIBS+= puffs ${.CURDIR}/../libpuffs \
|
||||
rump ${.CURDIR}/../librump \
|
||||
rumpvfs ${.CURDIR}/../librumpvfs \
|
||||
ukfs ${.CURDIR}/../libukfs
|
||||
|
||||
INCS= p2k.h
|
||||
INCSDIR= /usr/include/rump
|
||||
|
||||
SRCS= p2k.c
|
||||
MAN= p2k.3
|
||||
|
||||
.include <bsd.lib.mk>
|
||||
141
lib/libp2k/p2k.3
Normal file
141
lib/libp2k/p2k.3
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
.\" $NetBSD: p2k.3,v 1.10 2011/01/07 16:02:32 pooka Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 2008 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 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 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.
|
||||
.\"
|
||||
.Dd January 7, 2011
|
||||
.Dt P2K 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm p2k
|
||||
.Nd puffs to kernel vfs translation library
|
||||
.Sh LIBRARY
|
||||
p2k Library (libp2k, \-lp2k)
|
||||
.Sh SYNOPSIS
|
||||
.In rump/p2k.h
|
||||
.Ft struct p2k_mount *
|
||||
.Fn p2k_init "uint32_t puffs_flags"
|
||||
.Ft void
|
||||
.Fn p2k_cancel "struct p2k_mount *p2m" "int error"
|
||||
.Ft int
|
||||
.Fo p2k_setup_fs
|
||||
.Fa "struct p2k_mount *p2m" "const char *vfsname" "const char *devpath"
|
||||
.Fa "const char *mountpath" "int mntflags" "void *arg" "size_t alen"
|
||||
.Fc
|
||||
.Fo p2k_setup_diskfs
|
||||
.Fa "struct p2k_mount *p2m" "const char *vfsname" "const char *devpath"
|
||||
.Fa "int partition" "const char *mountpath" "int mntflags"
|
||||
.Fa "void *arg" "size_t alen"
|
||||
.Fc
|
||||
.Ft int
|
||||
.Fn p2k_mainloop "struct p2k_mount *p2m"
|
||||
.Ft int
|
||||
.Fo p2k_run_fs
|
||||
.Fa "const char *vfsname" "const char *devpath" "const char *mountpath"
|
||||
.Fa "int mntflags" "void *arg" "size_t alen" "uint32_t puffs_flags"
|
||||
.Fc
|
||||
.Ft int
|
||||
.Fo p2k_run_diskfs
|
||||
.Fa "const char *vfsname" "const char *devpath" "int partition"
|
||||
.Fa "const char *mountpath" "int mntflags" "void *arg" "size_t alen"
|
||||
.Fa "uint32_t puffs_flags"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
library translates the puffs protocol to the kernel
|
||||
.Xr vfs 9
|
||||
protocol and back again.
|
||||
It can therefore be used to mount and run kernel file system code as
|
||||
a userspace daemon.
|
||||
.Pp
|
||||
Calling the library interface function mounts the file system and,
|
||||
if succesful, starts handling requests.
|
||||
The parameters are handled by
|
||||
.Fn ukfs_mount
|
||||
(see
|
||||
.Xr ukfs 3 ) ,
|
||||
with the exception that
|
||||
.Fa mountpath
|
||||
and
|
||||
.Fa puffs_flags
|
||||
are handled by
|
||||
.Xr puffs 3 .
|
||||
The "run_fs" variants of the interfaces are provided as a convenience
|
||||
for the common case.
|
||||
They execute all of init, setup and mainloop in one call.
|
||||
.Sh ENVIRONMENT
|
||||
The following environment variables affect the behaviour of
|
||||
.Nm .
|
||||
They are useful mostly for debugging purposes.
|
||||
The flags are environment variables because typically the command line
|
||||
arguments to
|
||||
.Nm
|
||||
utilities are parsed using versions not aware of
|
||||
.Nm
|
||||
options; for example, the
|
||||
.Xr rump_cd9660 8
|
||||
arguments are really parsed by
|
||||
.Xr mount_cd9660 8 .
|
||||
.Bl -tag -width "XP2K_NOCACHE_PAGE" -offset 2n
|
||||
.It Dv P2K_DEBUG
|
||||
Do not detach from tty and print information about each puffs operation.
|
||||
In case the daemon receives
|
||||
.Dv SIGINFO
|
||||
(typically from ctrl-T), it dumps out the status of the mount point.
|
||||
Sending
|
||||
.Dv SIGUSR1
|
||||
causes a dump of all the vnodes (verbose).
|
||||
.It Dv P2K_NODETACH
|
||||
Do not detach from tty.
|
||||
.It Dv P2K_NOCACHE_PAGE
|
||||
Do not use the puffs page cache.
|
||||
.It Dv P2K_NOCACHE_NAME
|
||||
Do not use the puffs name cache.
|
||||
.It Dv P2K_NOCACHE
|
||||
Do not use the puffs page or name cache.
|
||||
.It Dv P2K_WIZARDUID
|
||||
If set, use the value of the variable to determine the UID of the
|
||||
caller of each operation instead of the actual caller supplied by
|
||||
.Xr puffs 3 .
|
||||
This can be used for example to simplify modifying an OS installation's
|
||||
root image as a non-root user.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr puffs 3 ,
|
||||
.Xr rump 3 ,
|
||||
.Xr ukfs 3 ,
|
||||
.Xr rump_cd9660 8 ,
|
||||
.Xr rump_efs 8 ,
|
||||
.Xr rump_ext2fs 8 ,
|
||||
.Xr rump_ffs 8 ,
|
||||
.Xr rump_hfs 8 ,
|
||||
.Xr rump_lfs 8 ,
|
||||
.Xr rump_msdos 8 ,
|
||||
.Xr rump_nfs 8 ,
|
||||
.Xr rump_ntfs 8 ,
|
||||
.Xr rump_smbfs 8 ,
|
||||
.Xr rump_syspuffs 8 ,
|
||||
.Xr rump_sysvbfs 8 ,
|
||||
.Xr rump_tmpfs 8 ,
|
||||
.Xr rump_udf 8
|
||||
1423
lib/libp2k/p2k.c
Normal file
1423
lib/libp2k/p2k.c
Normal file
File diff suppressed because it is too large
Load Diff
58
lib/libp2k/p2k.h
Normal file
58
lib/libp2k/p2k.h
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/* $NetBSD: p2k.h,v 1.8 2011/03/21 16:41:27 pooka Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007-2009 Antti Kantee. All Rights Reserved.
|
||||
*
|
||||
* Development of this software was supported by Google Summer of Code.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef _RUMP_P2K_H_
|
||||
#define _RUMP_P2K_H_
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <rump/ukfs.h>
|
||||
|
||||
struct p2k_mount;
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
int p2k_run_fs(const char *, const char *, const char *, int,
|
||||
void *, size_t, uint32_t);
|
||||
int p2k_run_diskfs(const char *, const char *, struct ukfs_part *,
|
||||
const char *, int, void *, size_t, uint32_t);
|
||||
|
||||
struct p2k_mount *p2k_init(uint32_t);
|
||||
void p2k_cancel(struct p2k_mount *, int);
|
||||
|
||||
int p2k_setup_fs(struct p2k_mount *, const char *,
|
||||
const char *, const char *, int, void *, size_t);
|
||||
int p2k_setup_diskfs(struct p2k_mount *, const char *, const char *,
|
||||
struct ukfs_part *, const char *, int,
|
||||
void *, size_t);
|
||||
int p2k_mainloop(struct p2k_mount *);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _RUMP_P2K_H_ */
|
||||
4
lib/libp2k/shlib_version
Normal file
4
lib/libp2k/shlib_version
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# $NetBSD: shlib_version,v 1.3 2010/05/21 10:53:41 pooka Exp $
|
||||
#
|
||||
major=2
|
||||
minor=0
|
||||
Loading…
Reference in New Issue
Block a user