Rev 2787 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2787 | Rev 4377 | ||
---|---|---|---|
Line 37... | Line 37... | ||
37 | #include <proc/task.h> |
37 | #include <proc/task.h> |
38 | #include <proc/thread.h> |
38 | #include <proc/thread.h> |
39 | #include <arch.h> |
39 | #include <arch.h> |
40 | #include <arch/context.h> /* SP_DELTA */ |
40 | #include <arch/context.h> /* SP_DELTA */ |
41 | #include <arch/asm.h> |
41 | #include <arch/asm.h> |
42 | #include <arch/debugger.h> |
- | |
43 | #include <print.h> |
42 | #include <print.h> |
44 | #include <arch/pm.h> |
43 | #include <arch/pm.h> |
45 | #include <arch/ddi/ddi.h> |
44 | #include <arch/ddi/ddi.h> |
46 | 45 | ||
47 | /** Perform amd64 specific tasks needed before the new task is run. |
46 | /** Perform amd64 specific tasks needed before the new task is run. |
Line 66... | Line 65... | ||
66 | write_msr(AMD_MSR_GS, (uintptr_t)THREAD->arch.syscall_rsp); |
65 | write_msr(AMD_MSR_GS, (uintptr_t)THREAD->arch.syscall_rsp); |
67 | swapgs(); |
66 | swapgs(); |
68 | 67 | ||
69 | /* TLS support - set FS to thread local storage */ |
68 | /* TLS support - set FS to thread local storage */ |
70 | write_msr(AMD_MSR_FS, THREAD->arch.tls); |
69 | write_msr(AMD_MSR_FS, THREAD->arch.tls); |
71 | - | ||
72 | #ifdef CONFIG_DEBUG_AS_WATCHPOINT |
- | |
73 | /* Set watchpoint on AS to ensure that nobody sets it to zero */ |
- | |
74 | if (CPU->id < BKPOINTS_MAX) |
- | |
75 | breakpoint_add(&((the_t *) THREAD->kstack)->as, |
- | |
76 | BKPOINT_WRITE | BKPOINT_CHECK_ZERO, CPU->id); |
- | |
77 | #endif |
- | |
78 | } |
70 | } |
79 | 71 | ||
80 | void after_thread_ran_arch(void) |
72 | void after_thread_ran_arch(void) |
81 | { |
73 | { |
82 | } |
74 | } |