Bladeren bron

Added broken code

Thomas Johnson 5 maanden geleden
bovenliggende
commit
4338b8ca5e
3 gewijzigde bestanden met toevoegingen van 38 en 1 verwijderingen
  1. 1
    1
      Makefile
  2. 13
    0
      alloc_api.h
  3. 24
    0
      main.c

+ 1
- 1
Makefile Bestand weergeven

@@ -18,7 +18,7 @@ $(OUT_NAME): $(objs)
18 18
 clean:
19 19
 	rm -f *.o $(OUT_NAME)
20 20
 
21
-main.o: main.c
21
+main.o: main.c alloc_api.h
22 22
 	$(CC) $(CFLAGS) -c main.c -o main.o
23 23
 
24 24
 tree_alloc.o: tree_alloc.c allocator_internal.h

+ 13
- 0
alloc_api.h Bestand weergeven

@@ -0,0 +1,13 @@
1
+
2
+#include <stdint.h>
3
+
4
+struct Arena {
5
+  void *root_freespace;
6
+  void *root_treealloc;
7
+  void *(*get_new_region)(uintptr_t);
8
+  void (*error)(char*);
9
+};
10
+
11
+void unalloc(struct Arena *arena, void *addr);
12
+void *alloc(struct Arena *arena, uintptr_t size, uintptr_t align);
13
+

+ 24
- 0
main.c Bestand weergeven

@@ -1,6 +1,30 @@
1 1
 #include <stdio.h>
2
+#include <stdint.h>
3
+#include <stddef.h>
4
+#include <unistd.h>
5
+#include <sys/mman.h>
6
+
7
+#include "alloc_api.h"
8
+
9
+void *get_new_region(uintptr_t size) {
10
+  void *m = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
11
+  if (m == MAP_FAILED) {
12
+    return 0;
13
+  }
14
+  return m;
15
+}
16
+
17
+void error(char *msg) {
18
+  printf("=== ALLOCATOR ERROR ===\n%s\n====== END ERROR ======\n", msg);
19
+}
2 20
 
3 21
 int main() {
4 22
 	printf("Hello, World!\n");
23
+  struct Arena arena = {
24
+    NULL,
25
+    NULL,
26
+    get_new_region,
27
+    error,
28
+  };
5 29
 	return 0;
6 30
 }

Laden…
Annuleren
Opslaan