venti-zero 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. .TH VENTI-ZERO 2
  2. .SH NAME
  3. vtzerotruncate, vtzeroextend, vtzeroscore \- Venti block truncation
  4. .SH SYNOPSIS
  5. .ft L
  6. #include <u.h>
  7. .br
  8. #include <libc.h>
  9. .br
  10. #include <venti.h>
  11. .ta +\w'\fLuint 'u
  12. .PP
  13. .B
  14. uint vtzerotruncate(int type, uchar *buf, uint size)
  15. .PP
  16. .B
  17. void vtzeroextend(int type, uchar *buf, uint size, uint newsize)
  18. .PP
  19. .B
  20. extern uchar vtzeroscore[VtScoreSize];
  21. .SH DESCRIPTION
  22. These utility functions compute how to truncate or replace
  23. trailing zeros (for data blocks) or trailing zero scores
  24. (for pointer blocks) to canonicalize the blocks before
  25. storing them to Venti.
  26. .PP
  27. .I Vtzerotruncate
  28. returns the size of the
  29. .IR size -byte
  30. buffer pointed to by
  31. .I buf
  32. ignoring trailing zeros or zero scores,
  33. according to the given
  34. .IR type .
  35. .PP
  36. .I Vtzeroextend
  37. pads
  38. .I buf
  39. with zeros or zero scores,
  40. according to the given
  41. .IR type ,
  42. to grow it from
  43. .I size
  44. bytes to
  45. .I newsize
  46. bytes.
  47. .PP
  48. .I Vtzeroscore
  49. is the score of the zero-length block.
  50. .SH SOURCE
  51. .B /sys/src/libventi/zero.c
  52. .br
  53. .B /sys/src/libventi/zeroscore.c
  54. .SH SEE ALSO
  55. .IR venti (2),
  56. .IR venti (6)