git: 9front

ref: 05e8587eb03c55e7e58a4845b7f2d8e348465b80
dir: /sys/man/2/venti-zero/

View raw version
.TH VENTI-ZERO 2
.SH NAME
vtzerotruncate, vtzeroextend, vtzeroscore \- Venti block truncation
.SH SYNOPSIS
.ft L
#include <u.h>
.br
#include <libc.h>
.br
#include <venti.h>
.ta +\w'\fLuint 'u
.PP
.B
uint	vtzerotruncate(int type, uchar *buf, uint size)
.PP
.B
void	vtzeroextend(int type, uchar *buf, uint size, uint newsize)
.PP
.B
extern uchar vtzeroscore[VtScoreSize];
.SH DESCRIPTION
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.
.PP
.I Vtzerotruncate
returns the size of the 
.IR size -byte
buffer pointed to by
.I buf
ignoring trailing zeros or zero scores,
according to the given
.IR type .
.PP
.I Vtzeroextend
pads
.I buf
with zeros or zero scores,
according to the given
.IR type ,
to grow it from
.I size
bytes to
.I newsize
bytes.
.PP
.I Vtzeroscore
is the score of the zero-length block.
.SH SOURCE
.B /sys/src/libventi/zero.c
.br
.B /sys/src/libventi/zeroscore.c
.SH SEE ALSO
.IR venti (2),
.IR venti (6)