comparison rvinterf/etmsync/fileio.c @ 595:e6fe9d25377a

fc-fsio: rm-subtree command implemented
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 04 Feb 2020 05:30:59 +0000
parents a0754c98fc2b
children 74d284add54d
comparison
equal deleted inserted replaced
594:2c75cf810146 595:e6fe9d25377a
355 result->sequence = rvi_msg[23] | rvi_msg[24] << 8; 355 result->sequence = rvi_msg[23] | rvi_msg[24] << 8;
356 result->updates = rvi_msg[25] | rvi_msg[26] << 8; 356 result->updates = rvi_msg[25] | rvi_msg[26] << 8;
357 return(0); 357 return(0);
358 } 358 }
359 359
360 do_xlstat_notfoundok(pathname, found, result)
361 char *pathname;
362 int *found;
363 struct stat_info *result;
364 {
365 u_char cmdpkt[MAX_PKT_TO_TARGET], *dp;
366 int rc, slen;
367
368 slen = strlen(pathname);
369 if (slen >= TMFFS_STRING_SIZE) {
370 printf("error: pathname arg exceeds string length limit\n");
371 return(ERROR_USAGE);
372 }
373 dp = cmdpkt + 1;
374 *dp++ = ETM_FFS2;
375 *dp++ = TMFFS_XLSTAT;
376 *dp++ = slen + 1;
377 strcpy(dp, pathname);
378 dp += slen + 1;
379 rc = etm_pkt_exch(cmdpkt, dp - cmdpkt - 1);
380 if (rc)
381 return(rc);
382 if (rvi_msg[3] == TMFFS_ERR_NOTFOUND) {
383 *found = 0;
384 return(0);
385 }
386 if (rvi_msg[3]) {
387 report_ffs_err("xlstat", rvi_msg[3]);
388 return(ERROR_TARGET);
389 }
390 if (rvi_msg_len != 30 || rvi_msg[4] != 24) {
391 printf("error: xlstat response has wrong length\n");
392 return(ERROR_TARGET);
393 }
394 *found = 1;
395 result->type = rvi_msg[5];
396 result->flags = rvi_msg[6];
397 result->inode = rvi_msg[7] | rvi_msg[8] << 8;
398 result->size = rvi_msg[9] | rvi_msg[10] << 8 | rvi_msg[11] << 16 |
399 rvi_msg[12] << 24;
400 result->space = rvi_msg[13] | rvi_msg[14] << 8 | rvi_msg[15] << 16 |
401 rvi_msg[16] << 24;
402 result->location = rvi_msg[17] | rvi_msg[18] << 8 | rvi_msg[19] << 16 |
403 rvi_msg[20] << 24;
404 result->block = rvi_msg[22];
405 result->sequence = rvi_msg[23] | rvi_msg[24] << 8;
406 result->updates = rvi_msg[25] | rvi_msg[26] << 8;
407 return(0);
408 }
409
360 do_mkdir_existok(pathname) 410 do_mkdir_existok(pathname)
361 char *pathname; 411 char *pathname;
362 { 412 {
363 u_char cmdpkt[MAX_PKT_TO_TARGET], *dp; 413 u_char cmdpkt[MAX_PKT_TO_TARGET], *dp;
364 int rc, slen; 414 int rc, slen;