vtzerotruncate, vtzeroextend, vtzeroscore - Venti block truncation
#include <u.h>
#include <libc.h>
#include <venti.h>
uint vtzerotruncate(int type, uchar *buf, uint size)
void vtzeroextend(int type, uchar *buf, uint size, uint newsize)
extern uchar vtzeroscore[VtScoreSize];
These utility functions compute how to truncate or replace trailing zeros (for
data blocks) or trailing zero scores (for pointer blocks) to canonicalize the
blocks before storing them to Venti.
Vtzerotruncate returns the size of the
size-byte buffer pointed to
by
buf ignoring trailing zeros or zero scores, according to the given
type.
Vtzeroextend pads
buf with zeros or zero scores, according to the
given
type, to grow it from
size bytes to
newsize bytes.
Vtzeroscore is the score of the zero-length block.
/src/libventi/zero.c
/src/libventi/zeroscore.c
venti(3),
venti(7)