Deleted Added
full compact
44c44
< __FBSDID("$FreeBSD: head/sys/vm/vm_mmap.c 151252 2005-10-12 06:56:00Z dds $");
---
> __FBSDID("$FreeBSD: head/sys/vm/vm_mmap.c 157144 2006-03-26 12:20:54Z jkoshy $");
46a47
> #include "opt_hwpmc_hooks.h"
81a83,86
> #ifdef HWPMC_HOOKS
> #include <sys/pmckern.h>
> #endif
>
203a209,211
> #ifdef HWPMC_HOOKS
> struct pmckern_map_in pkm;
> #endif
366a375,383
> #ifdef HWPMC_HOOKS
> /* inform hwpmc(4) if an executable is being mapped */
> if (error == 0 && handle_type == OBJT_VNODE &&
> (prot & PROT_EXEC)) {
> pkm.pm_file = handle;
> pkm.pm_address = (uintptr_t) addr;
> PMC_CALL_HOOK(td, PMC_FN_MMAP, (void *) &pkm);
> }
> #endif
497a515,518
> #ifdef HWPMC_HOOKS
> struct pmckern_map_out pkm;
> vm_map_entry_t entry;
> #endif
527a549,568
> #ifdef HWPMC_HOOKS
> /*
> * Inform hwpmc if the address range being unmapped contains
> * an executable region.
> */
> if (vm_map_lookup_entry(map, addr, &entry)) {
> for (;
> entry != &map->header && entry->start < addr + size;
> entry = entry->next) {
> if (vm_map_check_protection(map, entry->start,
> entry->end, VM_PROT_EXECUTE) == TRUE) {
> pkm.pm_address = (uintptr_t) addr;
> pkm.pm_size = (size_t) size;
> PMC_CALL_HOOK(td, PMC_FN_MUNMAP,
> (void *) &pkm);
> break;
> }
> }
> }
> #endif