summaryrefslogtreecommitdiffstats
path: root/ldap/servers/slapd/bitset.c
blob: 5bdc5291cdd1e38a7770915bbe9978c2251e2a32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/** BEGIN COPYRIGHT BLOCK
 * Copyright 2001 Sun Microsystems, Inc.
 * Portions copyright 1999, 2001-2003 Netscape Communications Corporation.
 * All rights reserved.
 * END COPYRIGHT BLOCK **/

unsigned char
slapi_setbit_uchar(unsigned char f,unsigned char bitnum)
{
    return (f | ((unsigned char)1 << bitnum));
}

unsigned char
slapi_unsetbit_uchar(unsigned char f,unsigned char bitnum)
{
/* TEMPORARY WORKAROUND FOR x86 compiler problem on solaris
 *   return (f & (~((unsigned char)1 << bitnum)));
 */
      unsigned char t;
    t = f & (~((unsigned char)1 << bitnum));
    return(t);
}

int
slapi_isbitset_uchar(unsigned char f,unsigned char bitnum)
{
    return (f & ((unsigned char)1 << bitnum));
}


unsigned int
slapi_setbit_int(unsigned int f,unsigned int bitnum)
{
    return (f | ((unsigned int)1 << bitnum));
}

unsigned int
slapi_unsetbit_int(unsigned int f,unsigned int bitnum)
{
    return (f & (~((unsigned int)1 << bitnum)));
}

int
slapi_isbitset_int(unsigned int f,unsigned int bitnum)
{
    return (f & ((unsigned int)1 << bitnum));
}