]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - contrib/ipfilter/lib/count6bits.c
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / contrib / ipfilter / lib / count6bits.c
1 /*      $FreeBSD$       */
2
3 /*
4  * Copyright (C) 2000-2001 by Darren Reed.
5  *
6  * See the IPFILTER.LICENCE file for details on licencing.
7  *
8  * $Id: count6bits.c,v 1.4.4.1 2006/06/16 17:20:57 darrenr Exp $
9  */
10
11 #include "ipf.h"
12
13
14 int count6bits(msk)
15 u_32_t *msk;
16 {
17         int i = 0, k;
18         u_32_t j;
19
20         for (k = 3; k >= 0; k--)
21                 if (msk[k] == 0xffffffff)
22                         i += 32;
23                 else {
24                         for (j = msk[k]; j; j <<= 1)
25                                 if (j & 0x80000000)
26                                         i++;
27                 }
28         return i;
29 }