~ibmcharmers/charms/xenial/ibm-db2/trunk

« back to all changes in this revision

Viewing changes to .tox/py35/include/python3.5m/bitset.h

  • Committer: Rajith Venkata
  • Date: 2017-02-22 09:37:48 UTC
  • Revision ID: rajith.pv@in.ibm.com-20170222093748-fibtdsahuug31ra5
2ndcheckin for IBM-DB2 charm

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
#ifndef Py_BITSET_H
 
3
#define Py_BITSET_H
 
4
#ifdef __cplusplus
 
5
extern "C" {
 
6
#endif
 
7
 
 
8
/* Bitset interface */
 
9
 
 
10
#define BYTE            char
 
11
 
 
12
typedef BYTE *bitset;
 
13
 
 
14
bitset newbitset(int nbits);
 
15
void delbitset(bitset bs);
 
16
#define testbit(ss, ibit) (((ss)[BIT2BYTE(ibit)] & BIT2MASK(ibit)) != 0)
 
17
int addbit(bitset bs, int ibit); /* Returns 0 if already set */
 
18
int samebitset(bitset bs1, bitset bs2, int nbits);
 
19
void mergebitset(bitset bs1, bitset bs2, int nbits);
 
20
 
 
21
#define BITSPERBYTE     (8*sizeof(BYTE))
 
22
#define NBYTES(nbits)   (((nbits) + BITSPERBYTE - 1) / BITSPERBYTE)
 
23
 
 
24
#define BIT2BYTE(ibit)  ((ibit) / BITSPERBYTE)
 
25
#define BIT2SHIFT(ibit) ((ibit) % BITSPERBYTE)
 
26
#define BIT2MASK(ibit)  (1 << BIT2SHIFT(ibit))
 
27
#define BYTE2BIT(ibyte) ((ibyte) * BITSPERBYTE)
 
28
 
 
29
#ifdef __cplusplus
 
30
}
 
31
#endif
 
32
#endif /* !Py_BITSET_H */