summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-08-27 17:18:54 +0200
committerRichard Braun <rbraun@sceen.net>2017-08-27 17:18:54 +0200
commit70f7512a01ba8f90aad6dbb4d285e279f0e17e64 (patch)
treea6215d6335ec42e33da4b6aadfa1b3c0be9c860b
parent93a8a5e35c4f5dc31316f034c83b34d25fa8bf08 (diff)
Add TODO entries
-rw-r--r--Makefile.am1
-rw-r--r--doc/intro.9.txt5
-rw-r--r--kern/rbtree.h2
-rw-r--r--kern/thread.c2
-rw-r--r--kern/thread.h1
-rw-r--r--kern/work.h2
-rw-r--r--kern/xcall.c1
7 files changed, 11 insertions, 3 deletions
diff --git a/Makefile.am b/Makefile.am
index 413ac6db..de3e5749 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -32,6 +32,7 @@ AM_CFLAGS += \
-fsigned-char \
-fno-common
+# TODO Add option
AM_CFLAGS += -fno-stack-protector
AM_CFLAGS += -nostdlib
diff --git a/doc/intro.9.txt b/doc/intro.9.txt
index 7a486ede..5b7ee2b1 100644
--- a/doc/intro.9.txt
+++ b/doc/intro.9.txt
@@ -233,8 +233,7 @@ Priority inheritance can also be enabled for regular mutexes. Please read
Victor Yodaiken's report {against-priority-inheritance} in order to fully
understand the implications of relying on priority inheritance.
-TODO X15 doesn't yet comply with all the requirements for hard real-time.
-For that, it still needs a high resolution timer system.
+TODO Separate man page with more description
[[portability]]
PORTABILITY
@@ -267,6 +266,8 @@ the future. In addition, the machine-independent code assumes an almost
completely relaxed memory model, but still expects no reordering between
dependent loads. This model closely matches the ARM family of processors.
+TODO Fix memory model description
+
[[posix_like_interface]]
POSIX-LIKE INTERFACE
--------------------
diff --git a/kern/rbtree.h b/kern/rbtree.h
index 4ae8353f..3de240b6 100644
--- a/kern/rbtree.h
+++ b/kern/rbtree.h
@@ -265,6 +265,8 @@ rbtree_insert_slot(struct rbtree *tree, rbtree_slot_t slot,
* Remove a node from a tree.
*
* After completion, the node is stale.
+ *
+ * TODO rbtree_replace.
*/
void rbtree_remove(struct rbtree *tree, struct rbtree_node *node);
diff --git a/kern/thread.c b/kern/thread.c
index 043f14de..e4d8f7cf 100644
--- a/kern/thread.c
+++ b/kern/thread.c
@@ -1861,7 +1861,7 @@ thread_lock_runq(struct thread *thread, unsigned long *flags)
struct thread_runq *runq;
for (;;) {
- runq = thread->runq;
+ runq = thread->runq; /* TODO Atomic access */
spinlock_lock_intr_save(&runq->lock, flags);
diff --git a/kern/thread.h b/kern/thread.h
index e84300c9..a3f2670d 100644
--- a/kern/thread.h
+++ b/kern/thread.h
@@ -652,6 +652,7 @@ thread_intr_leave(void)
}
}
+/* TODO Use in interrupt handlers instead of manual interrupt/preemption checks */
static inline void
thread_assert_interrupted(void)
{
diff --git a/kern/work.h b/kern/work.h
index a8df1f7e..2d7bd62f 100644
--- a/kern/work.h
+++ b/kern/work.h
@@ -46,6 +46,8 @@ typedef void (*work_fn_t)(struct work *);
* This structure should be embedded in objects related to the work. It
* stores the work function and is passed to it as its only parameter.
* The function can then find the containing object with the structof macro.
+ *
+ * TODO Make private.
*/
struct work {
struct work *next;
diff --git a/kern/xcall.c b/kern/xcall.c
index 44bd41f5..b5ed4b24 100644
--- a/kern/xcall.c
+++ b/kern/xcall.c
@@ -133,6 +133,7 @@ xcall_call(xcall_fn_t fn, void *arg, unsigned int cpu)
thread_preempt_disable();
+ /* TODO Fix to match interrupt context semantics */
if (cpu == cpu_id()) {
unsigned long flags;