Annotation of researchv10no/cmd/worm/scsi/warm.c, revision 1.1.1.1

1.1       root        1: #define        _POSIX_SOURCE
                      2: #include       <stddef.h>
                      3: #include       <stdlib.h>
                      4: #include       <stdio.h>
                      5: #include       <unistd.h>
                      6: #include       <string.h>
                      7: #include       "jukeface.h"
                      8: #include       "jukebox.h"
                      9: 
                     10: j_warm(Jukebox *j, char *buf)
                     11: {
                     12:        int side, i;
                     13:        int drive, sh;
                     14:        char vol_id[512];
                     15:        
                     16:        if(j_rdshelves(j, buf)) /* read in shelf names */
                     17:                return(-1);
                     18:        drive = j->nluns-1;
                     19:        if(j_shstatus(j, buf))  /* get the jukebox status */
                     20:                return(-1);
                     21:        for(;;){
                     22:                for(sh = 0; sh < j->nshelves; sh++)
                     23:                        if(j->shelves[sh] == 0) break;
                     24:                if(sh >= j->nshelves)
                     25:                        break;
                     26:                if((i = j_load_unloaded(drive, buf)) < 0)
                     27:                        return(-1);
                     28:                if(i == 0)
                     29:                        break;          /* no more disks */
                     30:                if(j_dr_to_sh(drive, sh, SIDEA, buf))
                     31:                        return(-1);
                     32:                if(getvol(sh, drive, vol_id, &side)){
                     33:                        strcpy(buf, vol_id);
                     34:                        return(-1);
                     35:                }
                     36:                printf("%s -> %d\n", vol_id, sh);
                     37:                if(j_dr_to_sh(drive, sh, side, buf) < 0)
                     38:                        return(-1);
                     39:                j_wrshelf = 1;
                     40:                j->names[sh] = strdup(vol_id);
                     41:                j->shelves[sh] = 1;
                     42:                sleep(3);
                     43:        }
                     44:        return(0);
                     45: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.