initial commit

This commit is contained in:
mykola2312 2022-05-24 20:01:43 +03:00
commit c89021d72f
3 changed files with 40 additions and 0 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
build/

5
CMakeLists.txt Normal file
View file

@ -0,0 +1,5 @@
cmake_minimum_required(VERSION 3.10)
project(heap C)
set(CMAKE_C_FLAGS -m32)
add_executable(heap heap.c)

34
heap.c Normal file
View file

@ -0,0 +1,34 @@
#include <stdio.h>
#include <stdint.h>
#define cu_round2_up(val,bit) (((val>>bit) + !!(val&((1<<bit)-1)) ) << bit)
typedef struct {
void* start;
unsigned int size;
} mheap_t;
typedef struct {
void* prev;
unsigned int size;
} mblock_t;
#define MBLOCK_ALLOCATED (1<<0)
void heap_init(mheap_t* heap, void* start, unsigned int size)
{
heap->start = start;
heap->size = size;
mblock_t* block = (mblock_t*)heap->start;
block->prev = NULL;
block->size = size;
}
int main()
{
printf("mblock_t\t%u\n", sizeof(mblock_t));
return 0;
}