History log of /haiku-fatelf/src/add-ons/kernel/file_systems/packagefs/Jamfile
Revision Date Author Comments
# c864ba1a 16-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Build a separate libsupc++ for the kernel with correct flags.

Kernel mode code on x86_64 needs to be built with -mno-red-zone as
interrupts would corrupt the red zone if it were in use. However, the
kernel is linked with libsupc++, which was not compiled with
-mno-red-zone. If an interrupt occurred in libsupc++ code the red zone
would get corrupted. This was causing random panics, particularly under
heavy system load. Therefore, on x86_64 a separate build of libsupc++
with -mno-red-zone is now done for the kernel to use. Note: this commit
will require a rerun of configure and rebuild of cross tools.


# 03aed3a3 08-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Attribute index support for non-special attributes

* Add AttributeIndex class.
* Each attribute does now have an attribute index cookie. The new
attribute index service methods Node::IndexAttribute() and
IndexCookieForAttribute() create+set/retrieve the cookie. The cookie
is actually the attribute index's tree node.
* Add OldNodeAttribute::IndexCookieForAttribute() so the cookie is
available when the node changes.


# 6cc3dcdb 07-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Move helper function out of QueryParser.h

They live in the new QueryParserUtils.{h,cpp} now.


# ed81de86 07-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add last modified index support

* Add class LastModifiedIndex.
* Create and add an instance of it in Volume::Mount().


# 3793289c 07-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add size index support

* Add class SizeIndex.
* Create and add an instance of it in Volume mount.


# 182e58f7 07-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

NodeListener::NodeChanged(): Provide old value

* Add interface OldNodeAttributes an instance of which is passed to
NodeListener::NodeChanged() to provide the old attribute values
(currently only modification time and file size).
* Also extend PackageLinksListener::PackageLinkNodeChanged() with a
OldNodeAttributes parameter.
* Add OldNodeAttributes implementations for PackageLinkSymlink (inner
class OldAttributes) and UnpackingNode (OldUnpackageNodeAttributes).


# 617ac41c 05-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add Query class and query management in Volume


# 331b89b3 05-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add NameIndex class and create instance in Volume


# 4791f5eb 05-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add Index base class and index table in Volume


# ec59ac75 05-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add a global node listener mechanism


# c4c9e06c 25-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Support for auto-generated package node attributes

* Add utility class AutoPackageAttributes and AttributeCookie subclass
AutoPackageAttributeCookie.
* UnpackingAttributeCookie::Open() does now try to create a
AutoPackageAttributeCookie, when it doesn't find the attribute in the
PackageNode.
* Adjust UnpackingAttributeDirectoryCookie to also list auto-generated
attributes.

Currently the only supported attribute is "SYS:PACKAGE", which is the
file name of the package containing the node.


# c6dd2207 25-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Move PackageLinkDirectory::Link to own file

And rename it to PackageLinkSymlink.


# 7d2fa6f0 25-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

WIP towards dependency package links

* Add ResolvableFamily and DependencyFamily classes for grouping equally
named resolvables/dependencies.
* Add hash tables to PackageFSRoot to track resolvables and
dependencies. That is done in {Add,Remove}Package.
* Resolvable does now have a list of Dependency objects, the ones it
satisfies.


# fe49869e 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add package link directories to system volume

* Add PackageLinksListener interface. It is used by
PackageLink[s]Directory to notify a listener about changes.
* Volume does now implement PackageLinksListener and recursively adds/
removes package link directories.

This makes the package link directories appear at least. They are still
empty.


# b5baaa84 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

WIP: Create empty package links directories

* Rename PackageFamily to PackageLinkDirectory and derive from
Directory.
* PackageLinksDirectory: Add the PackageLinkDirectory objects as
children and remove the no longer needed hash table (we use the
Directory's child hash table).


# d1756818 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Move EmptyAttributeDirectoryCookie to own files


# 63875d17 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add yet empty package-links directory

* Add PackageLinksDirectory Directory subclass. Currently not doing
anything.
* PackageFSRoot: Create a PackageLinksDirectory.
* Volume: Add/remove the package links directory for the system volume.


# e16ce53b 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Pull derived UnpackingDirectory out of Directory

Move all package specifics from now abstract Directory to new derived
class UnpackingDirectory and adjust the Volume implementation
accordingly. This concludes the Node/Directory refactoring. Neither
class is aware of packages anymore.


# 097e795f 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Rename LeafNode to UnpackingLeafNode


# 20142717 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove package related dependencies from Node

* Move package related methods from Node to new interface UnpackingNode.
* LeafNode and Directory derive from UnpackingNode now.
* Adjust Volume implementation accordingly.


# 5167a807 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Attribute dir access kernel interface abstraction

* Introduce interface AttributeDirectoryCookie and currently only
implementation UnpackingAttributeDirectoryCookie. This is an interface
for reading/rewinding an attribute directory.
* Add abstract virtual Node::OpenAttributeDirectory() method that
returns an AttributeDirectoryCookie and implement it for derived
classes.
* In the kernel interface attribute directory hooks use
AttributeDirectoryCookie now.


# 882b03ab 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Kernel interface abstraction for attribute access

* Introduce interface AttributeCookie and currently only implementation
UnpackingAttributeCookie. This is an interface for reading/stat()ing
an attribute.
* Add abstract virtual Node::OpenAttribute() method that returns an
AttributeCookie and implemented it for derived classes.
* In the kernel interface attribute hooks use AttributeCookie now. The
attribute directory hooks are unchanged.


# 991ba9fd 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

WIP towards packagefs package links support

* Introduce Version class representing a version.
* Introduce Dependency and Resolvable class and add lists of either to
Package.
* Parse package attributes and add dependencies and resolvables to
Package.
* Add a mount type to Volume and add a respective mount parameter
"mount-type" (values "system", "common", "home", "custom"). Also
implies the shine-through type, if that's not given.
* Introduce class PackageFamily which groups equally named and versioned
packages.
* Add class PackageFSRoot. Each instance represents a possible file
system root (separate roots for different chroot environments). Tracks
Volumes belonging to the same root and their packages.


# fab5eddc 19-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Split package kit DataReader.cpp

Pull AttributeDataReader and FDDataReader implementations out of
DataReader.cpp into own source files. Thus we can avoid dependencies
(e.g. to fs_attr code) we don't need/want.


# ad6a8dbe 14-Feb-2011 Oliver Tappe <zooey@hirschkaefer.de>

Pulled reusable stuff from PackageReaderImpl into new class ReaderImplBase.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40485 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5fb1c6ff 30-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

Refactored hpkg implementation to provide some separation between
public and private API (still far from ideal, but a start):
* moved several HPKG-classes into the public namespace BPackageKit::HPKG
* added fImpl-wrappers around PackageReader and PackageWriter to hide
most of the gory details
* adjusted 'package'-binary and packagefs accordingly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40320 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0d6b3b20 27-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

More work on package kit:
* added class BPackageInfo, which contains packaging attributes of
a package (the values relevant for package management)
* implemented parser (mostly) for reading a BPackageInfo from a config
file (.PackageInfo) in order to pass them on to the PackageWriter
when creating a package
* pulled hpkg-related stuff from bin/package into the package kit
* adjusted packagefs-Volume to skip .PackageInfo files when populating
the mountpoint, as those files shouldn't appear as part of an
activated package


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40301 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 46776004 18-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Extract the attributes from the package files and attach them as
PackageNodeAttribute to the PackageNodes.
* Implemented the attribute FS interface hooks.
* Made Package and PackageNode BReferenceable.
* Fixed the reference management for Node.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34119 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4e2cd771 18-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new interface BufferCache -- basically a memory allocator with the
option to cache a freed buffer -- and implementations
BlockBufferCache{NoLock,Kernel}.
* ZlibPackageDataReader does now dynamically get its read and uncompress
buffers from a provided BufferCache when needed.
* Allocating the buffers once and keeping them over the whole life time was a
bit too memory heavy, since we create a reader for every file for which a
vnode is created. A FS module global factory provides a buffer cache.
* Added a mutex to PackageFile::DataAccessor which guards the access to the
data reader which isn't thread safe.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34115 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 694cb0b2 17-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Implemented intermediate base class PackageLeafNode for PackageFile and
PackageSymlink with a "fat" interface.
* Replaced File and Symlink by fat class LeafNode.
* Added Package* object management to Directory and LeafNode.
* Implemented packagefs_read_symlink(), so symlinks work now.
* Added some missing locking the kernel interface.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34096 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cc32c484 17-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Work in progress:
* The FS parses package files from "/boot/common/packages" and builds an
node tree representation of the contained entries. Merging directories should
work. Lots of other stuff is missing yet, though.
* Implemented the hooks for directory entry lookup and iteration. So it's
possible to see the contents of the FS at least.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34088 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b932032a 15-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented the most basic functionality required to cleanly mount and unmount
(at least in userlandfs).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34069 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eaf37e54 15-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added Jamfile for building for the userlandfs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34065 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3791c3fc 15-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

The very beginning of a package FS: Empty stubs for a minimal read-only file
system.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34064 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c864ba1a2d8525aeabd6199c01675f70f5abd7bd 16-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Build a separate libsupc++ for the kernel with correct flags.

Kernel mode code on x86_64 needs to be built with -mno-red-zone as
interrupts would corrupt the red zone if it were in use. However, the
kernel is linked with libsupc++, which was not compiled with
-mno-red-zone. If an interrupt occurred in libsupc++ code the red zone
would get corrupted. This was causing random panics, particularly under
heavy system load. Therefore, on x86_64 a separate build of libsupc++
with -mno-red-zone is now done for the kernel to use. Note: this commit
will require a rerun of configure and rebuild of cross tools.


# 03aed3a3146e5e989b327eba191e41a1d4bf3dfc 08-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Attribute index support for non-special attributes

* Add AttributeIndex class.
* Each attribute does now have an attribute index cookie. The new
attribute index service methods Node::IndexAttribute() and
IndexCookieForAttribute() create+set/retrieve the cookie. The cookie
is actually the attribute index's tree node.
* Add OldNodeAttribute::IndexCookieForAttribute() so the cookie is
available when the node changes.


# 6cc3dcdb9baedcc500d02055ff8927cc947f59bf 07-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Move helper function out of QueryParser.h

They live in the new QueryParserUtils.{h,cpp} now.


# ed81de869e47eff53197b2a81a739a6da6e4b64c 07-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add last modified index support

* Add class LastModifiedIndex.
* Create and add an instance of it in Volume::Mount().


# 3793289c21d17d6e8f22c149879d4201871a4880 07-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add size index support

* Add class SizeIndex.
* Create and add an instance of it in Volume mount.


# 182e58f709cc0d9e0ae0f905874c13dfe38ce516 07-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

NodeListener::NodeChanged(): Provide old value

* Add interface OldNodeAttributes an instance of which is passed to
NodeListener::NodeChanged() to provide the old attribute values
(currently only modification time and file size).
* Also extend PackageLinksListener::PackageLinkNodeChanged() with a
OldNodeAttributes parameter.
* Add OldNodeAttributes implementations for PackageLinkSymlink (inner
class OldAttributes) and UnpackingNode (OldUnpackageNodeAttributes).


# 617ac41c601a395ce3065e44cc8355d792c33765 05-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add Query class and query management in Volume


# 331b89b3a5568ad9efcd8a10aa587366753bc6a4 05-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add NameIndex class and create instance in Volume


# 4791f5ebb3bec07d9592b2bc5b461e269880ed3b 05-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add Index base class and index table in Volume


# ec59ac751529851c81e8c3db96e06ba1b790dcbd 05-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add a global node listener mechanism


# c4c9e06c88d03c20bcf84b4e627ce4a4fb15d22f 25-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Support for auto-generated package node attributes

* Add utility class AutoPackageAttributes and AttributeCookie subclass
AutoPackageAttributeCookie.
* UnpackingAttributeCookie::Open() does now try to create a
AutoPackageAttributeCookie, when it doesn't find the attribute in the
PackageNode.
* Adjust UnpackingAttributeDirectoryCookie to also list auto-generated
attributes.

Currently the only supported attribute is "SYS:PACKAGE", which is the
file name of the package containing the node.


# c6dd220780584bd9debaad5bd82bab1dc953b881 25-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Move PackageLinkDirectory::Link to own file

And rename it to PackageLinkSymlink.


# 7d2fa6f0f83c87b90df3d3f87f47873bf0f26b4d 25-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

WIP towards dependency package links

* Add ResolvableFamily and DependencyFamily classes for grouping equally
named resolvables/dependencies.
* Add hash tables to PackageFSRoot to track resolvables and
dependencies. That is done in {Add,Remove}Package.
* Resolvable does now have a list of Dependency objects, the ones it
satisfies.


# fe49869e03e724de875ad54c91f9f66275cfcf32 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add package link directories to system volume

* Add PackageLinksListener interface. It is used by
PackageLink[s]Directory to notify a listener about changes.
* Volume does now implement PackageLinksListener and recursively adds/
removes package link directories.

This makes the package link directories appear at least. They are still
empty.


# b5baaa8428dc8319bb8a040430cd44a9ae18b677 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

WIP: Create empty package links directories

* Rename PackageFamily to PackageLinkDirectory and derive from
Directory.
* PackageLinksDirectory: Add the PackageLinkDirectory objects as
children and remove the no longer needed hash table (we use the
Directory's child hash table).


# d175681861f0d38517da21cba36c14c08381ba8d 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Move EmptyAttributeDirectoryCookie to own files


# 63875d1702406f1bdc0e0f7adaa3492dd9fa3bdd 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add yet empty package-links directory

* Add PackageLinksDirectory Directory subclass. Currently not doing
anything.
* PackageFSRoot: Create a PackageLinksDirectory.
* Volume: Add/remove the package links directory for the system volume.


# e16ce53bccea3c101dadc1c4f4cfb73913aacd39 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Pull derived UnpackingDirectory out of Directory

Move all package specifics from now abstract Directory to new derived
class UnpackingDirectory and adjust the Volume implementation
accordingly. This concludes the Node/Directory refactoring. Neither
class is aware of packages anymore.


# 097e795f8e34d908418b06ae63d81d2f7916eb54 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Rename LeafNode to UnpackingLeafNode


# 20142717e78e3d349d0da642a8a5ae66a6d0a415 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove package related dependencies from Node

* Move package related methods from Node to new interface UnpackingNode.
* LeafNode and Directory derive from UnpackingNode now.
* Adjust Volume implementation accordingly.


# 5167a807038bd05fa521f7efd389815578cb1bc9 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Attribute dir access kernel interface abstraction

* Introduce interface AttributeDirectoryCookie and currently only
implementation UnpackingAttributeDirectoryCookie. This is an interface
for reading/rewinding an attribute directory.
* Add abstract virtual Node::OpenAttributeDirectory() method that
returns an AttributeDirectoryCookie and implement it for derived
classes.
* In the kernel interface attribute directory hooks use
AttributeDirectoryCookie now.


# 882b03aba9f028dc99fd79499f3e20b52a91a485 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Kernel interface abstraction for attribute access

* Introduce interface AttributeCookie and currently only implementation
UnpackingAttributeCookie. This is an interface for reading/stat()ing
an attribute.
* Add abstract virtual Node::OpenAttribute() method that returns an
AttributeCookie and implemented it for derived classes.
* In the kernel interface attribute hooks use AttributeCookie now. The
attribute directory hooks are unchanged.


# 991ba9fddf31971e08b038b0f84ff165c8cb94b7 23-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

WIP towards packagefs package links support

* Introduce Version class representing a version.
* Introduce Dependency and Resolvable class and add lists of either to
Package.
* Parse package attributes and add dependencies and resolvables to
Package.
* Add a mount type to Volume and add a respective mount parameter
"mount-type" (values "system", "common", "home", "custom"). Also
implies the shine-through type, if that's not given.
* Introduce class PackageFamily which groups equally named and versioned
packages.
* Add class PackageFSRoot. Each instance represents a possible file
system root (separate roots for different chroot environments). Tracks
Volumes belonging to the same root and their packages.


# fab5eddca9e54e7325fe452aed2c7a0bbd3dfe62 19-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Split package kit DataReader.cpp

Pull AttributeDataReader and FDDataReader implementations out of
DataReader.cpp into own source files. Thus we can avoid dependencies
(e.g. to fs_attr code) we don't need/want.


# ad6a8dbe2bffcac6a1df7a59ee6119f240a8edee 14-Feb-2011 Oliver Tappe <zooey@hirschkaefer.de>

Pulled reusable stuff from PackageReaderImpl into new class ReaderImplBase.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40485 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5fb1c6ff1f55fe4094a761b653041b3a0b9abf1d 30-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

Refactored hpkg implementation to provide some separation between
public and private API (still far from ideal, but a start):
* moved several HPKG-classes into the public namespace BPackageKit::HPKG
* added fImpl-wrappers around PackageReader and PackageWriter to hide
most of the gory details
* adjusted 'package'-binary and packagefs accordingly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40320 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0d6b3b20e15fe2cbeb5e81749f888c26ca289338 27-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

More work on package kit:
* added class BPackageInfo, which contains packaging attributes of
a package (the values relevant for package management)
* implemented parser (mostly) for reading a BPackageInfo from a config
file (.PackageInfo) in order to pass them on to the PackageWriter
when creating a package
* pulled hpkg-related stuff from bin/package into the package kit
* adjusted packagefs-Volume to skip .PackageInfo files when populating
the mountpoint, as those files shouldn't appear as part of an
activated package


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40301 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 46776004f7f9bdf5af8c91372f050ee9f4e64076 18-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Extract the attributes from the package files and attach them as
PackageNodeAttribute to the PackageNodes.
* Implemented the attribute FS interface hooks.
* Made Package and PackageNode BReferenceable.
* Fixed the reference management for Node.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34119 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4e2cd77109c257aa0be1e475ddcd379f9e9286df 18-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new interface BufferCache -- basically a memory allocator with the
option to cache a freed buffer -- and implementations
BlockBufferCache{NoLock,Kernel}.
* ZlibPackageDataReader does now dynamically get its read and uncompress
buffers from a provided BufferCache when needed.
* Allocating the buffers once and keeping them over the whole life time was a
bit too memory heavy, since we create a reader for every file for which a
vnode is created. A FS module global factory provides a buffer cache.
* Added a mutex to PackageFile::DataAccessor which guards the access to the
data reader which isn't thread safe.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34115 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 694cb0b270e4acba08d83b0a520217081011ba28 17-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Implemented intermediate base class PackageLeafNode for PackageFile and
PackageSymlink with a "fat" interface.
* Replaced File and Symlink by fat class LeafNode.
* Added Package* object management to Directory and LeafNode.
* Implemented packagefs_read_symlink(), so symlinks work now.
* Added some missing locking the kernel interface.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34096 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cc32c48494415e116417542ddc25bf0d28e616c5 17-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Work in progress:
* The FS parses package files from "/boot/common/packages" and builds an
node tree representation of the contained entries. Merging directories should
work. Lots of other stuff is missing yet, though.
* Implemented the hooks for directory entry lookup and iteration. So it's
possible to see the contents of the FS at least.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34088 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b932032a35bf6775e1b37bc3b39a2c9afa8c3ac1 15-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented the most basic functionality required to cleanly mount and unmount
(at least in userlandfs).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34069 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eaf37e54bf6c781c10beadeddb2f3331d74f44f1 15-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added Jamfile for building for the userlandfs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34065 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3791c3fc274dc21abaaa8619045e016489ce123b 15-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

The very beginning of a package FS: Empty stubs for a minimal read-only file
system.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34064 a95241bf-73f2-0310-859d-f6bbb57e9c96