From b302c77c1b90e34beb1ffc2a31f5ee30752cc1b2 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Wed, 11 Mar 2009 02:08:03 +0000 Subject: [PATCH] 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 --- headers/private/userlandfs/private/Requests.h | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/headers/private/userlandfs/private/Requests.h b/headers/private/userlandfs/private/Requests.h index b2e3f2692a..ac94a24585 100644 --- a/headers/private/userlandfs/private/Requests.h +++ b/headers/private/userlandfs/private/Requests.h @@ -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;