Missed that part. The request definitions for the io() and cancel_io() hooks.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29470 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2009-03-11 02:08:03 +00:00
parent f1c6ce08f2
commit b302c77c1b
@@ -54,6 +54,12 @@ enum {
FS_REMOVE_VNODE_REQUEST,
FS_REMOVE_VNODE_REPLY,
// asynchronous I/O
DO_IO_REQUEST,
DO_IO_REPLY,
CANCEL_IO_REQUEST,
CANCEL_IO_REPLY,
// nodes
IOCTL_REQUEST,
IOCTL_REPLY,
@@ -529,6 +535,39 @@ public:
};
// #pragma mark - asynchronous I/O
// DoIORequest
class DoIORequest : public FileRequest {
public:
DoIORequest() : FileRequest(DO_IO_REQUEST) {}
int32 ioRequest;
bool isWrite;
};
// DoIOReply
class DoIOReply : public ReplyRequest {
public:
DoIOReply() : ReplyRequest(DO_IO_REPLY) {}
};
// CancelIORequest
class CancelIORequest : public FileRequest {
public:
CancelIORequest() : FileRequest(CANCEL_IO_REQUEST) {}
int32 ioRequest;
};
// CancelIOReply
class CancelIOReply : public ReplyRequest {
public:
CancelIOReply() : ReplyRequest(CANCEL_IO_REPLY) {}
};
// #pragma mark - nodes
@@ -1777,6 +1816,15 @@ do_for_request(Request* request, Task& task)
return task((FSRemoveVNodeRequest*)request);
case FS_REMOVE_VNODE_REPLY:
return task((FSRemoveVNodeReply*)request);
// asynchronous I/O
case DO_IO_REQUEST:
return task((DoIORequest*)request);
case DO_IO_REPLY:
return task((DoIOReply*)request);
case CANCEL_IO_REQUEST:
return task((CancelIORequest*)request);
case CANCEL_IO_REPLY:
return task((CancelIOReply*)request);
// nodes
case IOCTL_REQUEST:
return task((IOCtlRequest*)request);
@@ -2131,6 +2179,11 @@ using UserlandFSUtil::WriteVNodeRequest;
using UserlandFSUtil::WriteVNodeReply;
using UserlandFSUtil::FSRemoveVNodeRequest;
using UserlandFSUtil::FSRemoveVNodeReply;
// asynchronous I/O
using UserlandFSUtil::DoIORequest;
using UserlandFSUtil::DoIOReply;
using UserlandFSUtil::CancelIORequest;
using UserlandFSUtil::CancelIOReply;
// nodes
using UserlandFSUtil::IOCtlRequest;
using UserlandFSUtil::IOCtlReply;