Subversion Repositories HelenOS

Rev

Rev 2071 | Rev 2089 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2071 Rev 2081
Line 57... Line 57...
57
/**
57
/**
58
 * For each possible kernel stack, structure
58
 * For each possible kernel stack, structure
59
 * of the following type will be placed at
59
 * of the following type will be placed at
60
 * the base address of the stack.
60
 * the base address of the stack.
61
 */
61
 */
62
struct the {
62
typedef struct {
63
    count_t preemption_disabled;    /**< Preemption disabled counter. */
63
    count_t preemption_disabled;    /**< Preemption disabled counter. */
64
    thread_t *thread;       /**< Current thread. */
64
    thread_t *thread;       /**< Current thread. */
65
    task_t *task;           /**< Current task. */
65
    task_t *task;           /**< Current task. */
66
    cpu_t *cpu;         /**< Executing cpu. */
66
    cpu_t *cpu;         /**< Executing cpu. */
67
    as_t *as;           /**< Current address space. */
67
    as_t *as;           /**< Current address space. */
68
};
68
} the_t;
69
 
69
 
70
#define THE     ((the_t *)(get_stack_base()))
70
#define THE     ((the_t *)(get_stack_base()))
71
 
71
 
72
extern void the_initialize(the_t *the);
72
extern void the_initialize(the_t *the);
73
extern void the_copy(the_t *src, the_t *dst);
73
extern void the_copy(the_t *src, the_t *dst);