embox
1/**
2* @file
3* @brief
4*
5* @date 09.10.12
6* @author Anton Bondarev
7* @author Ilia Vaprol
8*/
9
10#include <assert.h>11#include <limits.h>12#include <stddef.h>13#include <string.h>14
15#include <util/binalign.h>16
17#include "index_priv.h"18
19void index_init(struct indexator *ind, size_t start, size_t capacity,20void *data) {21assert(ind);22assert(data);23assert(capacity);24assert(start + capacity != INDEX_NONE);25
26ind->last = INDEX_NONE;27ind->min = ind->next = ind->start = ind->clamp_min = start;28ind->max = ind->prev = ind->end = ind->clamp_max = start + capacity - 1;29
30ind->mask = (unsigned long *)data;31memset(data, 0, binalign_bound(capacity, CHAR_BIT) / CHAR_BIT);32}
33