tester_ctx
simplehook_tester_init_ctx(&tester_ctx);
error = simplehook_tester_create_sysctl(&tester_ctx);
ctx = &tester_ctx;
} tester_ctx;
struct sysctllog **log = &tester_ctx.ctx_sysctllog;
mutex_init(&tester_ctx.ctx_mutex, MUTEX_DEFAULT, IPL_NONE);
threadpool_job_init(&tester_ctx.ctx_job, threadpool_tester_job,
&tester_ctx.ctx_mutex, "tptest");
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
mutex_enter(&tester_ctx.ctx_mutex);
tester_ctx.ctx_unbound[pri_to_idx(pri)];
tester_ctx.ctx_percpu[pri_to_idx(pri)];
threadpool_cancel_job(pool, &tester_ctx.ctx_job);
tester_ctx.ctx_unbound[pri_to_idx(pri)] = NULL;
threadpool_cancel_job(pool, &tester_ctx.ctx_job);
tester_ctx.ctx_percpu[pri_to_idx(pri)] = NULL;
mutex_exit(&tester_ctx.ctx_mutex);
threadpool_job_destroy(&tester_ctx.ctx_job);
mutex_destroy(&tester_ctx.ctx_mutex);
sysctl_teardown(&tester_ctx.ctx_sysctllog);
} tester_ctx;
struct sysctllog **log = &tester_ctx.ctx_sysctllog;
mutex_init(&tester_ctx.ctx_mutex, MUTEX_DEFAULT, IPL_NONE);
threadpool_job_init(&tester_ctx.ctx_job, threadpool_tester_job,
&tester_ctx.ctx_mutex, "tptest");
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
mutex_enter(&tester_ctx.ctx_mutex);
tester_ctx.ctx_unbound[pri_to_idx(pri)];
tester_ctx.ctx_percpu[pri_to_idx(pri)];
threadpool_cancel_job(pool, &tester_ctx.ctx_job);
tester_ctx.ctx_unbound[pri_to_idx(pri)] = NULL;
threadpool_cancel_job(pool, &tester_ctx.ctx_job);
tester_ctx.ctx_percpu[pri_to_idx(pri)] = NULL;
mutex_exit(&tester_ctx.ctx_mutex);
threadpool_job_destroy(&tester_ctx.ctx_job);
mutex_destroy(&tester_ctx.ctx_mutex);
sysctl_teardown(&tester_ctx.ctx_sysctllog);
} tester_ctx;
struct sysctllog **log = &tester_ctx.ctx_sysctllog;
(void *)&tester_ctx, 0, CTL_CREATE, CTL_EOL);
sysctl_teardown(&tester_ctx.ctx_sysctllog);
} tester_ctx;
pmap_kremove(tester_ctx.levels[0], PAGE_SIZE);
pd_entry_t *pd = (pd_entry_t *)tester_ctx.levels[1];
pmap_kenter_pa(tester_ctx.levels[1], pa, VM_PROT_READ, 0);
tester_ctx.coord.l2 = i;
pmap_kremove(tester_ctx.levels[1], PAGE_SIZE);
pd_entry_t *pd = (pd_entry_t *)tester_ctx.levels[2];
pmap_kenter_pa(tester_ctx.levels[2], pa, VM_PROT_READ, 0);
tester_ctx.coord.l3 = i;
pmap_kremove(tester_ctx.levels[2], PAGE_SIZE);
pd_entry_t *pd = (pd_entry_t *)tester_ctx.levels[3];
pmap_kenter_pa(tester_ctx.levels[3], pa, VM_PROT_READ, 0);
tester_ctx.coord.l4 = i;
pmap_kremove(tester_ctx.levels[3], PAGE_SIZE);
tester_ctx.results.n_rwx += (NBPD_L4 / PAGE_SIZE);
tester_ctx.results.n_rwx += (NBPD_L3 / PAGE_SIZE);
tester_ctx.results.n_rwx += (NBPD_L2 / PAGE_SIZE);
tester_ctx.results.n_rwx += (NBPD_L1 / PAGE_SIZE);
tester_ctx.results.n_shstk += (NBPD_L4 / PAGE_SIZE);
tester_ctx.results.n_shstk += (NBPD_L3 / PAGE_SIZE);
tester_ctx.results.n_shstk += (NBPD_L2 / PAGE_SIZE);
tester_ctx.results.n_shstk += (NBPD_L1 / PAGE_SIZE);
tester_ctx.results.kernel_map_with_low_ptes |= true;
tester_ctx.results.pte_is_user_accessible |= true;
tester_ctx.results.n_user_space_is_kernel += 1;
tester_ctx.results.n_kernel_space_is_user += 1;
tester_ctx.results.n_svs_g_bit_set += 1;
tester_ctx.results.n_svs_g_bit_set = -1;
memset(&tester_ctx.results, 0, sizeof(tester_ctx.results));
tester_ctx.levels[i] = uvm_km_alloc(kernel_map, PAGE_SIZE, 0,
uvm_km_free(kernel_map, tester_ctx.levels[i], PAGE_SIZE,
*oldlenp = sizeof(tester_ctx.results);
if (*oldlenp < sizeof(tester_ctx.results))
return copyout(&tester_ctx.results, oldp, sizeof(tester_ctx.results));
struct sysctllog **log = &tester_ctx.ctx_sysctllog;
sysctl_teardown(&tester_ctx.ctx_sysctllog);
} tester_ctx;
pd_entry_t *pd = (pd_entry_t *)tester_ctx.levels[0];
pmap_kenter_pa(tester_ctx.levels[0], pa, VM_PROT_READ, 0);
tester_ctx.coord.l1 = i;