Mercurial > nomad > old-fuse
changeset 107:3d3088f7e176
common: allow XDR encoding of vector clocks
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Signed-off-by: Holly Sipek <holly.sipek@gmail.com>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Sat, 17 Oct 2015 16:37:42 -0400 |
parents | d1b40f1a89a6 |
children | 869d71b4e5da |
files | src/common/include/nomad/vclock.h src/common/vclock.c |
diffstat | 2 files changed, 17 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/common/include/nomad/vclock.h Sat Oct 17 16:35:10 2015 -0400 +++ b/src/common/include/nomad/vclock.h Sat Oct 17 16:37:42 2015 -0400 @@ -24,6 +24,7 @@ #define __NOMAD_VCLOCK_H #include <stdint.h> +#include <rpc/rpc.h> /* version vector */ #define NVCLOCK_NUM_NODES 16 /* ought to be enough for everyone */ @@ -61,4 +62,6 @@ extern int nvclock_set(struct nvclock *clock, uint64_t seq); extern int nvclock_inc(struct nvclock *clock); +extern bool_t xdr_nvclock(XDR *xdrs, struct nvclock *clock); + #endif
--- a/src/common/vclock.c Sat Oct 17 16:35:10 2015 -0400 +++ b/src/common/vclock.c Sat Oct 17 16:37:42 2015 -0400 @@ -411,3 +411,17 @@ ASSERT(0); return 0xbad; /* pacify gcc */ } + +bool_t xdr_nvclock(XDR *xdrs, struct nvclock *clock) +{ + int i; + + for (i = 0; i < NVCLOCK_NUM_NODES; i++) { + if (!xdr_uint64_t(xdrs, &clock->ent[i].node)) + return FALSE; + if (!xdr_uint64_t(xdrs, &clock->ent[i].seq)) + return FALSE; + } + + return TRUE; +}