diff options
author | fabient <fabient@FreeBSD.org> | 2013-03-05 10:18:48 +0000 |
---|---|---|
committer | fabient <fabient@FreeBSD.org> | 2013-03-05 10:18:48 +0000 |
commit | 5e8164725570d295bde0a5b023ebb2e9c0452858 (patch) | |
tree | c22e470f65c662017c0942df2e8613c506d16f15 /sys/sys | |
parent | e174230ed67f9f69ac7b5305515a3aab391fb049 (diff) | |
download | FreeBSD-src-5e8164725570d295bde0a5b023ebb2e9c0452858.zip FreeBSD-src-5e8164725570d295bde0a5b023ebb2e9c0452858.tar.gz |
Add a generic way to call per event allocate / release function.
Reviewed by: mav
MFC after: 1 month
Diffstat (limited to 'sys/sys')
-rw-r--r-- | sys/sys/pmckern.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/sys/pmckern.h b/sys/sys/pmckern.h index c623648..e3e18a6 100644 --- a/sys/sys/pmckern.h +++ b/sys/sys/pmckern.h @@ -87,9 +87,9 @@ struct pmckern_soft { * Soft PMC. */ -#define PMC_SOFT_DEFINE(prov, mod, func, name) \ +#define PMC_SOFT_DEFINE_EX(prov, mod, func, name, alloc, release) \ struct pmc_soft pmc_##prov##_##mod##_##func##_##name = \ - { 0, { #prov "_" #mod "_" #func "." #name, 0 } }; \ + { 0, alloc, release, { #prov "_" #mod "_" #func "." #name, 0 } }; \ SYSINIT(pmc_##prov##_##mod##_##func##_##name##_init, SI_SUB_KDTRACE, \ SI_ORDER_SECOND + 1, pmc_soft_ev_register, \ &pmc_##prov##_##mod##_##func##_##name ); \ @@ -97,6 +97,9 @@ struct pmckern_soft { SI_SUB_KDTRACE, SI_ORDER_SECOND + 1, pmc_soft_ev_deregister, \ &pmc_##prov##_##mod##_##func##_##name ) +#define PMC_SOFT_DEFINE(prov, mod, func, name) \ + PMC_SOFT_DEFINE_EX(prov, mod, func, name, NULL, NULL) + #define PMC_SOFT_DECLARE(prov, mod, func, name) \ extern struct pmc_soft pmc_##prov##_##mod##_##func##_##name @@ -147,6 +150,8 @@ do { \ struct pmc_soft { int ps_running; + void (*ps_alloc)(void); + void (*ps_release)(void); struct pmc_dyn_event_descr ps_ev; }; |