enum thread_status
{
- THREAD_INITIALIZING,
THREAD_RUNNING,
THREAD_READY,
THREAD_BLOCKED,
struct thread
{
- enum thread_status status;
- char name[16];
- uint8_t *stack;
- list_elem rq_elem;
+ enum thread_status status; /* Thread state. */
+ char name[16]; /* Name (for debugging purposes). */
+ uint8_t *stack; /* Saved stack pointer. */
+ list_elem rq_elem; /* Run queue list element. */
#ifdef USERPROG
- struct addrspace addrspace;
+ struct addrspace addrspace; /* Userland address space. */
#endif
+ unsigned magic; /* Always set to THREAD_MAGIC. */
};
void thread_init (void);
bool thread_execute (const char *filename);
#endif
-void thread_destroy (struct thread *);
-void thread_ready (struct thread *);
+void thread_wake (struct thread *);
+const char *thread_name (struct thread *);
struct thread *thread_current (void);
void thread_exit (void) NO_RETURN;