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/libobjc_pic.a minix-base gcc=5
|
||||||
./usr/lib/libopcodes.so.6.0 minix-base binutils
|
./usr/lib/libopcodes.so.6.0 minix-base binutils
|
||||||
./usr/lib/libopcodes.so.6 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 minix-base
|
||||||
./usr/lib/libpci.so.2 minix-base
|
./usr/lib/libpci.so.2 minix-base
|
||||||
./usr/lib/libpci.so.2.0 minix-base obsolete
|
./usr/lib/libpci.so.2.0 minix-base obsolete
|
||||||
|
|
|
||||||
|
|
@ -1720,6 +1720,7 @@
|
||||||
./usr/include/rpcsvc/yp_prot.h minix-comp
|
./usr/include/rpcsvc/yp_prot.h minix-comp
|
||||||
./usr/include/rpcsvc/ypclnt.h minix-comp
|
./usr/include/rpcsvc/ypclnt.h minix-comp
|
||||||
./usr/include/rump minix-comp rump
|
./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.h minix-comp rump
|
||||||
./usr/include/rump/rump_namei.h minix-comp rump
|
./usr/include/rump/rump_namei.h minix-comp rump
|
||||||
./usr/include/rump/rump_syscalls.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/libnetsock_pic.a minix-comp
|
||||||
./usr/lib/libobjc.a minix-comp gcc=45
|
./usr/lib/libobjc.a minix-comp gcc=45
|
||||||
./usr/lib/libobjc_pic.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.a minix-comp
|
||||||
./usr/lib/libpci_pic.a minix-comp
|
./usr/lib/libpci_pic.a minix-comp
|
||||||
./usr/lib/libprop.a minix-comp
|
./usr/lib/libprop.a minix-comp
|
||||||
|
|
|
||||||
|
|
@ -2368,6 +2368,7 @@
|
||||||
./usr/man/man3/orcmd_af.3 minix-man
|
./usr/man/man3/orcmd_af.3 minix-man
|
||||||
./usr/man/man3/overlay.3 minix-man
|
./usr/man/man3/overlay.3 minix-man
|
||||||
./usr/man/man3/overwrite.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/p_query.3 minix-man
|
||||||
./usr/man/man3/pair_content.3 minix-man
|
./usr/man/man3/pair_content.3 minix-man
|
||||||
./usr/man/man3/parsedate.3 minix-man
|
./usr/man/man3/parsedate.3 minix-man
|
||||||
|
|
|
||||||
|
|
@ -316,7 +316,7 @@ SUBDIR+= ../crypto/external/cpl/trousers/lib
|
||||||
#==================== 5th library dependency barrier ====================
|
#==================== 5th library dependency barrier ====================
|
||||||
SUBDIR+= .WAIT
|
SUBDIR+= .WAIT
|
||||||
|
|
||||||
#SUBDIR+= libp2k # depends on libukfs, librumpvfs, libpuffs
|
SUBDIR+= libp2k # depends on libukfs, librumpvfs, libpuffs
|
||||||
|
|
||||||
.if (${MKTPM} != "no")
|
.if (${MKTPM} != "no")
|
||||||
SUBDIR+= ../crypto/external/cpl/tpm-tools/lib # depends on trousers
|
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