Annotation of researchv9/sys/boot/stand/chklabel.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * @(#)chklabel.c 1.1 86/02/03 Copyright (c) 1985 by Sun Microsystems, Inc.
                      3:  */
                      4: 
                      5: #include <sys/types.h>
                      6: #include <sun/dklabel.h>
                      7: 
                      8: char msg_nolabel[] = "No label found - attempting boot anyway.\n";
                      9: 
                     10: /*
                     11:  * Checks a disk label, returns 0 for success, 1 for failure.
                     12:  * If the magic number is right but the checksum is wrong, prints
                     13:  * "Corrupt label" error message, otherwise is silent.
                     14:  */
                     15: chklabel(label)
                     16:        register struct dk_label *label;
                     17: {
                     18:        register int count, sum = 0;
                     19:        register short *sp;
                     20: 
                     21:        if (label->dkl_magic != DKL_MAGIC)
                     22:                return (1);
                     23:        count = sizeof (struct dk_label) / sizeof (short);
                     24:        sp = (short *)label;
                     25:        while (count--) 
                     26:                sum ^= *sp++;
                     27:        if (sum != 0) {
                     28:                printf("Corrupt label\n");
                     29:                return (1);
                     30:        }
                     31:        return (0);
                     32: }

unix.superglobalmegacorp.com

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