Now uses the DoublyLinked::List class instead of the C list stuff.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5016 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2003-10-14 00:26:04 +00:00
parent 52f5e4a81b
commit c3e36ff498
3 changed files with 11 additions and 9 deletions

View File

@ -12,7 +12,7 @@
namespace boot {
class Partition : public partition_data, public Node {
class Partition : public Node, public partition_data {
public:
Partition(int deviceFD);
virtual ~Partition();
@ -31,13 +31,11 @@ class Partition : public partition_data, public Node {
Partition *Parent() const { return fParent; }
bool IsFileSystem() const { return fIsFileSystem; }
static size_t LinkOffset() { return sizeof(partition_data); }
private:
void SetParent(Partition *parent) { fParent = parent; }
int fFD;
list fChildren;
NodeList fChildren;
Partition *fParent;
bool fIsFileSystem;
};

View File

@ -7,7 +7,7 @@
#include <SupportDefs.h>
#include <util/list.h>
#include <boot/vfs.h>
struct stage2_args;
@ -39,8 +39,8 @@ namespace boot {
// these functions have to be implemented in C++
extern status_t platform_get_boot_device(struct stage2_args *args, Node **_device);
extern status_t platform_add_block_devices(struct stage2_args *args, struct list *devicesList);
extern status_t platform_get_boot_partition(struct stage2_args *args, struct list *partitions,
extern status_t platform_add_block_devices(struct stage2_args *args, NodeList *devicesList);
extern status_t platform_get_boot_partition(struct stage2_args *args, NodeList *partitions,
boot::Partition **_partition);
#endif

View File

@ -8,7 +8,7 @@
#include <SupportDefs.h>
#include <util/list.h>
#include <util/DoublyLinkedList.h>
#include <boot/stage2_args.h>
@ -34,11 +34,15 @@ class Node {
status_t Acquire();
status_t Release();
DoublyLinked::Link fLink;
protected:
list_link fLink;
int32 fRefCount;
};
typedef DoublyLinked::List<Node> NodeList;
typedef DoublyLinked::Iterator<Node> NodeIterator;
class Directory : public Node {
public: