From 3a8ed19bf83f11ff00c4904fab2cc083b7e33478 Mon Sep 17 00:00:00 2001
From: Christian Cunningham <cc@localhost>
Date: Wed, 5 Jan 2022 14:01:29 -0800
Subject: Cleaned up/ Standardized

---
 src/lib/ll.c  | 6 +++---
 src/lib/ll.h  | 8 ++++----
 src/lib/mem.c | 7 ++++++-
 src/lib/q.c   | 6 +++---
 src/lib/q.h   | 8 ++++----
 5 files changed, 20 insertions(+), 15 deletions(-)

(limited to 'src/lib')

diff --git a/src/lib/ll.c b/src/lib/ll.c
index 6d96f45..7f1a47e 100644
--- a/src/lib/ll.c
+++ b/src/lib/ll.c
@@ -1,7 +1,7 @@
 #include "../lib/ll.h"
 #include "../lib/mem.h"
 
-struct LL* new(void* val)
+struct LL* new_ll(void* val)
 {
 	struct LL* ll = (struct LL*)malloc(sizeof(struct LL));
 	ll->prev = ll;
@@ -10,7 +10,7 @@ struct LL* new(void* val)
 	return ll;
 }
 
-void push(struct LL* l, void* val)
+void push_ll(struct LL* l, void* val)
 {
 	struct LL* ll = (struct LL*)malloc(sizeof(struct LL));
 	ll->prev = l->prev;
@@ -20,7 +20,7 @@ void push(struct LL* l, void* val)
 	ll->data = val;
 }
 
-void remove(struct LL* l, unsigned long idx)
+void remove_ll(struct LL* l, unsigned long idx)
 {
 	struct LL* t = l;
 	for(unsigned long i = 0; i < idx; i++) {
diff --git a/src/lib/ll.h b/src/lib/ll.h
index 4a11620..ab4148d 100644
--- a/src/lib/ll.h
+++ b/src/lib/ll.h
@@ -7,11 +7,11 @@ struct LL {
 	void* data;
 };
 
-struct LL* new(void* val);
-void push(struct LL* l, void* val);
-void remove(struct LL* l, unsigned long idx);
+struct LL* new_ll(void* val);
+void push_ll(struct LL* l, void* val);
+void remove_ll(struct LL* l, unsigned long idx);
 
-#define showl(L, TYPE) { \
+#define show_ll(L, TYPE) { \
 	struct LL* t = L; \
 	do { \
 		uart_hex(*(TYPE*)t->data); \
diff --git a/src/lib/mem.c b/src/lib/mem.c
index d738305..2b495ef 100644
--- a/src/lib/mem.c
+++ b/src/lib/mem.c
@@ -73,6 +73,7 @@ void* malloca(unsigned char size, unsigned char amnt)
 		unsigned long diff = (unsigned long)mem + i + 2;
 		diff %= amnt;
 		diff = amnt - diff;
+		diff %= amnt;
 		if((mem[i] == size) && mem[i+1]==0) {
 			if(diff == 0) {
 				mem[i] = size;
@@ -90,7 +91,6 @@ void* malloca(unsigned char size, unsigned char amnt)
 					diff += amnt;
 				}
 				mem[i] = diff-2;
-				mem[i+1] = 0;
 				i += diff;
 				mem[i] = size;
 				mem[i+1] = 1;
@@ -116,6 +116,11 @@ void free(void* memloc)
 	for(unsigned int i = 0; i < size; i++) {
 		base[i+2] = 0;
 	}
+	// If it is the last entry, clear it and move the heap top down
+	if (base + size + 2 == rpi_heap_top) {
+		base[0] = 0;
+		rpi_heap_top = base;
+	}
 }
 
 void* heap_base(void)
diff --git a/src/lib/q.c b/src/lib/q.c
index 494c712..1f5a871 100644
--- a/src/lib/q.c
+++ b/src/lib/q.c
@@ -1,7 +1,7 @@
 #include "../lib/q.h"
 #include "../lib/mem.h"
 
-struct Q_base* newq()
+struct Q_base* new_q()
 {
 	struct Q_base* q = (struct Q_base*)malloc(sizeof(struct Q_base));
 	q->next = 0;
@@ -9,7 +9,7 @@ struct Q_base* newq()
 	return q;
 }
 
-void pushq(struct Q_base* qb, void* val)
+void push_q(struct Q_base* qb, void* val)
 {
 	struct Q* n = (struct Q*)malloc(sizeof(struct Q));
 	n->next = 0;
@@ -22,7 +22,7 @@ void pushq(struct Q_base* qb, void* val)
 	qb->last = n;
 }
 
-void popq(struct Q_base* qb)
+void pop_q(struct Q_base* qb)
 {
 	if (qb->next == 0)
 		return;
diff --git a/src/lib/q.h b/src/lib/q.h
index 51ff1a1..cf75c6d 100644
--- a/src/lib/q.h
+++ b/src/lib/q.h
@@ -11,11 +11,11 @@ struct Q {
 	void* data;
 };
 
-struct Q_base* newq();
-void pushq(struct Q_base* qb, void* val);
-void popq(struct Q_base* qb);
+struct Q_base* new_q();
+void push_q(struct Q_base* qb, void* val);
+void pop_q(struct Q_base* qb);
 
-#define showq(QQ, TYPE) { \
+#define show_q(QQ, TYPE) { \
 	if (QQ->next != 0) { \
 		struct Q* t = QQ->next; \
 		while (t->next != 0) { \
-- 
cgit v1.2.1