Added requests for file cache operations. Not used yet.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29394 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2009-03-04 01:27:32 +00:00
parent 02f7a2f4cb
commit 497681ca81
2 changed files with 201 additions and 0 deletions
@@ -205,6 +205,22 @@ enum {
GET_VNODE_REMOVED_REQUEST,
GET_VNODE_REMOVED_REPLY,
// file cache
FILE_CACHE_CREATE_REQUEST,
FILE_CACHE_CREATE_REPLY,
FILE_CACHE_DELETE_REQUEST,
FILE_CACHE_DELETE_REPLY,
FILE_CACHE_SET_ENABLED_REQUEST,
FILE_CACHE_SET_ENABLED_REPLY,
FILE_CACHE_SET_SIZE_REQUEST,
FILE_CACHE_SET_SIZE_REPLY,
FILE_CACHE_SYNC_REQUEST,
FILE_CACHE_SYNC_REPLY,
FILE_CACHE_READ_REQUEST,
FILE_CACHE_READ_REPLY,
FILE_CACHE_WRITE_REQUEST,
FILE_CACHE_WRITE_REPLY,
// general reply
RECEIPT_ACK_REPLY,
@@ -290,6 +306,15 @@ public:
void* queryCookie;
};
// FileCacheRequest
class FileCacheRequest : public Request {
public:
FileCacheRequest(uint32 type) : Request(type) {}
dev_t volumeID;
ino_t vnodeID;
};
// #pragma mark - administrative
@@ -1564,6 +1589,118 @@ public:
};
// #pragma mark - file cache
// FileCacheCreateRequest
class FileCacheCreateRequest : public FileCacheRequest {
public:
FileCacheCreateRequest() : FileCacheRequest(FILE_CACHE_CREATE_REQUEST) {}
size_t size;
};
// FileCacheCreateReply
class FileCacheCreateReply : public ReplyRequest {
public:
FileCacheCreateReply() : ReplyRequest(FILE_CACHE_CREATE_REPLY) {}
};
// FileCacheDeleteRequest
class FileCacheDeleteRequest : public FileCacheRequest {
public:
FileCacheDeleteRequest() : FileCacheRequest(FILE_CACHE_DELETE_REQUEST) {}
};
// FileCacheDeleteReply
class FileCacheDeleteReply : public ReplyRequest {
public:
FileCacheDeleteReply() : ReplyRequest(FILE_CACHE_DELETE_REPLY) {}
};
// FileCacheSetEnabledRequest
class FileCacheSetEnabledRequest : public FileCacheRequest {
public:
FileCacheSetEnabledRequest()
: FileCacheRequest(FILE_CACHE_SET_ENABLED_REQUEST) {}
bool enabled;
};
// FileCacheSetEnabledReply
class FileCacheSetEnabledReply : public ReplyRequest {
public:
FileCacheSetEnabledReply() : ReplyRequest(FILE_CACHE_SET_ENABLED_REPLY) {}
};
// FileCacheSetSizeRequest
class FileCacheSetSizeRequest : public FileCacheRequest {
public:
FileCacheSetSizeRequest() : FileCacheRequest(FILE_CACHE_SET_SIZE_REQUEST) {}
size_t size;
};
// FileCacheSetSizeReply
class FileCacheSetSizeReply : public ReplyRequest {
public:
FileCacheSetSizeReply() : ReplyRequest(FILE_CACHE_SET_SIZE_REPLY) {}
};
// FileCacheSyncRequest
class FileCacheSyncRequest : public FileCacheRequest {
public:
FileCacheSyncRequest() : FileCacheRequest(FILE_CACHE_SYNC_REQUEST) {}
};
// FileCacheSyncReply
class FileCacheSyncReply : public ReplyRequest {
public:
FileCacheSyncReply() : ReplyRequest(FILE_CACHE_SYNC_REPLY) {}
};
// FileCacheReadRequest
class FileCacheReadRequest : public FileCacheRequest {
public:
FileCacheReadRequest() : FileCacheRequest(FILE_CACHE_READ_REQUEST) {}
void* cookie;
off_t pos;
size_t size;
};
// FileCacheReadReply
class FileCacheReadReply : public ReplyRequest {
public:
FileCacheReadReply() : ReplyRequest(FILE_CACHE_READ_REPLY) {}
status_t GetAddressInfos(AddressInfo* infos, int32* count);
Address buffer;
size_t bytesRead;
};
// FileCacheWriteRequest
class FileCacheWriteRequest : public FileCacheRequest {
public:
FileCacheWriteRequest() : FileCacheRequest(FILE_CACHE_WRITE_REQUEST) {}
status_t GetAddressInfos(AddressInfo* infos, int32* count);
void* cookie;
Address buffer;
off_t pos;
};
// FileCacheWriteReply
class FileCacheWriteReply : public ReplyRequest {
public:
FileCacheWriteReply() : ReplyRequest(FILE_CACHE_WRITE_REPLY) {}
size_t bytesWritten;
};
//////////////////
// General Reply
@@ -1887,6 +2024,10 @@ do_for_request(Request* request, Task& task)
return task((PutVNodeRequest*)request);
case PUT_VNODE_REPLY:
return task((PutVNodeReply*)request);
case ACQUIRE_VNODE_REQUEST:
return task((PutVNodeRequest*)request);
case ACQUIRE_VNODE_REPLY:
return task((AcquireVNodeReply*)request);
case NEW_VNODE_REQUEST:
return task((NewVNodeRequest*)request);
case NEW_VNODE_REPLY:
@@ -1907,6 +2048,35 @@ do_for_request(Request* request, Task& task)
return task((GetVNodeRemovedRequest*)request);
case GET_VNODE_REMOVED_REPLY:
return task((GetVNodeRemovedReply*)request);
// file cache
case FILE_CACHE_CREATE_REQUEST:
return task((FileCacheCreateRequest*)request);
case FILE_CACHE_CREATE_REPLY:
return task((FileCacheCreateReply*)request);
case FILE_CACHE_DELETE_REQUEST:
return task((FileCacheDeleteRequest*)request);
case FILE_CACHE_DELETE_REPLY:
return task((FileCacheDeleteReply*)request);
case FILE_CACHE_SET_ENABLED_REQUEST:
return task((FileCacheSetEnabledRequest*)request);
case FILE_CACHE_SET_ENABLED_REPLY:
return task((FileCacheSetEnabledReply*)request);
case FILE_CACHE_SET_SIZE_REQUEST:
return task((FileCacheSetSizeRequest*)request);
case FILE_CACHE_SET_SIZE_REPLY:
return task((FileCacheSetSizeReply*)request);
case FILE_CACHE_SYNC_REQUEST:
return task((FileCacheSyncRequest*)request);
case FILE_CACHE_SYNC_REPLY:
return task((FileCacheSyncReply*)request);
case FILE_CACHE_READ_REQUEST:
return task((FileCacheReadRequest*)request);
case FILE_CACHE_READ_REPLY:
return task((FileCacheReadReply*)request);
case FILE_CACHE_WRITE_REQUEST:
return task((FileCacheWriteRequest*)request);
case FILE_CACHE_WRITE_REPLY:
return task((FileCacheWriteReply*)request);
// general reply
case RECEIPT_ACK_REPLY:
return task((ReceiptAckReply*)request);
@@ -2102,6 +2272,21 @@ using UserlandFSUtil::UnremoveVNodeRequest;
using UserlandFSUtil::UnremoveVNodeReply;
using UserlandFSUtil::GetVNodeRemovedRequest;
using UserlandFSUtil::GetVNodeRemovedReply;
// file cache
using UserlandFSUtil::FileCacheCreateRequest;
using UserlandFSUtil::FileCacheCreateReply;
using UserlandFSUtil::FileCacheDeleteRequest;
using UserlandFSUtil::FileCacheDeleteReply;
using UserlandFSUtil::FileCacheSetEnabledRequest;
using UserlandFSUtil::FileCacheSetEnabledReply;
using UserlandFSUtil::FileCacheSetSizeRequest;
using UserlandFSUtil::FileCacheSetSizeReply;
using UserlandFSUtil::FileCacheSyncRequest;
using UserlandFSUtil::FileCacheSyncReply;
using UserlandFSUtil::FileCacheReadRequest;
using UserlandFSUtil::FileCacheReadReply;
using UserlandFSUtil::FileCacheWriteRequest;
using UserlandFSUtil::FileCacheWriteReply;
// general reply
using UserlandFSUtil::ReceiptAckReply;
@@ -297,6 +297,22 @@ NotifyQueryRequest::GetAddressInfos(AddressInfo* infos, int32* count)
return B_OK;
}
// FileCacheReadReply
status_t
FileCacheReadReply::GetAddressInfos(AddressInfo* infos, int32* count)
{
ADD_ADDRESS(buffer);
return B_OK;
}
// FileCacheWriteRequest
status_t
FileCacheWriteRequest::GetAddressInfos(AddressInfo* infos, int32* count)
{
ADD_ADDRESS(buffer);
return B_OK;
}
// #pragma mark -