PackageFSRoot
error = PackageFSRoot::GlobalInit();
PackageFSRoot::GlobalUninit();
PackageFSRoot* root;
error = PackageFSRoot::_GetOrCreateRoot(st.st_dev, st.st_ino, root);
PackageFSRoot* root = new(std::nothrow) PackageFSRoot(-1, 0);
ObjectDeleter<PackageFSRoot> rootDeleter(root);
PackageFSRoot::UnregisterVolume(Volume* volume)
PackageFSRoot::AddPackage(Package* package)
PackageFSRoot::RemovePackage(Package* package)
PackageFSRoot::SystemVolume() const
PackageFSRoot::_AddVolume(Volume* volume)
PackageFSRoot::_RemoveVolume(Volume* volume)
PackageFSRoot::_AddPackage(Package* package)
mutex PackageFSRoot::sRootListLock = MUTEX_INITIALIZER("packagefs root list");
PackageFSRoot::RootList PackageFSRoot::sRootList;
PackageFSRoot::PackageFSRoot(dev_t deviceID, ino_t nodeID)
PackageFSRoot::_RemovePackage(Package* package)
PackageFSRoot::_ResolveDependencies(ResolvableDependencyList& dependencies)
PackageFSRoot::_ResolveDependency(Dependency* dependency)
PackageFSRoot::_GetOrCreateRoot(dev_t deviceID, ino_t nodeID,
PackageFSRoot*& _root)
if (PackageFSRoot* root = _FindRootLocked(deviceID, nodeID)) {
PackageFSRoot::~PackageFSRoot()
PackageFSRoot* root = new(std::nothrow) PackageFSRoot(deviceID, nodeID);
ObjectDeleter<PackageFSRoot> rootDeleter(root);
if (PackageFSRoot* otherRoot = _FindRootLocked(deviceID, nodeID)) {
/*static*/ PackageFSRoot*
PackageFSRoot::_FindRootLocked(dev_t deviceID, ino_t nodeID)
PackageFSRoot* root = it.Next();) {
PackageFSRoot::_PutRoot(PackageFSRoot* root)
PackageFSRoot::GlobalInit()
PackageFSRoot::GlobalUninit()
PackageFSRoot::Init()
PackageFSRoot::RegisterVolume(Volume* volume)
PackageFSRoot::WriteLock()
PackageFSRoot::WriteUnlock()
AutoLockerReadLocking<const PackageFSRoot> > PackageFSRootReadLocker;
typedef AutoLocker<PackageFSRoot, AutoLockerWriteLocking<PackageFSRoot> >
class PackageFSRoot : private BReferenceable,
public DoublyLinkedListLinkImpl<PackageFSRoot> {
PackageFSRoot(dev_t deviceID, ino_t nodeID);
virtual ~PackageFSRoot();
typedef DoublyLinkedList<PackageFSRoot> RootList;
PackageFSRoot*& _root);
static PackageFSRoot* _FindRootLocked(dev_t deviceID, ino_t nodeID);
static void _PutRoot(PackageFSRoot* root);
PackageFSRoot::ReadLock() const
PackageFSRoot::ReadUnlock() const
error = ::PackageFSRoot::RegisterVolume(this);
::PackageFSRoot* fPackageFSRoot;
class PackageFSRoot;
void SetPackageFSRoot(::PackageFSRoot* root)
::PackageFSRoot* PackageFSRoot() const