diff options
author | Christian Cunningham <cc@localhost> | 2022-08-26 23:27:46 -0700 |
---|---|---|
committer | Christian Cunningham <cc@localhost> | 2022-08-26 23:27:46 -0700 |
commit | 41a7818b552aef9e6e0bf788089f6ae16ae1e421 (patch) | |
tree | 87b4010b7f24a75d497450b3d98fc4f8f667e404 /include | |
parent | 8b36a39774789cee66d84db9f0086af15cacc211 (diff) |
Mutex wait queuesno-search
Diffstat (limited to 'include')
-rw-r--r-- | include/lib/queue.h | 17 | ||||
-rw-r--r-- | include/util/mutex.h | 2 |
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 { |