aci_getvolsertodrive 4-69 21 Dec 2001 Figure 4-58 Example of the aci_getvolertodrive Function /* Display volumes reserved for a drive*/ int rc, i, num; char *Drive = "Drive1"; struct aci_voltodrive_entry *drive_inf[ACI_MAX_RANGES]; rc = aci_getvolsertodrive( Drive, num, drive_inf); if( rc ) { aci_perror( "Command failed: " ); } else for (i = 0; i < ACI_MAX_RANGES; i++) { if ( *drive_inf[i]->volser == '\0' ) break; printf( "drive:%s Volser Range%d\n", drive_inf[i]->Drive, drive_inf[i]->VolserRange ); } /* Display volumes reserved for a drive*/ int rc, i, num; char *Drive = "Drive1"; struct aci_voltodrive_entry *drive_inf[ACI_MAX_RANGES]; rc = aci_getvolsertodrive( Drive, num, drive_inf); if( rc ) { aci_perror( "Command failed: " ); } else for (i = 0; i < ACI_MAX_RANGES; i++) { if ( *drive_inf[i]->volser == '\0' ) break; printf( "drive:%s Volser Range%d\n", drive_inf[i]->Drive, drive_inf[i]->VolserRange ); } struct aci_sideinfo { char cVolumeSide; char szVolser[ACI_VOLSER_LEN]; } struct aci_sideinfo { char cVolumeSide; char szVolser[ACI_VOLSER_LEN]; } Figure 4-60 Structure of Type aci_sideinfo The define ‘ACI_SIDE_NUMBER’ parameter is set, in aci.h, to 2. See Table 4-27. Table 4-27 Parameters for the aci_getvolsertoside Function Call Parameter Description volser name of the volser, for which information is requested aci_sideinfo information returned for the selected volser CVolumeside • A: for the Volser located on the top label • B: for the Volser located on the bottom label on the cartridge sZVolser Volser from the AMU database Return Values • 0: The call was successful • -1: The call failed The external variable d_errno is set to one of the following DAS error codes • ERPC • EINVALID • ENOVOLUME • ENOTAUTH • ETIMEOUT • ESWITCHINPROG • ENODOUBLESIDE Refer to Figure 4-61 on page 4-72 for an example of the aci_getvolsertoside function. aci_getVolserToSide 4-71 21 Dec 2001 /* Display volsers for the optical disk*/ int rc = 0; char *volser = "00815F"; struct aci_sideinfo *sideinfo[ACI_SIDE_NUMBER]; rc = aci_getvolsertoside( volser, sideinfo); if( rc ) { aci_perror( "Command failed: " ); } else printf( "Side:%s Volser:%d\n", side_info[0]->Side, side_info[0]->Volser, side_info[1]->Side, side_info[1]->Volser); } Figure 4-62 aci_init Function Call Most clients wish to start from a known status, the aci_init call is provided so that an initialization, or restart, of a client may request that any resources previously held are freed. Normally this call can be placed in the initialization of the client code. This function requests that the DAS server dismount any occupied drives defined to the requesting client. For additional information, refer to aci_initialize on page 4-74. #include "aci.h" int aci_init( void ) Return Values • 0: The call was successful. • -1: The call failed. The external variable d_errno is set to one of the following DAS error codes: • ERPC • EINVALID • EDASINT • EBADCLIENT • EDASINT • ETIMEOUT • ESWITCHINPROG See Figure 4-63 for an example of the aci_init function. /* Initialize client and free drive resources */ int rc = 0; rc = aci_init( ); if( rc ) { aci_perror( "ACI failed initialization:" ); } Figure 4-63 Example of the aci_init Function aci_init 4-73 21 Dec 2001 aci_initialize The aci_initialize function initializes ACI library for client use. See Figure 4-64. #include "aci.h" int aci_initialize( void ) Figure 4-64 aci_initialize Function Call This function initializes the DAS 3.01 ACI library. This function should be called as the first activity, before the use of any other functions from the ACI library. For additional information, refer to aci_init on page 4-72. Return Values • 0: The call was successful. • -1: The call failed. The external variable d_errno is set to one of the following DAS error codes: • ERPC • EDASINT • EDASINT • ESWITCHINPROG See Figure 4-65 for an example of the aci_initialize function. /* Initialize client, do not change drive state */ int rc = 0; rc = aci_initialize( ); if( rc ) { aci_perror( "ACI failed initialization:" ); } Figure 4-65 Example of the aci_initialize Function 4-74 DAS ACI Functions 601626-B aci_insert The aci_insert function inserts volumes into the AML. See Figure 4-66. #include "aci.h" int aci_insert( char *insert_area, char *volser_ranges, enum aci_media type ) Figure 4-66 aci_insert Function Call This function is for compatibility. Please use the aci_insertgen function. The cartridges which are actually located in the insert area of the AML and registered by the AMU (automatically inventoried after closing the area) will be inserted. • Volsers which already have a entry in the AMU database, will be moved to this position. • Volsers which have no entry in the AMU database, will be moved to the first free slot (AMU database Attribute: "Empty" of this media type of the Type AMU-Dynamic) • Cartridges with an invalid volser (barcode not readable) will moved to the problembox. See Table 4-28 for a description of the parameters for the aci_insert fu...