xref: /csrg-svn/sbin/disklabel/dkcksum.c (revision 61480)
146490Sbostic /*-
2*61480Sbostic  * Copyright (c) 1991, 1993
3*61480Sbostic  *	The Regents of the University of California.  All rights reserved.
446490Sbostic  *
546490Sbostic  * %sccs.include.redist.c%
646490Sbostic  */
746490Sbostic 
846490Sbostic #ifndef lint
9*61480Sbostic static char sccsid[] = "@(#)dkcksum.c	8.1 (Berkeley) 06/05/93";
1046490Sbostic #endif /* not lint */
1146490Sbostic 
1246490Sbostic #include <sys/types.h>
1346490Sbostic #include <sys/disklabel.h>
1446490Sbostic 
1546490Sbostic u_short
dkcksum(lp)1646490Sbostic dkcksum(lp)
1746490Sbostic 	register struct disklabel *lp;
1846490Sbostic {
1946490Sbostic 	register u_short *start, *end;
2046490Sbostic 	register u_short sum = 0;
2146490Sbostic 
2246490Sbostic 	start = (u_short *)lp;
2346490Sbostic 	end = (u_short *)&lp->d_partitions[lp->d_npartitions];
2446490Sbostic 	while (start < end)
2546490Sbostic 		sum ^= *start++;
2646490Sbostic 	return (sum);
2746490Sbostic }
28