Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/proc/thread.h

    r6eef3c4 r9d58539  
    5454
    5555/* Thread flags */
    56 typedef enum {
    57         THREAD_FLAG_NONE = 0,
    58         /** Thread executes in user space. */
    59         THREAD_FLAG_USPACE = (1 << 0),
    60         /** Thread will be attached by the caller. */
    61         THREAD_FLAG_NOATTACH = (1 << 1),
    62         /** Thread accounting doesn't affect accumulated task accounting. */
    63         THREAD_FLAG_UNCOUNTED = (1 << 2)
    64 } thread_flags_t;
     56
     57/** Thread cannot be migrated to another CPU.
     58 *
     59 * When using this flag, the caller must set cpu in the thread_t
     60 * structure manually before calling thread_ready (even on uniprocessor).
     61 *
     62 */
     63#define THREAD_FLAG_WIRED  (1 << 0)
     64
     65/** Thread was migrated to another CPU and has not run yet. */
     66#define THREAD_FLAG_STOLEN  (1 << 1)
     67
     68/** Thread executes in userspace. */
     69#define THREAD_FLAG_USPACE  (1 << 2)
     70
     71/** Thread will be attached by the caller. */
     72#define THREAD_FLAG_NOATTACH  (1 << 3)
    6573
    6674/** Thread structure. There is one per thread. */
     
    139147       
    140148        fpu_context_t *saved_fpu_context;
    141         bool fpu_context_exists;
     149        int fpu_context_exists;
    142150       
    143151        /*
     
    146154         * thread. This disables migration.
    147155         */
    148         bool fpu_context_engaged;
     156        int fpu_context_engaged;
    149157       
    150158        /* The thread will not be migrated if nomigrate is non-zero. */
    151         unsigned int nomigrate;
    152        
    153         /** Thread state. */
     159        int nomigrate;
     160       
     161        /** Thread's state. */
    154162        state_t state;
    155        
    156         /** Thread CPU. */
     163        /** Thread's flags. */
     164        unsigned int flags;
     165       
     166        /** Thread's CPU. */
    157167        cpu_t *cpu;
    158168        /** Containing task. */
    159169        task_t *task;
    160         /** Thread is wired to CPU. */
    161         bool wired;
    162         /** Thread was migrated to another CPU and has not run yet. */
    163         bool stolen;
    164         /** Thread is executed in user space. */
    165         bool uspace;
    166170       
    167171        /** Ticks before preemption. */
     
    212216extern void thread_init(void);
    213217extern thread_t *thread_create(void (*)(void *), void *, task_t *,
    214     thread_flags_t, const char *);
    215 extern void thread_wire(thread_t *, cpu_t *);
     218    unsigned int, const char *, bool);
    216219extern void thread_attach(thread_t *, task_t *);
    217220extern void thread_ready(thread_t *);
Note: See TracChangeset for help on using the changeset viewer.