Commit Graph

28 Commits

Author SHA1 Message Date
christos 38a0431bfa Restore binary compatibility by using the statvfs90 structure internally. 2019-09-23 12:00:57 +00:00
pooka aedd7db813 Support rest of file types in vtype -> s_ifmt 2011-02-17 17:55:36 +00:00
pooka 78bedf0f20 st_blocks is in units of DEV_BSIZE, not st_blksize.
from Derrik Pates
2011-02-17 15:41:34 +00:00
pooka 01e9b21900 Default f_namemax to MAXNAMLEN, mostly for initial statvfs struct
passed to kernel in mount.

XXX: there's currently no way for a file server to override the
one passed in mount.
2010-07-15 21:53:10 +00:00
christos 2d378f1d33 fix for dev_t 64 bits. 2008-12-28 22:45:05 +00:00
pooka ff42332733 Replace void * by puffs_cookie_t where appropriate. No functional change. 2008-08-12 19:44:39 +00:00
pooka a8e13cb420 Add generic getattr routine. 2007-12-19 14:01:16 +00:00
pooka 21913eabe5 Rototill.
Ok, ok, a few more words about it: stop holding puffs_cc as a holy
value and passing it around to almost every possible place (popquiz:
which kernel variable does this remind you of?).  Instead, pass
the natural choice, puffs_usermount, and fetch puffs_cc via
puffs_cc_getcc() only in routines which actually need it.  This
not only simplifies code, but (thanks to the introduction of
puffs_cc_getcc()) enables constructs which weren't previously sanely
possible, say layering as a curious example.

There's still a little to do on this front, but this was the major
fs interface blast.
2007-11-30 19:02:28 +00:00
pooka 6a3d9a187d Remove "puffs_cid" from the puffs interface following l-removal
from the kernel vfs interfaces.  puffs_cc_getcaller(pcc) can be
used now should the same information be desired.
2007-11-27 11:31:17 +00:00
pooka cc72c593dd typo in comment 2007-10-21 14:26:15 +00:00
pooka ffe0a01441 Instead of supplying a plain pid, supply an abstract struct puffs_cid *,
which can currently be used to query the pid and lwpid.
2007-07-01 17:22:13 +00:00
pooka f8326bf98e Move puffs to a two clause license where it already isn't so. And
as agc pointed out, even files with the third clause were already
effectively two clause because of a slight bug in the language...
2007-06-06 01:54:59 +00:00
pooka 1ba4b810d1 implement counterpart of vaccess() 2007-03-20 18:28:08 +00:00
pooka 2df275c4cd va->va_mode doesn't contain the full argument to the mknod() system call,
so introduce puffs_addvtype2mode() and use that in null.c to generate the
proper syscall argument
2007-03-16 08:14:49 +00:00
pooka 1427bda45d generic node reclaim, which just puts a puffs_node 2007-02-15 12:51:24 +00:00
pooka e639bec8c2 Add preliminary code for a nullfs layer, which can be used to mount
a directory hierarchy to another point, just like with the kernel
nullfs.  This is not really a layering scheme yet, but it should
evolve into one.  Currently it can just be used to do 1:1 mapping.
2007-01-11 01:01:55 +00:00
pooka 7cc096d8ec * get rid of the mount callback; it's no great surprise to the
server that it needs to mount the file system backend if it wants
  to call mount
* provide some options for getmntopts(), assume that callers will parse
  command line (or fstab) args
* reorganize the puffs_cc interface just a bit, preparing for a bigger
  revamp later
2007-01-06 18:22:09 +00:00
pooka 184a7d787c checkpoint some experimental work-in-progress, namely:
Add support for having multiple outstanding operations.  This is done
by exposing enough interfaces so that it is convenient to have the
main event loop in the implementation itself and by providing a
continuation framework for convinient blocking and rescheduling.

works fine, but will undergo further cleanup & development
2006-12-29 15:28:11 +00:00
pooka 55544f739a rototill the operation callbacks: unify the ops under struct puffs_ops
and namespace them
2006-12-07 10:53:21 +00:00
pooka 194d17d824 mode_t to enum vtype conversion 2006-11-21 23:11:09 +00:00
pooka a40549faca namespace previous change under puffs_vfsnop to avoid confusions 2006-11-14 11:45:03 +00:00
pooka 2d9b770ec5 implement unmount, sync and statvfs as dummies for file system which
couldn't care less about implementing them
2006-11-14 11:23:44 +00:00
mrg 6bb0c03185 use casts to properly truncate some assignments. (sparc64 gcc complained.) 2006-10-23 03:18:30 +00:00
christos d6a795f6a8 put back the comparison in a lint friendly way to appease pooka. 2006-10-23 03:13:13 +00:00
dogcow acba3dfe4b comment out comparison of unsigned expression to >= 0 2006-10-23 03:11:53 +00:00
pooka 718426155f still check for array bounds, fix off-by-one 2006-10-23 01:36:13 +00:00
christos b6f6a56052 pass lint; fix install. 2006-10-23 00:22:24 +00:00
pooka 1635cf06bc add libpuffs - the userspace programming interface for puffs
This work was initially started and completed for Google SoC 2005
and tweaked to work a bit better in the past few weeks.  While
being far from complete, it is functional enough to be able and
stable to host a fairly general-purpose in-memory file system in
userspace.  Even so, puffs should be considered experimental and
no binary compatibility for interfaces or crash-freedom or zero
security implications should be relied upon just yet.

The GSoC project was mentored by William Studenmund and the final
review for the code was done by Christos.
2006-10-22 22:52:21 +00:00