Commons Library  1.7.0
Cargando...
Buscando...
Nada coincide
bitarray.h
Ir a la documentación de este archivo.
1/*
2 * Copyright (C) 2012 Sistemas Operativos - UTN FRBA. All rights reserved.
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#ifndef BITARRAY_H_
18#define BITARRAY_H_
19
20 #include <stdbool.h>
21 #include <limits.h>
22 #include <unistd.h>
23
29 /* position of bit within character */
30 #define BIT_CHAR(bit) ((bit) / CHAR_BIT)
31
43
48 typedef struct {
49 char *bitarray;
50 size_t size;
52 } t_bitarray;
53
69 t_bitarray *bitarray_create(char *bitarray, size_t size) __attribute__((deprecated));
70
83 t_bitarray *bitarray_create_with_mode(char *bitarray, size_t size, bit_numbering_t mode);
84
88 bool bitarray_test_bit(t_bitarray*, off_t bit_index);
89
93 void bitarray_set_bit(t_bitarray*, off_t bit_index);
94
98 void bitarray_clean_bit(t_bitarray*, off_t bit_index);
99
104
109
110#endif /* BITARRAY_H_ */
t_bitarray * bitarray_create(char *bitarray, size_t size)
Crea y devuelve un puntero a una estructura t_bitarray con formato LSB_FIRST.
t_bitarray * bitarray_create_with_mode(char *bitarray, size_t size, bit_numbering_t mode)
Crea y devuelve un puntero a una estructura t_bitarray.
size_t bitarray_get_max_bit(t_bitarray *)
Devuelve la cantidad de bits en el bitarray.
bool bitarray_test_bit(t_bitarray *, off_t bit_index)
Devuelve el valor del bit de la posicion indicada.
void bitarray_set_bit(t_bitarray *, off_t bit_index)
Setea el valor del bit de la posicion indicada.
bit_numbering_t
Define el orden bajo el cual se guardarán los bits a la hora de llenar los bytes.
Definition bitarray.h:39
@ MSB_FIRST
Completa los bits en un byte priorizando el bit más significativo: 10000000 00000000.
Definition bitarray.h:41
@ LSB_FIRST
Completa los bits en un byte priorizando el bit menos significativo: 00000001 00000000.
Definition bitarray.h:40
void bitarray_destroy(t_bitarray *)
Destruye el bit array.
void bitarray_clean_bit(t_bitarray *, off_t bit_index)
Limpia el valor del bit de la posicion indicada.
Manipulación de un bloque de memoria a nivel de bits. Inicializar con bitarray_create_with_mode()
Definition bitarray.h:48
char * bitarray
Definition bitarray.h:49
size_t size
Definition bitarray.h:50
bit_numbering_t mode
Definition bitarray.h:51