rename region_info to region_metadata

pull/65/head
Daniel Micay 2018-10-14 21:54:23 -04:00
parent a083ff79e1
commit 1190966846
1 changed files with 17 additions and 17 deletions

View File

@ -41,7 +41,7 @@ static union {
void *slab_region_start; void *slab_region_start;
void *slab_region_end; void *slab_region_end;
struct region_allocator *region_allocator; struct region_allocator *region_allocator;
struct region_info *regions[2]; struct region_metadata *regions[2];
atomic_bool initialized; atomic_bool initialized;
}; };
char padding[PAGE_SIZE]; char padding[PAGE_SIZE];
@ -530,7 +530,7 @@ static inline void deallocate_small(void *p, const size_t *expected_size) {
mutex_unlock(&c->lock); mutex_unlock(&c->lock);
} }
struct region_info { struct region_metadata {
void *p; void *p;
size_t size; size_t size;
size_t guard_size; size_t guard_size;
@ -546,7 +546,7 @@ static const size_t max_region_table_size = CLASS_REGION_SIZE / PAGE_SIZE;
struct region_allocator { struct region_allocator {
struct mutex lock; struct mutex lock;
struct region_info *regions; struct region_metadata *regions;
size_t total; size_t total;
size_t free; size_t free;
struct quarantine_info quarantine_random[REGION_QUARANTINE_RANDOM_SIZE]; struct quarantine_info quarantine_random[REGION_QUARANTINE_RANDOM_SIZE];
@ -604,19 +604,19 @@ static size_t hash_page(void *p) {
static int regions_grow(void) { static int regions_grow(void) {
struct region_allocator *ra = ro.region_allocator; struct region_allocator *ra = ro.region_allocator;
if (ra->total > SIZE_MAX / sizeof(struct region_info) / 2) { if (ra->total > SIZE_MAX / sizeof(struct region_metadata) / 2) {
return 1; return 1;
} }
size_t newtotal = ra->total * 2; size_t newtotal = ra->total * 2;
size_t newsize = newtotal * sizeof(struct region_info); size_t newsize = newtotal * sizeof(struct region_metadata);
size_t mask = newtotal - 1; size_t mask = newtotal - 1;
if (newtotal > max_region_table_size) { if (newtotal > max_region_table_size) {
return 1; return 1;
} }
struct region_info *p = ra->regions == ro.regions[0] ? struct region_metadata *p = ra->regions == ro.regions[0] ?
ro.regions[1] : ro.regions[0]; ro.regions[1] : ro.regions[0];
if (memory_protect_rw(p, newsize)) { if (memory_protect_rw(p, newsize)) {
@ -634,7 +634,7 @@ static int regions_grow(void) {
} }
} }
memory_map_fixed(ra->regions, ra->total * sizeof(struct region_info)); memory_map_fixed(ra->regions, ra->total * sizeof(struct region_metadata));
ra->free = ra->free + ra->total; ra->free = ra->free + ra->total;
ra->total = newtotal; ra->total = newtotal;
ra->regions = p; ra->regions = p;
@ -664,7 +664,7 @@ static int regions_insert(void *p, size_t size, size_t guard_size) {
return 0; return 0;
} }
static struct region_info *regions_find(void *p) { static struct region_metadata *regions_find(void *p) {
struct region_allocator *ra = ro.region_allocator; struct region_allocator *ra = ro.region_allocator;
size_t mask = ra->total - 1; size_t mask = ra->total - 1;
@ -677,7 +677,7 @@ static struct region_info *regions_find(void *p) {
return (r == p && r != NULL) ? &ra->regions[index] : NULL; return (r == p && r != NULL) ? &ra->regions[index] : NULL;
} }
static void regions_delete(struct region_info *region) { static void regions_delete(struct region_metadata *region) {
struct region_allocator *ra = ro.region_allocator; struct region_allocator *ra = ro.region_allocator;
size_t mask = ra->total - 1; size_t mask = ra->total - 1;
@ -765,7 +765,7 @@ COLD static void init_slow_path(void) {
} }
ra->regions = ro.regions[0]; ra->regions = ro.regions[0];
ra->total = INITIAL_REGION_TABLE_SIZE; ra->total = INITIAL_REGION_TABLE_SIZE;
if (memory_protect_rw(ra->regions, ra->total * sizeof(struct region_info))) { if (memory_protect_rw(ra->regions, ra->total * sizeof(struct region_metadata))) {
fatal_error("failed to unprotect memory for regions table"); fatal_error("failed to unprotect memory for regions table");
} }
@ -866,7 +866,7 @@ static void deallocate_large(void *p, const size_t *expected_size) {
struct region_allocator *ra = ro.region_allocator; struct region_allocator *ra = ro.region_allocator;
mutex_lock(&ra->lock); mutex_lock(&ra->lock);
struct region_info *region = regions_find(p); struct region_metadata *region = regions_find(p);
if (region == NULL) { if (region == NULL) {
fatal_error("invalid free"); fatal_error("invalid free");
} }
@ -941,7 +941,7 @@ EXPORT void *h_realloc(void *old, size_t size) {
struct region_allocator *ra = ro.region_allocator; struct region_allocator *ra = ro.region_allocator;
mutex_lock(&ra->lock); mutex_lock(&ra->lock);
struct region_info *region = regions_find(old); struct region_metadata *region = regions_find(old);
if (region == NULL) { if (region == NULL) {
fatal_error("invalid realloc"); fatal_error("invalid realloc");
} }
@ -968,7 +968,7 @@ EXPORT void *h_realloc(void *old, size_t size) {
regions_quarantine_deallocate_pages(new_guard_end, old_rounded_size - rounded_size, 0); regions_quarantine_deallocate_pages(new_guard_end, old_rounded_size - rounded_size, 0);
mutex_lock(&ra->lock); mutex_lock(&ra->lock);
struct region_info *region = regions_find(old); struct region_metadata *region = regions_find(old);
if (region == NULL) { if (region == NULL) {
fatal_error("invalid realloc"); fatal_error("invalid realloc");
} }
@ -986,7 +986,7 @@ EXPORT void *h_realloc(void *old, size_t size) {
memory_unmap(guard_end, extra); memory_unmap(guard_end, extra);
} else { } else {
mutex_lock(&ra->lock); mutex_lock(&ra->lock);
struct region_info *region = regions_find(old); struct region_metadata *region = regions_find(old);
if (region == NULL) { if (region == NULL) {
fatal_error("invalid realloc"); fatal_error("invalid realloc");
} }
@ -1005,7 +1005,7 @@ EXPORT void *h_realloc(void *old, size_t size) {
} }
mutex_lock(&ra->lock); mutex_lock(&ra->lock);
struct region_info *region = regions_find(old); struct region_metadata *region = regions_find(old);
if (region == NULL) { if (region == NULL) {
fatal_error("invalid realloc"); fatal_error("invalid realloc");
} }
@ -1166,7 +1166,7 @@ EXPORT size_t h_malloc_usable_size(void *p) {
struct region_allocator *ra = ro.region_allocator; struct region_allocator *ra = ro.region_allocator;
mutex_lock(&ra->lock); mutex_lock(&ra->lock);
struct region_info *region = regions_find(p); struct region_metadata *region = regions_find(p);
if (p == NULL) { if (p == NULL) {
fatal_error("invalid malloc_usable_size"); fatal_error("invalid malloc_usable_size");
} }
@ -1192,7 +1192,7 @@ EXPORT size_t h_malloc_object_size(void *p) {
struct region_allocator *ra = ro.region_allocator; struct region_allocator *ra = ro.region_allocator;
mutex_lock(&ra->lock); mutex_lock(&ra->lock);
struct region_info *region = regions_find(p); struct region_metadata *region = regions_find(p);
size_t size = p == NULL ? SIZE_MAX : region->size; size_t size = p == NULL ? SIZE_MAX : region->size;
mutex_unlock(&ra->lock); mutex_unlock(&ra->lock);