sauce catchup
This commit is contained in:
parent
25e5748c32
commit
b98361ea36
@ -1,4 +1,4 @@
|
||||
.\" $NetBSD: puffs.3,v 1.6 2006/11/30 05:53:34 pooka Exp $
|
||||
.\" $NetBSD: puffs.3,v 1.7 2006/12/01 15:31:25 pooka Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 2006 Antti Kantee. All rights reserved.
|
||||
.\"
|
||||
@ -23,7 +23,7 @@
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd November 30, 2006
|
||||
.Dd December 1, 2006
|
||||
.Dt PUFFS 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -217,7 +217,7 @@ Flags for
|
||||
can be given via
|
||||
.Fa pflags .
|
||||
Currently
|
||||
.Dv PUFFSFLAG_OPDUMP
|
||||
.Dv PUFFS_FLAG_OPDUMP
|
||||
is supported, this dumps each received operation to stdout before handling it.
|
||||
Finally, the maximum operation buffer length is requested by
|
||||
.Fa maxreqlen .
|
||||
|
@ -1,4 +1,4 @@
|
||||
.\" $NetBSD: puffs.4,v 1.3 2006/11/19 00:05:42 wiz Exp $
|
||||
.\" $NetBSD: puffs.4,v 1.4 2006/12/01 15:31:25 pooka Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 2006 Antti Kantee. All rights reserved.
|
||||
.\"
|
||||
@ -23,7 +23,7 @@
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd November 17, 2006
|
||||
.Dd December 1, 2006
|
||||
.Dt PUFFS 4
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -69,6 +69,7 @@ struct puffs_args {
|
||||
unsigned int pa_flags;
|
||||
size_t pa_maxreqlen;
|
||||
char pa_name[PUFFSNAMESIZE];
|
||||
uint8_t pa_vnopmask[PUFFS_VN_MAX];
|
||||
};
|
||||
.Ed
|
||||
.Pp
|
||||
@ -80,13 +81,13 @@ The
|
||||
member is the file descriptor number from opening the device node.
|
||||
.Va pa_flags
|
||||
controls some operations specific to puffs:
|
||||
.Bl -tag -width "PUFFSFLAG_ALLOWCTL"
|
||||
.It Dv PUFFSFLAG_ALLOWCTL
|
||||
.Bl -tag -width "PUFFS_KFLAG_ALLOWCTL"
|
||||
.It Dv PUFFS_KFLAG_ALLOWCTL
|
||||
Allow file system fcntl and ioctl operations.
|
||||
Allowing these has security implications as the file system can
|
||||
technically read anything out of a calling processes address space.
|
||||
This flag may additionally be enforced by the kernel security policy.
|
||||
.It Dv PUFFSFLAG_NOCACHE
|
||||
.It Dv PUFFS_KFLAG_NOCACHE
|
||||
Do not store data in the page cache.
|
||||
This causes operations to always consult the user server instead of
|
||||
consulting the page cache.
|
||||
@ -94,6 +95,10 @@ This makes sense in situations where there is relatively little
|
||||
bulk data to be transferred and the user server does not want to take
|
||||
part in complex cache management routines in case the file system data
|
||||
can be modified through routes other than the file system interface.
|
||||
.It Dv PUFFS_KFLAG_ALLOPS
|
||||
Transport all vnode operations to the file system server instead of just
|
||||
the ones specified by
|
||||
.Va pa_vnopmask .
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
@ -109,14 +114,30 @@ During operation, in case request fetch is attempted with a buffer
|
||||
too short, the error
|
||||
.Er E2BIG
|
||||
will be returned.
|
||||
The file system type is give in
|
||||
.Va pa_name .
|
||||
It will always be prepended by "puffs:" by the kernel.
|
||||
Finally, the array
|
||||
.Va pa_vnopmask
|
||||
specifies which operations are supported by the file system server.
|
||||
The array is indexed with
|
||||
.Dv PUFFS_VN_FOO
|
||||
and 0 means vnode operation
|
||||
.Dv FOO
|
||||
is unimplemented while non-zero means an implemented operation.
|
||||
This array is ignored if
|
||||
.Dv PUFFS_KFLAG_ALLOPS
|
||||
is given.
|
||||
.Pp
|
||||
After a succesful mount system call, the the ioctl
|
||||
.Dv PUFFSMOUNTOP
|
||||
.Dv PUFFSSTARTOP
|
||||
must be issued through the open device node.
|
||||
The parameter for this ioctl is the following structure:
|
||||
.Bd -literal -offset indent
|
||||
struct puffs_startreq {
|
||||
void *psr_cookie; fsid_t psr_fsidx; };
|
||||
void *psr_cookie;
|
||||
struct statvfs psr_sb;
|
||||
};
|
||||
.Ed
|
||||
.Pp
|
||||
The member
|
||||
@ -127,8 +148,9 @@ This signals the cookie value of the root node of the file system
|
||||
.Xr puffs 3
|
||||
for more details on cookie strategies).
|
||||
The value of
|
||||
.Va psr_fsidx
|
||||
will be filled by the kernel and should be recorded for future use.
|
||||
.Va psr_sb
|
||||
should be filled with the same results as for a regular statvfs
|
||||
call.
|
||||
After successfully executing this operation the file system is
|
||||
active.
|
||||
.Ss Operation
|
||||
@ -152,8 +174,10 @@ can be issued to be notified of events.
|
||||
As the argument both get and push use the following structure:
|
||||
.Bd -literal -offset indent
|
||||
struct puffs_req {
|
||||
uint64_t preq_id; uint8_t preq_opclass;
|
||||
uint8_t preq_optype; void *preq_cookie;
|
||||
uint64_t preq_id;
|
||||
uint8_t preq_opclass;
|
||||
uint8_t preq_optype;
|
||||
void *preq_cookie;
|
||||
|
||||
int preq_rv;
|
||||
|
||||
@ -225,6 +249,7 @@ and this may result in data loss.
|
||||
.Xr puffs 3 ,
|
||||
.Xr umount 8
|
||||
.Sh HISTORY
|
||||
An unsupported experimental version of
|
||||
.Nm
|
||||
first appeared in
|
||||
.Nx 4.0 .
|
||||
|
Loading…
Reference in New Issue
Block a user