X-Git-Url: http://xvm.mit.edu/gitweb/invirt/third/libt4.git/blobdiff_plain/5d99dbf06a14904944f5593c63705934bdfdcfb7..ba03b19875aa2e3586e49b10904563cdd3b91de0:/rpc/marshall.h diff --git a/rpc/marshall.h b/rpc/marshall.h index d7f1dff..ecf16f7 100644 --- a/rpc/marshall.h +++ b/rpc/marshall.h @@ -2,6 +2,7 @@ #define marshall_h #include "types.h" +#include "rpc_protocol.h" // for structs or classes containing a MEMBERS declaration class marshall; @@ -20,37 +21,12 @@ unmarshall & operator>>(unmarshall &u, _c_ &x) { _d_ y; u.rawbytes(&y, sizeof(_d #define MARSHALL_RAW_NETWORK_ORDER(_c_) MARSHALL_RAW_NETWORK_ORDER_AS(_c_, _c_) -using proc_t = uint32_t; -using status_t = int32_t; - -struct request_header { - int xid; - proc_t proc; - unsigned int clt_nonce; - unsigned int srv_nonce; - int xid_rep; - - MEMBERS(xid, proc, clt_nonce, srv_nonce, xid_rep) -}; - FORWARD_MARSHALLABLE(request_header) ENDIAN_SWAPPABLE(request_header) -struct reply_header { - int xid; - int ret; - - MEMBERS(xid, ret) -}; - FORWARD_MARSHALLABLE(reply_header) ENDIAN_SWAPPABLE(reply_header) -typedef int rpc_sz_t; - -const size_t RPC_HEADER_SZ = max(sizeof(request_header), sizeof(reply_header)) + sizeof(rpc_sz_t); -const size_t DEFAULT_RPC_SZ = 1024; // size of initial buffer allocation - // Template parameter pack expansion is not allowed in certain contexts, but // brace initializers (for instance, calls to constructors of empty structs) // are fair game.