aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChristian Cunningham <cc@localhost>2022-08-26 23:27:46 -0700
committerChristian Cunningham <cc@localhost>2022-08-26 23:27:46 -0700
commit41a7818b552aef9e6e0bf788089f6ae16ae1e421 (patch)
tree87b4010b7f24a75d497450b3d98fc4f8f667e404 /include
parent8b36a39774789cee66d84db9f0086af15cacc211 (diff)
Mutex wait queuesno-search
Diffstat (limited to 'include')
-rw-r--r--include/lib/queue.h17
-rw-r--r--include/util/mutex.h2
2 files changed, 4 insertions, 15 deletions
diff --git a/include/lib/queue.h b/include/lib/queue.h
index 1d4899a..c6da6ed 100644
--- a/include/lib/queue.h
+++ b/include/lib/queue.h
@@ -1,33 +1,20 @@
#ifndef LIB_QUEUE_H
#define LIB_QUEUE_H
-enum EntryType {
- VALUE_ENTRY = 0,
- START_ENTRY = 1,
- END_ENTRY = 2,
-};
-
struct Entry {
void* value;
struct Entry* next;
- unsigned long entry_type;
};
struct Queue {
struct Entry start;
- struct Entry end;
};
-// Add to end of queue
-void push_to_queue(struct Entry* e, struct Queue* q);
// Add to beginning of queue
-void prepend_to_queue(struct Entry* e, struct Queue* q);
+void push_to_queue(struct Entry* e, struct Queue* q);
// Remove from beginning of queue
struct Entry* pop_from_queue(struct Queue* q);
-// Remove the entry after this one from its queue
+// Remove the next entry
struct Entry* remove_next_from_queue(struct Entry* e);
-// Find an entry in a queue
-// Returns the entry before the target entry
-struct Entry* find_value(void* value, struct Queue* q);
#endif
diff --git a/include/util/mutex.h b/include/util/mutex.h
index cef4c60..da71146 100644
--- a/include/util/mutex.h
+++ b/include/util/mutex.h
@@ -16,6 +16,8 @@
struct Mutex {
unsigned long pid;
void* addr;
+ struct Entry* locking_thread;
+ struct Entry* waiting_threads;
} __attribute__((packed, aligned(4)));
struct MutexManager {