Dillo v3.1.1-46-g8a360e32
Loading...
Searching...
No Matches
bitvec.h
Go to the documentation of this file.
1#ifndef __BITVEC_H__
2#define __BITVEC_H__
3
4#include "d_size.h"
5
6#define BVEC_TYPE uchar_t
7#define BVEC_SIZE sizeof(BVEC_TYPE)
8
9typedef struct {
11 int len; /* number of bits [1 based] */
12} bitvec_t;
13
14
15/*
16 * Function prototypes
17 */
18bitvec_t *a_Bitvec_new(int bits);
19void a_Bitvec_free(bitvec_t *bvec);
20int a_Bitvec_get_bit(bitvec_t *bvec, int pos);
21void a_Bitvec_set_bit(bitvec_t *bvec, int pos);
22void a_Bitvec_clear(bitvec_t *bvec);
23
24/*
25#define a_Bitvec_get_bit(bvec,pos) \
26 ((bvec)->vec[(pos)/BVEC_SIZE] & 1 << (pos) % BVEC_SIZE)
27
28#define a_Bitvec_set_bit(bvec,pos) \
29 ((bvec)->vec[(pos)/BVEC_SIZE] |= 1 << (pos) % BVEC_SIZE)
30*/
31#define a_Bitvec_clear_bit(bvec,pos) \
32 ((bvec)->vec[(pos)/BVEC_SIZE] &= ~(1 << (pos) % BVEC_SIZE))
33
34
35#endif /* __BITVEC_H__ */
void a_Bitvec_clear(bitvec_t *bvec)
Clear a bitvec.
Definition bitvec.c:35
void a_Bitvec_set_bit(bitvec_t *bvec, int pos)
Set a bit.
Definition bitvec.c:63
bitvec_t * a_Bitvec_new(int bits)
Create a new bitvec with 'num_bits' size.
Definition bitvec.c:23
void a_Bitvec_free(bitvec_t *bvec)
Free a bitvec.
Definition bitvec.c:43
int a_Bitvec_get_bit(bitvec_t *bvec, int pos)
Get a bit.
Definition bitvec.c:54
#define BVEC_TYPE
Definition bitvec.h:6
BVEC_TYPE * vec
Definition bitvec.h:10
int len
Definition bitvec.h:11