diff --git a/src/add-ons/kernel/file_systems/nfs4/Jamfile b/src/add-ons/kernel/file_systems/nfs4/Jamfile index f9d1a67401..360f9ec6d3 100644 --- a/src/add-ons/kernel/file_systems/nfs4/Jamfile +++ b/src/add-ons/kernel/file_systems/nfs4/Jamfile @@ -7,5 +7,6 @@ KernelAddon nfs4 : kernel_interface.cpp RPCAuth.cpp RPCCall.cpp + RPCReply.cpp XDR.cpp ; diff --git a/src/add-ons/kernel/file_systems/nfs4/RPCReply.cpp b/src/add-ons/kernel/file_systems/nfs4/RPCReply.cpp new file mode 100644 index 0000000000..b09728a4e3 --- /dev/null +++ b/src/add-ons/kernel/file_systems/nfs4/RPCReply.cpp @@ -0,0 +1,38 @@ +/* + * Copyright 2012 Haiku, Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Paweł Dziepak, pdziepak@quarnos.org + */ + + +#include "RPCReply.h" + +#include + + +using namespace RPC; + + +Reply::Reply(void *buffer, int size) + : + fError(B_OK), + fStream(buffer, size), + fBuffer(buffer) +{ + fXID = fStream.GetUInt(); +#if 0 + int32 type = fStream.GetInt(); + int32 state = fStream.GetInt(); + int32 auth = fStream.GetInt(); + fStream.GetOpaque(NULL); +#endif +} + + +Reply::~Reply() +{ + free(fBuffer); +} + diff --git a/src/add-ons/kernel/file_systems/nfs4/RPCReply.h b/src/add-ons/kernel/file_systems/nfs4/RPCReply.h new file mode 100644 index 0000000000..a383651ea3 --- /dev/null +++ b/src/add-ons/kernel/file_systems/nfs4/RPCReply.h @@ -0,0 +1,60 @@ +/* + * Copyright 2012 Haiku, Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Paweł Dziepak, pdziepak@quarnos.org + */ +#ifndef RPCREPLY_H +#define RPCREPLY_H + + +#include "XDR.h" + + +namespace RPC { + +class Reply { +public: + Reply(void *buffer, int size); + ~Reply(); + + inline uint32 GetXID(); + + inline status_t GetError(); + inline XDR::ReadStream& GetStream(); + +private: + uint32 fXID; + + status_t fError; + + XDR::ReadStream fStream; + void* fBuffer; +}; + +inline uint32 +Reply::GetXID() +{ + return fXID; +} + + +inline status_t +Reply::GetError() +{ + return fError; +} + + +inline XDR::ReadStream& +Reply::GetStream() +{ + return fStream; +} + +} // namespace RPC + + +#endif // RPCREPLY_H +