Commit Graph

396 Commits

Author SHA1 Message Date
pooka b599bb507d * do the l-variations of syscalls, since some nodes are symlinks
* truncate only regular files to set size
* do the chmod()-dance for cache flush to now write-protected files
  until I can think of a nicer way to solve this
2007-01-11 14:59:35 +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 14b3edf81b * don't chdir in possible daemon() call for the benefit of file systems
which specify a relative path as the root
* if (buildpath), build link source full pathname for the duration of
  the operation
2007-01-10 23:02:50 +00:00
pooka 2811d45fdd Be less shy about the default stack size, it's a only virtual memory space.
TODO: put a guard page at the end
2007-01-10 20:11:04 +00:00
pooka 71ddd8df08 rename name cache invalidation interface to be in sync with the
kernel operation names, i.e. contain "namecache" instead of just "name"
2007-01-09 18:19:01 +00:00
pooka 03a190dc22 lib interface for invalidation routines 2007-01-09 18:15:08 +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 f70a3c8c19 * inform kernel of our version
* homegrown lib ABI check (to avoid bumping major a ludicrillion times
  before reaching stability)
2007-01-02 15:53:05 +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
alc 1a0e3f4a48 CID4360: don't leak `buf' upon return
ok pooka@
2006-12-14 18:15:59 +00:00
pooka 49df5bfc7b outline & export code for interfacing with kernel GET/PUT requests 2006-12-07 23:15:20 +00:00
pooka 24fb4d5d8c g/c out-of-date comment 2006-12-07 17:39:54 +00:00
pooka 43d8340ec6 support mmap 2006-12-07 16:59:14 +00:00
pooka 79fa3dd2c2 cleanup generated stuff from comments 2006-12-07 16:13:51 +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 a0eb335104 adapt to kernel change:
Allow multiple requests to be transferred in each GET/PUTOP
2006-12-05 23:04:21 +00:00
pooka b98361ea36 sauce catchup 2006-12-01 15:31:25 +00:00
pooka 0d5746a9ac PUFFSFLAG -> PUFFS_FLAG to be consistent with the kernel 2006-12-01 12:50:06 +00:00
pooka 465f49d71b build & send implemented operations list to kernel 2006-12-01 12:38:11 +00:00
pooka d4280e60eb update with reality 2006-11-30 05:53:34 +00:00
pooka c145fb5a17 summon daemon(3) in mainloop unless the nodaemon flag is given 2006-11-30 05:37:48 +00:00
pooka c9aa28f463 * document open, close and access
* nomenclature improvements
2006-11-23 17:45:11 +00:00
pooka 4b5bf45935 const coherence 2006-11-23 16:44:28 +00:00
pooka 194d17d824 mode_t to enum vtype conversion 2006-11-21 23:11:09 +00:00
wiz 30ef64a953 Some mdoc and grammar nits. 2006-11-19 00:11:21 +00:00
pooka d69d91cf3e * call statvfs() at mount() time, pass that info along
* start is gone
2006-11-18 12:40:35 +00:00
pooka a0e314dc77 shuffle flags a bit 2006-11-17 17:48:32 +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
pooka c025c6ae8f add note to BUGS about the questionable nature of puffs_node 2006-11-13 21:09:16 +00:00
pooka c3f04e4e04 sync with change to lookup 2006-11-13 21:06:16 +00:00
pooka 80ce20607e * catch up with kernel changes
* better error handling when mounting
2006-11-09 13:11:01 +00:00
pooka b8a1eae019 initial documentation for the puffs library interface 2006-11-09 01:30:15 +00:00
pooka 010234739c * support FAF (Fire-And-Forget) class operations
* adapt to new lookup
2006-11-07 22:10:53 +00:00
pooka 1fc270ecf0 pass rdev for specfs support 2006-10-26 22:53:01 +00:00
pooka bda8cd7266 handle PUFFS_VN_INACTIVE 2006-10-25 18:15:50 +00:00
pooka c643be45eb dump correct name for vfs operations 2006-10-23 16:53:17 +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
christos 7ef97c92be use portable prints 2006-10-23 03:10:09 +00:00
pooka 718426155f still check for array bounds, fix off-by-one 2006-10-23 01:36:13 +00:00
christos bc7a8f1f3d fix a lint warning. 2006-10-23 01:23:42 +00:00
christos b6f6a56052 pass lint; fix install. 2006-10-23 00:22:24 +00:00
dogcow 8f7efdd62a add the .include <bsd.own.mk>, so .d and .o files don't end up in the CWD.
remove INCDIR=/usr/include, as my leenooks system doesn't have puffs .h files.
2006-10-22 23:51:37 +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