Implemented vfs_get_file_map() and vfs_lookup_vnode().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29393 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -144,6 +144,14 @@ HaikuKernelVolume::UndoPublishVNode(HaikuKernelNode* node)
|
||||
}
|
||||
|
||||
|
||||
// NodeWithID
|
||||
HaikuKernelNode*
|
||||
HaikuKernelVolume::NodeWithID(ino_t vnodeID) const
|
||||
{
|
||||
return fNodes->Get(vnodeID);
|
||||
}
|
||||
|
||||
|
||||
// #pragma mark -
|
||||
// #pragma mark ----- FS -----
|
||||
|
||||
|
||||
@@ -33,6 +33,8 @@ public:
|
||||
void UndoNewVNode(HaikuKernelNode* node);
|
||||
void UndoPublishVNode(HaikuKernelNode* node);
|
||||
|
||||
HaikuKernelNode* NodeWithID(ino_t vnodeID) const;
|
||||
|
||||
// FS
|
||||
virtual status_t Mount(const char* device, uint32 flags,
|
||||
const char* parameters, ino_t* rootID);
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
// beos_kernel_emu.cpp
|
||||
/*
|
||||
* Copyright 2009, Ingo Weinhold, [email protected].
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
@@ -12,6 +15,7 @@
|
||||
|
||||
#include "Debug.h"
|
||||
|
||||
#include "../FileSystem.h"
|
||||
#include "../kernel_emu.h"
|
||||
|
||||
#include "HaikuKernelNode.h"
|
||||
@@ -251,16 +255,29 @@ status_t
|
||||
vfs_get_file_map(struct vnode *vnode, off_t offset, size_t size,
|
||||
struct file_io_vec *vecs, size_t *_count)
|
||||
{
|
||||
// TODO: Implement!
|
||||
return B_BAD_VALUE;
|
||||
HaikuKernelNode* node = (HaikuKernelNode*)vnode;
|
||||
|
||||
return node->volume->GetFileMap(node, offset, size, vecs, _count);
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
vfs_lookup_vnode(dev_t mountID, ino_t vnodeID, struct vnode **_vnode)
|
||||
{
|
||||
// TODO: Implement!
|
||||
return B_BAD_VALUE;
|
||||
// get the volume
|
||||
HaikuKernelVolume* volume = dynamic_cast<HaikuKernelVolume*>(
|
||||
FileSystem::GetInstance()->VolumeWithID(mountID));
|
||||
if (volume == NULL)
|
||||
return B_BAD_VALUE;
|
||||
|
||||
// get the node
|
||||
HaikuKernelNode* node = volume->NodeWithID(vnodeID);
|
||||
if (node == NULL)
|
||||
return B_BAD_VALUE;
|
||||
|
||||
*_vnode = (struct vnode*)node;
|
||||
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user