Deleted Added
full compact
kern_pmc.c (145339) kern_pmc.c (146799)
1/*-
1/*-
2 * Copyright (c) 2003 Joseph Koshy
2 * Copyright (c) 2003-2005, Joseph Koshy
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the

--- 8 unchanged lines hidden (view full) ---

19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 * SUCH DAMAGE.
24 */
25
26#include <sys/cdefs.h>
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the

--- 8 unchanged lines hidden (view full) ---

19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 * SUCH DAMAGE.
24 */
25
26#include <sys/cdefs.h>
27__FBSDID("$FreeBSD: head/sys/kern/kern_pmc.c 145339 2005-04-20 20:30:59Z marcel $");
27__FBSDID("$FreeBSD: head/sys/kern/kern_pmc.c 146799 2005-05-30 06:29:29Z jkoshy $");
28
29#include <sys/pmckern.h>
30#include <sys/smp.h>
31
32struct sx pmc_sx;
33
34/* Hook variable. */
35int (*pmc_hook)(struct thread *td, int function, void *arg) = NULL;
36
37/* Interrupt handler */
28
29#include <sys/pmckern.h>
30#include <sys/smp.h>
31
32struct sx pmc_sx;
33
34/* Hook variable. */
35int (*pmc_hook)(struct thread *td, int function, void *arg) = NULL;
36
37/* Interrupt handler */
38int (*pmc_intr)(int cpu, uintptr_t pc) = NULL;
38int (*pmc_intr)(int cpu, uintptr_t pc, int usermode) = NULL;
39
39
40cpumask_t pmc_cpumask;
41
40/*
41 * Since PMC(4) may not be loaded in the current kernel, the
42 * convention followed is that a non-NULL value of 'pmc_hook' implies
43 * the presence of this kernel module.
44 *
45 * This requires us to protect 'pmc_hook' with a
46 * shared (sx) lock -- thus making the process of calling into PMC(4)
47 * somewhat more expensive than a simple 'if' check and indirect call.

--- 30 unchanged lines hidden ---
42/*
43 * Since PMC(4) may not be loaded in the current kernel, the
44 * convention followed is that a non-NULL value of 'pmc_hook' implies
45 * the presence of this kernel module.
46 *
47 * This requires us to protect 'pmc_hook' with a
48 * shared (sx) lock -- thus making the process of calling into PMC(4)
49 * somewhat more expensive than a simple 'if' check and indirect call.

--- 30 unchanged lines hidden ---