X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=include%2Flibnfs-private.h;h=ef3b9de3cd9789a52912a249498700bdaa162068;hb=3ca2aac9a4aceac602684847f756428439bf814d;hp=5d4c47b25447049a273017276f2789cb553aae4e;hpb=aec45c6274bffc92fc1595a95d043e8aae292451;p=deb_libnfs.git diff --git a/include/libnfs-private.h b/include/libnfs-private.h index 5d4c47b..ef3b9de 100644 --- a/include/libnfs-private.h +++ b/include/libnfs-private.h @@ -72,6 +72,9 @@ struct rpc_queue { struct rpc_pdu *head, *tail; }; +#define HASHES 1024 +#define NFS_RA_TIMEOUT 5 + struct rpc_context { uint32_t magic; int fd; @@ -91,7 +94,7 @@ struct rpc_context { struct rpc_queue outqueue; struct sockaddr_storage udp_src; - struct rpc_queue waitpdu; + struct rpc_queue waitpdu[HASHES]; uint32_t inpos; uint32_t insize; @@ -113,6 +116,7 @@ struct rpc_context { int tcp_syncnt; int uid; int gid; + uint32_t readahead; }; struct rpc_pdu { @@ -136,6 +140,7 @@ struct rpc_pdu { void rpc_reset_queue(struct rpc_queue *q); void rpc_enqueue(struct rpc_queue *q, struct rpc_pdu *pdu); void rpc_return_to_queue(struct rpc_queue *q, struct rpc_pdu *pdu); +unsigned int rpc_hash_xid(uint32_t xid); struct rpc_pdu *rpc_allocate_pdu(struct rpc_context *rpc, int program, int version, int procedure, rpc_cb cb, void *private_data, zdrproc_t zdr_decode_fn, int zdr_bufsize); void rpc_free_pdu(struct rpc_context *rpc, struct rpc_pdu *pdu); @@ -171,6 +176,7 @@ void rpc_unset_autoreconnect(struct rpc_context *rpc); void rpc_set_tcp_syncnt(struct rpc_context *rpc, int v); void rpc_set_uid(struct rpc_context *rpc, int uid); void rpc_set_gid(struct rpc_context *rpc, int gid); +void rpc_set_readahead(struct rpc_context *rpc, uint32_t v); int rpc_add_fragment(struct rpc_context *rpc, char *data, uint64_t size); void rpc_free_all_fragments(struct rpc_context *rpc);