ft_malloc/inc/malloc.h

54 lines
910 B
C

#ifndef MALLOC_H
# define MALLOC_H
# include <stdlib.h>
# include <unistd.h>
# include <sys/mman.h>
# include <pthread.h>
// TODO Remove me (printf)
# include <stdio.h>
#define MAX_ALIGNMENT 16
typedef struct s_block t_block;
typedef struct s_zone t_zone;
struct s_block {
size_t size;
int free;
t_block *next;
};
struct s_zone {
t_block *head;
t_zone *next;
};
typedef struct s_zones {
size_t pagesize;
size_t max_align;
size_t tiny_block_max_size;
size_t small_block_max_size;
t_zone *tiny_zones;
t_zone *small_zones;
t_block *large_blocks;
} t_zones;
extern pthread_mutex_t g_malloc_mutex;
extern t_zones g_zones;
void *malloc(size_t size);
void free(void *ptr);
void *realloc(void *ptr, size_t size);
void show_alloc_mem(void);
void show_alloc_mem_ex(void);
void show_alloc_sizes(void);
static void init_malloc(void);
void init_tiny_zones(void);
void init_small_zones(void);
#endif