pmckern.h (148562) | pmckern.h (157144) |
---|---|
1/*- | 1/*- |
2 * Copyright (c) 2003-2005, Joseph Koshy | 2 * Copyright (c) 2003-2006, Joseph Koshy |
3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright --- 7 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * | 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright --- 7 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * |
26 * $FreeBSD: head/sys/sys/pmckern.h 148562 2005-07-30 09:02:42Z jkoshy $ | 26 * $FreeBSD: head/sys/sys/pmckern.h 157144 2006-03-26 12:20:54Z jkoshy $ |
27 */ 28 29/* 30 * PMC interface used by the base kernel. 31 */ 32 33#ifndef _SYS_PMCKERN_H_ 34#define _SYS_PMCKERN_H_ 35 36#include <sys/param.h> 37#include <sys/kernel.h> 38#include <sys/lock.h> 39#include <sys/proc.h> 40#include <sys/sx.h> 41 42#define PMC_FN_PROCESS_EXEC 1 43#define PMC_FN_CSW_IN 2 44#define PMC_FN_CSW_OUT 3 45#define PMC_FN_DO_SAMPLES 4 | 27 */ 28 29/* 30 * PMC interface used by the base kernel. 31 */ 32 33#ifndef _SYS_PMCKERN_H_ 34#define _SYS_PMCKERN_H_ 35 36#include <sys/param.h> 37#include <sys/kernel.h> 38#include <sys/lock.h> 39#include <sys/proc.h> 40#include <sys/sx.h> 41 42#define PMC_FN_PROCESS_EXEC 1 43#define PMC_FN_CSW_IN 2 44#define PMC_FN_CSW_OUT 3 45#define PMC_FN_DO_SAMPLES 4 |
46#define PMC_FN_KLD_LOAD 5 47#define PMC_FN_KLD_UNLOAD 6 48#define PMC_FN_MMAP 7 49#define PMC_FN_MUNMAP 8 |
|
46 47struct pmckern_procexec { 48 int pm_credentialschanged; | 50 51struct pmckern_procexec { 52 int pm_credentialschanged; |
49 uintptr_t pm_entryaddr; | 53 uintfptr_t pm_entryaddr; |
50}; 51 | 54}; 55 |
56struct pmckern_map_in { 57 void *pm_file; /* filename or vnode pointer */ 58 uintfptr_t pm_address; /* address object is loaded at */ 59}; 60 61struct pmckern_map_out { 62 uintfptr_t pm_address; /* start address of region */ 63 size_t pm_size; /* size of unmapped region */ 64}; 65 |
|
52/* hook */ 53extern int (*pmc_hook)(struct thread *_td, int _function, void *_arg); 54extern int (*pmc_intr)(int _cpu, uintptr_t _pc, int _usermode); 55 56/* SX lock protecting the hook */ 57extern struct sx pmc_sx; 58 59/* Per-cpu flags indicating availability of sampling data */ --- 53 unchanged lines hidden --- | 66/* hook */ 67extern int (*pmc_hook)(struct thread *_td, int _function, void *_arg); 68extern int (*pmc_intr)(int _cpu, uintptr_t _pc, int _usermode); 69 70/* SX lock protecting the hook */ 71extern struct sx pmc_sx; 72 73/* Per-cpu flags indicating availability of sampling data */ --- 53 unchanged lines hidden --- |