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
|
#endif
|
||||||
|
|
||||||
bool io_request_is_write(const io_request* request);
|
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_offset(const io_request* request);
|
||||||
off_t io_request_length(const io_request* request);
|
off_t io_request_length(const io_request* request);
|
||||||
status_t read_from_io_request(io_request* request, void* buffer,
|
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->offset = ioRequest->Offset();
|
||||||
request->length = ioRequest->Length();
|
request->length = ioRequest->Length();
|
||||||
request->isWrite = ioRequest->IsWrite();
|
request->isWrite = ioRequest->IsWrite();
|
||||||
|
request->isVIP = (ioRequest->Flags() & B_VIP_IO_REQUEST) != 0;
|
||||||
|
|
||||||
// send the request
|
// send the request
|
||||||
KernelRequestHandler handler(this, DO_IO_REPLY);
|
KernelRequestHandler handler(this, DO_IO_REPLY);
|
||||||
|
|||||||
@@ -15,13 +15,16 @@ struct IORequestInfo {
|
|||||||
size_t length;
|
size_t length;
|
||||||
int32 id;
|
int32 id;
|
||||||
bool isWrite;
|
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),
|
offset(offset),
|
||||||
length(length),
|
length(length),
|
||||||
id(id),
|
id(id),
|
||||||
isWrite(isWrite)
|
isWrite(isWrite),
|
||||||
|
isVIP(isVIP)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,7 +33,8 @@ struct IORequestInfo {
|
|||||||
offset(other.offset),
|
offset(other.offset),
|
||||||
length(other.length),
|
length(other.length),
|
||||||
id(other.id),
|
id(other.id),
|
||||||
isWrite(other.isWrite)
|
isWrite(other.isWrite),
|
||||||
|
isVIP(other.isVIP)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -572,7 +572,7 @@ UserlandRequestHandler::_HandleRequest(DoIORequest* request)
|
|||||||
if (result == B_OK) {
|
if (result == B_OK) {
|
||||||
RequestThreadContext context(volume, request);
|
RequestThreadContext context(volume, request);
|
||||||
IORequestInfo requestInfo(request->request, request->isWrite,
|
IORequestInfo requestInfo(request->request, request->isWrite,
|
||||||
request->offset, request->length);
|
request->offset, request->length, request->isVIP);
|
||||||
result = volume->DoIO(request->node, request->fileCookie, requestInfo);
|
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
|
off_t
|
||||||
io_request_offset(const io_request* request)
|
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.
|
/*! Returns the read/write offset of the given I/O request.
|
||||||
This is the immutable offset the request was created with;
|
This is the immutable offset the request was created with;
|
||||||
read_from_io_request() and write_to_io_request() don't change it.
|
read_from_io_request() and write_to_io_request() don't change it.
|
||||||
|
|||||||
Reference in New Issue
Block a user