* nothing to do with anything remotely narcissistic.
*
* A set bit at layer N indicates a full word at layer N-1, and so forth. As
- * the bitmap becomes progressively more full, checking for existance
+ * the bitmap becomes progressively more full, checking for existence
* becomes cheaper (since fewer layers are walked, making it a lot more
* cache friendly) and locating the next free space likewise.
*
#include "../arch/arch.h"
#include "axmap.h"
-#include "../smalloc.h"
#include "../minmax.h"
#if BITS_PER_LONG == 64
#error "Number of arch bits unknown"
#endif
-#define BLOCKS_PER_UNIT (1UL << UNIT_SHIFT)
+#define BLOCKS_PER_UNIT (1U << UNIT_SHIFT)
#define BLOCKS_PER_UNIT_MASK (BLOCKS_PER_UNIT - 1)
#define firstfree_valid(b) ((b)->first_free != (uint64_t) -1)
return;
for (i = 0; i < axmap->nr_levels; i++)
- sfree(axmap->levels[i].map);
+ free(axmap->levels[i].map);
- sfree(axmap->levels);
- sfree(axmap);
+ free(axmap->levels);
+ free(axmap);
}
struct axmap *axmap_new(unsigned long nr_bits)
struct axmap *axmap;
unsigned int i, levels;
- axmap = smalloc(sizeof(*axmap));
+ axmap = malloc(sizeof(*axmap));
if (!axmap)
return NULL;
}
axmap->nr_levels = levels;
- axmap->levels = smalloc(axmap->nr_levels * sizeof(struct axmap_level));
+ axmap->levels = malloc(axmap->nr_levels * sizeof(struct axmap_level));
axmap->nr_bits = nr_bits;
for (i = 0; i < axmap->nr_levels; i++) {
al->level = i;
al->map_size = (nr_bits + BLOCKS_PER_UNIT - 1) >> UNIT_SHIFT;
- al->map = smalloc(al->map_size * sizeof(unsigned long));
+ al->map = malloc(al->map_size * sizeof(unsigned long));
if (!al->map)
goto err;
err:
for (i = 0; i < axmap->nr_levels; i++)
if (axmap->levels[i].map)
- sfree(axmap->levels[i].map);
+ free(axmap->levels[i].map);
- sfree(axmap->levels);
+ free(axmap->levels);
+ free(axmap);
return NULL;
}
return (uint64_t) -1ULL;
}
-uint64_t axmap_first_free(struct axmap *axmap)
+static uint64_t axmap_first_free(struct axmap *axmap)
{
if (firstfree_valid(axmap))
return axmap->first_free;