2 * RX OSD interface description
9 %#include <rx/rx_null.h>
11 /* prototype for pseudo-RPC call */
12 %char *RXOSD_TranslateOpCode(afs_int32 code);
14 %#define OSD_SERVER_PORT htons(7011) /* as MR-AFS remioserver */
15 %#define OSD_SERVICE_PORT htons(0)
16 %#define OSD_SERVICE_ID 900 /* same as REMIOSRV for MR-AFS */
19 %#define RXOSD_RESTARTING -100
21 %#ifndef OSD_WAIT_FOR_TAPE
22 %#define OSD_WAIT_FOR_TAPE 1096
25 %#define T10_CDB_SIZE 200
27 typedef opaque t10rock<T10_CDB_SIZE>;
29 %#define CAPCRYPTLEN 72
79 typedef struct osd_incdec osd_incdecList <>;
95 typedef struct osd_obj_desc osd_obj_descList <>;
97 struct osd_segm_desc {
100 afs_uint32 stripe_size;
101 osd_obj_descList objList;
103 typedef struct osd_segm_desc osd_segm_descList <>;
105 struct rxosd_fetch_entry {
110 afs_uint32 fileserver;
111 struct osd_segm_descList list;
113 typedef struct rxosd_fetch_entry rxosd_fetch_entryList<>;
115 %#define TAPE_FETCH 1
117 %#define SET_FILE_READY 3
120 afs_uint32 Requestor;
121 afs_uint32 TimeStamp;
124 afs_uint32 Uniquifier;
129 typedef FetchEntry FetchEntryList<>;
131 struct WipeCandidate {
137 typedef WipeCandidate WipeCandidateList<>;
145 typedef activerpc activerpcList<>;
155 typedef rxosd_stat rxosd_statList<>;
161 create_part (IN afs_uint64 part_id) = 1;
163 create (IN afs_uint64 part_id,
164 IN afs_uint64 from_id,
165 OUT afs_uint64 *obj_id) = 2;
167 hardlink (IN afs_uint64 from_part,
168 IN afs_uint64 from_id,
169 IN afs_uint64 to_part,
171 OUT afs_uint64 *obj_id) = 3;
173 write (IN t10rock rock,
174 IN afs_uint64 part_id,
175 IN afs_uint64 obj_id,
176 IN afs_uint64 offset,
177 IN afs_uint64 length) split = 4;
179 write_keep (IN afs_uint64 part_id,
180 IN afs_uint64 obj_id,
181 IN afs_uint64 offset,
182 IN afs_uint64 length,
184 IN afs_uint32 mtime) split = 5;
186 writePS (IN t10rock rock,
187 IN afs_uint64 part_id,
188 IN afs_uint64 obj_id,
189 IN afs_uint64 offset,
190 IN afs_uint64 length,
191 IN afs_uint32 stripe_size,
192 IN afs_uint32 nstripes,
193 IN afs_uint32 mystripe) split = 6;
195 read (IN t10rock rock,
196 IN afs_uint64 part_id,
197 IN afs_uint64 obj_id,
198 IN afs_uint64 offset,
199 IN afs_uint64 length) split = 7;
201 readPS (IN t10rock rock,
202 IN afs_uint64 part_id,
203 IN afs_uint64 obj_id,
204 IN afs_uint64 offset,
205 IN afs_uint64 length,
206 IN afs_uint32 stripe_size,
207 IN afs_uint32 nstripes,
208 IN afs_uint32 mystripe) split = 8;
210 truncate (IN afs_uint64 part_id,
211 IN afs_uint64 obj_id,
212 IN afs_uint64 length) = 9;
214 incdec (IN afs_uint64 part_id,
215 IN afs_uint64 obj_id,
216 IN afs_int32 diff) = 10;
218 bulkincdec (INOUT osd_incdecList *list) = 11;
220 remove_part (IN afs_uint64 part_id) = 12;
222 list (IN afs_uint64 part_id,
223 IN afs_uint64 start_id) split = 13;
225 examine (IN afs_uint64 part_id,
226 IN afs_uint64 obj_id,
227 OUT afs_uint64 *size,
228 OUT afs_uint32 *linkcount,
229 OUT afs_uint32 *mtime,
230 OUT afs_uint32 *atime) = 14;
232 examineHSM (IN afs_uint64 part_id,
233 IN afs_uint64 obj_id,
234 OUT afs_uint64 *size,
235 OUT afs_uint32 *linkcount,
236 OUT afs_uint32 *time,
237 OUT afs_int32 *status) = 15;
239 list_part (IN afs_uint64 start_id) split = 16;
241 copy (IN afs_uint64 from_part,
242 IN afs_uint64 to_part,
243 IN afs_uint64 from_id,
245 IN afs_uint32 to_osd) = 17;
247 CopyOnWrite (IN afs_uint64 part_id,
248 IN afs_uint64 from_id,
250 IN afs_uint64 length,
252 OUT afs_uint64 *obj_id) = 18;
254 Dummy (IN afs_uint32 in,
255 OUT afs_uint32 *out) = 19;
257 md5sum (IN afs_uint64 part_id,
258 IN afs_uint64 obj_id,
259 OUT struct osd_md5 *md5) = 20;
261 create_archive (IN afs_uint64 part_id,
262 IN afs_uint64 from_id,
263 IN struct osd_segm_descList *list,
264 OUT struct osd_md5 *output) = 21;
266 restore_archive (IN afs_uint64 part_id,
267 IN afs_uint64 obj_id,
269 IN struct osd_segm_descList *listi,
270 OUT osd_md5 *output) = 22;
272 close_file (IN afs_uint64 part_id,
273 IN afs_uint64 obj_id) = 23;
275 fetchqueue (OUT FetchEntryList *list) = 24;
277 wipe_candidates (IN afs_uint32 lun,
279 IN afs_uint32 algorithm,
282 OUT WipeCandidateList *list) = 25;
284 Variable (IN afs_int32 cmd,
287 OUT afs_int64 *result) = 26;
289 threads (OUT struct activerpcList *list) = 27;
291 statistic (IN afs_int32 reset,
292 OUT afs_uint32 *since,
293 OUT afs_uint64 *received,
294 OUT afs_uint64 *sent,
295 OUT rxosd_statList *stat,
296 OUT struct rxosd_kbps *kbpsrcvd,
297 OUT struct rxosd_kbps *kbpssent) = 28;
299 setatime (IN afs_uint64 part_id,
300 IN afs_uint64 obj_id,
302 IN afs_uint32 mtime) = 29;
304 updatecounters (IN afs_uint64 bytes_rcvd,
305 IN afs_uint64 bytes_sent) = 30;
307 write_to_hpss (IN afs_uint64 part_id,
308 IN afs_uint64 obj_id,
309 IN struct osd_segm_descList *list,
310 OUT osd_md5 *output) = 31;
312 read_from_hpss (IN afs_uint64 part_id,
313 IN afs_uint64 obj_id,
314 IN struct osd_segm_descList *list,
315 OUT osd_md5 *output) = 32;