1 /*-
2 * Copyright (c) 2001 Matthew Dillon. This code is distributed under
3 * the BSD copyright, /usr/src/COPYRIGHT.
4 *
5 * $FreeBSD: releng/5.1/sys/amd64/amd64/critical.c 114349 2003-05-01 01:05:25Z peter $
6 */
7
8 #include <sys/param.h>
9 #include <sys/systm.h>
10 #include <sys/signalvar.h>
11 #include <sys/kernel.h>
12 #include <sys/lock.h>
13 #include <sys/mutex.h>
14 #include <sys/pcpu.h>
15 #include <sys/proc.h>
16 #include <sys/sysctl.h>
17 #include <sys/ucontext.h>
18 #include <machine/clock.h>
19 #include <machine/critical.h>
20
21 /*
22 * cpu_critical_fork_exit() - cleanup after fork
23 */
24 void
25 cpu_critical_fork_exit(void)
26 {
27 struct thread *td;
28
29 td = curthread;
30 td->td_critnest = 1;
31 td->td_md.md_savecrit = read_rflags() | PSL_I;
32 }
33
34 /*
35 * cpu_thread_link() - thread linkup, initialize machine-dependant fields
36 */
37 void
38 cpu_thread_link(struct thread *td)
39 {
40
41 td->td_md.md_savecrit = 0;
42 }
Cache object: b2fc5eec939eb4fd240b5f3e4d4a30b4
|