/* * Example of mrd_initialize(3mrd). The command usage is: * * mrd_init robot_name * * It has been observed on an empty TL820 with all the * bin-packs in place that this command takes just under * 23 minutes. */ #ifndef lint static char SccsId[] = "@(#)mrd_init.c 1.2 3/5/97" ; #endif #include <stdio.h> #include <stdlib.h> #include <mrd_common.h> #include <mrd_message.h> main(int argc, char *argv[]) { int status ; /* Status from mrd_inject(3mrd) */ char *robot ; /* The name of the robot */ char log_info[MRD_MAX_LOG_STRING+1] ; /* error string */ /* * Accept one required argument; robot name */ if( argc < 2 ) { printf("usage: %s robot\n", argv[0]) ; exit(1) ; } /* * Just use this directly from the command line. */ robot = argv[1] ; /* * Because this routine can take a long time we'll * provide some positive feed-back that is doing * something. */ printf("Reinventory library %s...", robot); fflush(stdout) ; /* * Call the function. Because this routine can take a */ status = mrd_initialize(robot, log_info) ; /* * Done. */ putchar('\n') ; /* * Print an error message if there is a failure. The * routine mrd_strstatus(3mrd) will accept an MRD * error status and return the corresponding string. * If the log_info data has something other than a * NULL as the first character print it as well. It * typically be the SCSI sense data or a operating * system specific message for the error. */ if( status != MRD_STATUS_SUCCESS ) printf("Initialize failed: %s: %s.\n", mrd_strstatus(status), log_info[0] ? log_info : "none") ; return 0 ; }