Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/feature_posix/sys/man/2/venti-client – Rev 34

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
.TH VENTI-CLIENT 2
2
.SH NAME
3
vtconnect, vthello, vtread, vtwrite, vtreadpacket, vtwritepacket, vtsync, vtping, vtrpc, ventidoublechecksha1 \- Venti client
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'\fLPacket* 'u +\w'\fLxxxxxxxx'u
12
.PP
13
.B
14
Packet*	vtrpc(VtConn *z, Packet *p)
15
.PP
16
.B
17
int	vthello(VtConn *z)
18
.PP
19
.B
20
int	vtconnect(VtConn *z)
21
.PP
22
.B
23
int	vtread(VtConn *z, uchar score[VtScoreSize],
24
.br
25
.B
26
		uint type, uchar *buf, int n)
27
.PP
28
.B
29
int	vtwrite(VtConn *z, uchar score[VtScoreSize],
30
.br
31
.B
32
		uint type, uchar *buf, int n)
33
.PP
34
.B
35
Packet*	vtreadpacket(VtConn *z, uchar score[VtScoreSize],
36
.br
37
.B
38
		uint type, int n)
39
.PP
40
.B
41
int	vtwritepacket(VtConn *z, uchar score[VtScoreSize],
42
.br
43
.B
44
		uint type, Packet *p)
45
.PP
46
.B
47
int	vtsync(VtConn *z)
48
.PP
49
.B
50
int	vtping(VtConn *z)
51
.PP
52
.B
53
extern int ventidoublechecksha1;  /* default 1 */
54
.SH DESCRIPTION
55
These routines execute the client side of the 
56
.IR venti (6)
57
protocol.
58
.PP
59
.I Vtrpc
60
executes a single Venti RPC transaction, sending the request 
61
packet
62
.IR p
63
and then waiting for and returning the response packet.
64
.I Vtrpc
65
will set the tag in the packet.
66
.I Vtrpc
67
frees
68
.IR p ,
69
even on error.
70
.I Vtrpc
71
is typically called only indirectly, via the functions below.
72
.PP
73
.I Vthello
74
executes a
75
.B hello
76
transaction, setting
77
.IB z ->sid
78
to the name used by the server.
79
.I Vthello
80
is typically called only indirectly, via
81
.IR vtconnect .
82
.PP
83
.I Vtconnect
84
calls
85
.I vtversion
86
(see
87
.IR venti-conn (2))
88
and
89
.IR vthello ,
90
in that order, returning success only
91
if both succeed.
92
This sequence (calling 
93
.I vtversion
94
and then
95
.IR vthello )
96
must be done before the functions below can be called.
97
.PP
98
.I Vtread
99
reads the block with the given
100
.I score
101
and
102
.I type
103
from the server,
104
stores the returned data
105
in memory at
106
.IR buf ,
107
and returns the number of bytes read.
108
If the server's block has size larger than
109
.IR n ,
110
.I vtread 
111
does not modify
112
.I buf
113
and
114
returns an error.
115
.PP
116
.I Vtwrite
117
writes the
118
.I n
119
bytes in 
120
.I buf
121
as a block of the given
122
.IR type ,
123
setting 
124
.IR score .
125
.PP
126
.I Vtreadpacket
127
and
128
.I vtwritepacket
129
are like
130
.I vtread
131
and
132
.I vtwrite
133
but return or accept the block contents in the
134
form of a
135
.BR Packet .
136
They avoid making a copy of the data.
137
.PP
138
.I Vtsync
139
causes the server to flush all pending write requests
140
to disk before returning.
141
.PP
142
.I Vtping
143
executes a ping transaction with the server.
144
.PP
145
By default,
146
.I vtread
147
and
148
.I vtreadpacket
149
check that the SHA1 hash of the returned data 
150
matches the requested
151
.IR score ,
152
and
153
.I vtwrite
154
and
155
.I vtwritepacket
156
check that the returned
157
.I score
158
matches the SHA1 hash of the written data.
159
Setting
160
.I ventidoublechecksha1
161
to zero disables these extra checks,
162
mainly for benchmarking purposes.
163
Doing so in production code is not recommended.
164
.PP
165
These functions can be called from multiple threads
166
or procs simultaneously to issue requests 
167
in parallel.
168
Programs that issue requests from multiple threads
169
in the same proc should start separate procs running
170
.I vtsendproc
171
and
172
.I vtrecvproc
173
as described in
174
.IR venti-conn (2).
175
.SH SOURCE
176
.B /sys/src/libventi
177
.SH SEE ALSO
178
.IR venti (2),
179
.IR venti-conn (2),
180
.IR venti-packet (2),
181
.IR venti (6)
182
.SH DIAGNOSTICS
183
.I Vtrpc
184
and
185
.I vtpacket
186
return nil on error.
187
The other routines return \-1 on error.
188
.PP
189
.I Vtwrite
190
returns 0 on success: there are no partial writes.