Got rid of the Storage Kit's kernel abstraction layer, which was
unfortunately quite slow and made some things more complicated than they needed to be. Implemented a few missing things (e.g. BSymLink and node locking). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8694 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -78,6 +78,8 @@ public:
|
||||
BDirectory &operator=(const BDirectory &dir);
|
||||
|
||||
private:
|
||||
friend class BNode;
|
||||
|
||||
virtual void _ErectorDirectory1();
|
||||
virtual void _ErectorDirectory2();
|
||||
virtual void _ErectorDirectory3();
|
||||
@@ -87,13 +89,14 @@ private:
|
||||
|
||||
private:
|
||||
virtual void close_fd();
|
||||
BPrivate::Storage::FileDescriptor get_fd() const;
|
||||
int get_fd() const;
|
||||
|
||||
private:
|
||||
uint32 _reservedData[7];
|
||||
BPrivate::Storage::FileDescriptor fDirFd;
|
||||
int fDirFd;
|
||||
|
||||
friend class BEntry;
|
||||
friend class BFile;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
#include <SupportDefs.h>
|
||||
|
||||
#include <Statable.h>
|
||||
#include <StorageDefs.Private.h>
|
||||
|
||||
#ifdef USE_OPENBEOS_NAMESPACE
|
||||
namespace OpenBeOS {
|
||||
@@ -77,6 +76,11 @@ public:
|
||||
BEntry &operator=(const BEntry &item);
|
||||
|
||||
private:
|
||||
friend class BDirectory;
|
||||
friend class BFile;
|
||||
friend class BNode;
|
||||
friend class BSymLink;
|
||||
|
||||
virtual void _PennyEntry1();
|
||||
virtual void _PennyEntry2();
|
||||
virtual void _PennyEntry3();
|
||||
@@ -90,11 +94,10 @@ private:
|
||||
/*! BEntry implementation of BStatable::set_stat() */
|
||||
virtual status_t set_stat(struct stat &st, uint32 what);
|
||||
|
||||
status_t set(BPrivate::Storage::FileDescriptor dir, const char *path,
|
||||
bool traverse);
|
||||
status_t set(int dir, const char *path, bool traverse);
|
||||
|
||||
/*! File descriptor for the entry's parent directory. */
|
||||
BPrivate::Storage::FileDescriptor fDirFd;
|
||||
int fDirFd;
|
||||
|
||||
/*! Leaf name of the entry. */
|
||||
char *fName;
|
||||
@@ -104,6 +107,8 @@ private:
|
||||
|
||||
status_t set_name(const char *name);
|
||||
|
||||
status_t _Rename(BEntry& target, bool clobber);
|
||||
|
||||
void Dump(const char *name = NULL);
|
||||
};
|
||||
|
||||
@@ -118,7 +123,3 @@ bool operator<(const entry_ref &a, const entry_ref &b);
|
||||
#endif
|
||||
|
||||
#endif // _ENTRY_H
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ private:
|
||||
uint32 _reservedData[8];
|
||||
|
||||
private:
|
||||
BPrivate::Storage::FileDescriptor get_fd() const;
|
||||
int get_fd() const;
|
||||
|
||||
private:
|
||||
//! The file's open mode.
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
#define _NODE_H
|
||||
|
||||
#include <Statable.h>
|
||||
#include <StorageDefs.Private.h>
|
||||
|
||||
#ifdef USE_OPENBEOS_NAMESPACE
|
||||
namespace OpenBeOS {
|
||||
@@ -115,14 +114,17 @@ private:
|
||||
uint32 rudeData[4];
|
||||
|
||||
private:
|
||||
status_t set_fd(BPrivate::Storage::FileDescriptor fd);
|
||||
status_t set_fd(int fd);
|
||||
virtual void close_fd();
|
||||
void set_status(status_t newStatus);
|
||||
|
||||
status_t _SetTo(int fd, const char *path, bool traverse);
|
||||
status_t _SetTo(const entry_ref *ref, bool traverse);
|
||||
|
||||
virtual status_t set_stat(struct stat &st, uint32 what);
|
||||
|
||||
BPrivate::Storage::FileDescriptor fFd;
|
||||
BPrivate::Storage::FileDescriptor fAttrFd;
|
||||
int fFd;
|
||||
int fAttrFd;
|
||||
status_t fCStatus;
|
||||
|
||||
status_t InitAttrDir();
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
#include <OS.h>
|
||||
#include <SupportDefs.h>
|
||||
|
||||
#include <StorageDefs.Private.h>
|
||||
|
||||
class BVolume;
|
||||
struct entry_ref;
|
||||
|
||||
@@ -119,9 +117,7 @@ private:
|
||||
bool fLive;
|
||||
port_id fPort;
|
||||
long fToken;
|
||||
BPrivate::Storage::FileDescriptor fQueryFd;
|
||||
int fQueryFd;
|
||||
};
|
||||
|
||||
#endif // _QUERY_H
|
||||
|
||||
|
||||
|
||||
@@ -39,15 +39,6 @@ public:
|
||||
BSymLink(const BDirectory *dir, const char *path);
|
||||
virtual ~BSymLink();
|
||||
|
||||
// WORKAROUND
|
||||
// SetTo() methods: Part of a work around until someone has an idea how to
|
||||
// get BPrivate::Storage::read_link(FileDescriptor,...) to work.
|
||||
status_t SetTo(const entry_ref *ref);
|
||||
status_t SetTo(const BEntry *entry);
|
||||
status_t SetTo(const char *path);
|
||||
status_t SetTo(const BDirectory *dir, const char *path);
|
||||
void Unset();
|
||||
|
||||
ssize_t ReadLink(char *buf, size_t size);
|
||||
|
||||
ssize_t MakeLinkedPath(const char *dirPath, BPath *path);
|
||||
@@ -55,11 +46,6 @@ public:
|
||||
|
||||
bool IsAbsolute();
|
||||
|
||||
// WORKAROUND
|
||||
// operator=(): Part of a work around until someone has an idea how to
|
||||
// get BPrivate::Storage::read_link(FileDescriptor,...) to work.
|
||||
BSymLink &operator=(const BSymLink &link);
|
||||
|
||||
private:
|
||||
virtual void _MissingSymLink1();
|
||||
virtual void _MissingSymLink2();
|
||||
@@ -68,15 +54,11 @@ private:
|
||||
virtual void _MissingSymLink5();
|
||||
virtual void _MissingSymLink6();
|
||||
|
||||
// WORKAROUND
|
||||
// fSecretEntry: Part of a work around until someone has an idea how to
|
||||
// get BPrivate::Storage::read_link(FileDescriptor,...) to work.
|
||||
// uint32 _reservedData[4];
|
||||
uint32 _reservedData[3];
|
||||
uint32 _reservedData[4];
|
||||
BEntry *fSecretEntry;
|
||||
|
||||
private:
|
||||
BPrivate::Storage::FileDescriptor get_fd() const;
|
||||
int get_fd() const;
|
||||
};
|
||||
|
||||
#ifdef USE_OPENBEOS_NAMESPACE
|
||||
@@ -84,5 +66,3 @@ private:
|
||||
#endif
|
||||
|
||||
#endif // _SYM_LINK_H
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user