Added public io_request_is_vip(), returning whether the given request has the
VIP flag set. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37678 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -20,6 +20,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
bool io_request_is_write(const io_request* request);
|
||||
bool io_request_is_vip(const io_request* request);
|
||||
off_t io_request_offset(const io_request* request);
|
||||
off_t io_request_length(const io_request* request);
|
||||
status_t read_from_io_request(io_request* request, void* buffer,
|
||||
|
||||
@@ -1228,6 +1228,7 @@ Volume::DoIO(void* _node, void* cookie, io_request* ioRequest)
|
||||
request->offset = ioRequest->Offset();
|
||||
request->length = ioRequest->Length();
|
||||
request->isWrite = ioRequest->IsWrite();
|
||||
request->isVIP = (ioRequest->Flags() & B_VIP_IO_REQUEST) != 0;
|
||||
|
||||
// send the request
|
||||
KernelRequestHandler handler(this, DO_IO_REPLY);
|
||||
|
||||
@@ -15,13 +15,16 @@ struct IORequestInfo {
|
||||
size_t length;
|
||||
int32 id;
|
||||
bool isWrite;
|
||||
bool isVIP;
|
||||
|
||||
IORequestInfo(int32 id, bool isWrite, off_t offset, size_t length)
|
||||
IORequestInfo(int32 id, bool isWrite, off_t offset, size_t length,
|
||||
bool isVIP)
|
||||
:
|
||||
offset(offset),
|
||||
length(length),
|
||||
id(id),
|
||||
isWrite(isWrite)
|
||||
isWrite(isWrite),
|
||||
isVIP(isVIP)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -30,7 +33,8 @@ struct IORequestInfo {
|
||||
offset(other.offset),
|
||||
length(other.length),
|
||||
id(other.id),
|
||||
isWrite(other.isWrite)
|
||||
isWrite(other.isWrite),
|
||||
isVIP(other.isVIP)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
@@ -572,7 +572,7 @@ UserlandRequestHandler::_HandleRequest(DoIORequest* request)
|
||||
if (result == B_OK) {
|
||||
RequestThreadContext context(volume, request);
|
||||
IORequestInfo requestInfo(request->request, request->isWrite,
|
||||
request->offset, request->length);
|
||||
request->offset, request->length, request->isVIP);
|
||||
result = volume->DoIO(request->node, request->fileCookie, requestInfo);
|
||||
}
|
||||
|
||||
|
||||
@@ -343,6 +343,13 @@ io_request_is_write(const io_request* request)
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
io_request_is_vip(const io_request* request)
|
||||
{
|
||||
return ((HaikuKernelIORequest*)request)->isVIP;
|
||||
}
|
||||
|
||||
|
||||
off_t
|
||||
io_request_offset(const io_request* request)
|
||||
{
|
||||
|
||||
@@ -52,6 +52,14 @@ io_request_is_write(const io_request* request)
|
||||
}
|
||||
|
||||
|
||||
/*! Returns whether the I/O request has VIP status. */
|
||||
bool
|
||||
io_request_is_vip(const io_request* request)
|
||||
{
|
||||
return (request->Flags() & B_VIP_IO_REQUEST) != 0;
|
||||
}
|
||||
|
||||
|
||||
/*! Returns the read/write offset of the given I/O request.
|
||||
This is the immutable offset the request was created with;
|
||||
read_from_io_request() and write_to_io_request() don't change it.
|
||||
|
||||
Reference in New Issue
Block a user