CHDK_DE Vorschauversion  Trunk Rev. 5273
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
bitvector.h-Dateireferenz
+ Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

gehe zum Quellcode dieser Datei

Datenstrukturen

struct  _bit_vector
 

Typdefinitionen

typedef struct _bit_vector bit_vector_t
 

Funktionen

bit_vector_tbv_create (int len, int nbits)
 
void bv_set (const bit_vector_t *bm, int pos, int val)
 
void bv_set2 (const bit_vector_t *bm, int pos, int val)
 
void bv_set4 (const bit_vector_t *bm, int pos, int val)
 
int bv_get (const bit_vector_t *bm, int pos) __attribute__((pure))
 
void bv_free (bit_vector_t *bm)
 

Dokumentation der benutzerdefinierten Typen

typedef struct _bit_vector bit_vector_t

Dokumentation der Funktionen

bit_vector_t* bv_create ( int  len,
int  nbits 
)

Definiert in Zeile 5 der Datei bitvector.c.

6 {
8  if (bm == NULL)
9  return NULL;
10 
11  bm->ptrLen = len * nbits / 8 + 1;
12  bm->nElem = len;
13  bm->nBits = nbits;
14  bm->ptr = malloc(bm->ptrLen);
15  if (bm->ptr == NULL)
16  {
17  free(bm);
18  return NULL;
19  }
20 
21  return bm;
22 }
void bv_free ( bit_vector_t bm)

Definiert in Zeile 100 der Datei bitvector.c.

101 {
102  if (bm)
103  {
104  if (bm->ptr)
105  {
106  free(bm->ptr);
107  bm->ptr = NULL;
108  }
109 
110  free(bm);
111  }
112 }
int bv_get ( const bit_vector_t bm,
int  pos 
)

Definiert in Zeile 86 der Datei bitvector.c.

87 {
88  int ret = 0;
89  int i = bm->nBits - 1;
90  int bitpos = pos * bm->nBits;
91  do
92  {
93  ret |= (bv_getbit(bm, bitpos + i) << i);
94  }while(--i >= 0);
95 
96  return ret;
97 }
void bv_set ( const bit_vector_t bm,
int  pos,
int  val 
)

Definiert in Zeile 46 der Datei bitvector.c.

47 {
48  int i = bm->nBits - 1;
49  int bitpos = pos * bm->nBits;
50  do
51  {
52  bv_setbit(bm, bitpos + i, val & (1<<i));
53  }while(--i >= 0);
54 }
void bv_set2 ( const bit_vector_t bm,
int  pos,
int  val 
)

Definiert in Zeile 58 der Datei bitvector.c.

59 {
60  int i;
61  int bitpos = pos * bm->nBits;
62  for (i = 0; i < bm->nBits; ++i)
63  {
64  int t = val & (1<<i);
65  bv_setbit(bm, bitpos + i, t);
66  bv_setbit(bm, bitpos + i + bm->nBits, t);
67  }
68 }
void bv_set4 ( const bit_vector_t bm,
int  pos,
int  val 
)

Definiert in Zeile 72 der Datei bitvector.c.

73 {
74  int i;
75  int bitpos = pos * bm->nBits;
76  for (i = 0; i < bm->nBits; ++i)
77  {
78  int t = val & (1 << i);
79  bv_setbit(bm, bitpos + i, t);
80  bv_setbit(bm, bitpos + i + bm->nBits, t);
81  bv_setbit(bm, bitpos + i + bm->nBits * 2, t);
82  bv_setbit(bm, bitpos + i + bm->nBits * 3, t);
83  }
84 }