Lines Matching refs:kd

74 _kvm_pcpu_init(kvm_t *kd)
80 if (kvm_nlist(kd, kvm_pcpu_nl) < 0)
83 _kvm_err(kd, kd->program, "unable to find cpuid_to_pcpu");
87 _kvm_err(kd, kd->program, "unable to find mp_maxcpus");
90 if (kvm_read(kd, kvm_pcpu_nl[NL_MP_MAXCPUS].n_value, &max,
92 _kvm_err(kd, kd->program, "cannot read mp_maxcpus");
96 _kvm_err(kd, kd->program, "unable to find mp_ncpus");
99 if (kvm_read(kd, kvm_pcpu_nl[NL_MP_NCPUS].n_value, &mp_ncpus,
101 _kvm_err(kd, kd->program, "cannot read mp_ncpus");
107 _kvm_err(kd, kd->program, "out of memory");
110 if (kvm_read(kd, kvm_pcpu_nl[NL_CPUID_TO_PCPU].n_value, data, len) !=
112 _kvm_err(kd, kd->program, "cannot read cpuid_to_pcpu array");
131 kvm_getpcpu(kvm_t *kd, int cpu)
135 if (kd == NULL) {
141 if (_kvm_pcpu_init(kd) < 0)
149 _kvm_err(kd, kd->program, "out of memory");
152 if (kvm_read(kd, (uintptr_t)pcpu_data[cpu], buf,
154 _kvm_err(kd, kd->program, "unable to read per-CPU data");
162 kvm_getmaxcpu(kvm_t *kd)
165 if (kd == NULL) {
171 if (_kvm_pcpu_init(kd) < 0)
177 kvm_getncpus(kvm_t *kd)
181 if (_kvm_pcpu_init(kd) < 0)
187 _kvm_dpcpu_setcpu(kvm_t *kd, u_int cpu, int report_error)
190 if (!kd->dpcpu_initialized) {
192 _kvm_err(kd, kd->program, "%s: not initialized",
196 if (cpu >= kd->dpcpu_maxcpus) {
198 _kvm_err(kd, kd->program, "%s: CPU %u too big",
202 if (kd->dpcpu_off[cpu] == 0) {
204 _kvm_err(kd, kd->program, "%s: CPU %u not found",
208 kd->dpcpu_curcpu = cpu;
209 kd->dpcpu_curoff = kd->dpcpu_off[cpu];
217 _kvm_dpcpu_init(kvm_t *kd)
239 if (_kvm_nlist(kd, nl, 0) != 0)
241 if (kvm_read(kd, nl[NLIST_MP_MAXCPUS].n_value, &dpcpu_maxcpus,
248 if (kvm_read(kd, nl[NLIST_DPCPU_OFF].n_value, dpcpu_off_buf, len) !=
253 kd->dpcpu_start = nl[NLIST_START_SET_PCPU].n_value;
254 kd->dpcpu_stop = nl[NLIST_STOP_SET_PCPU].n_value;
255 kd->dpcpu_maxcpus = dpcpu_maxcpus;
256 kd->dpcpu_off = dpcpu_off_buf;
257 kd->dpcpu_initialized = 1;
258 (void)_kvm_dpcpu_setcpu(kd, 0, 0);
267 _kvm_dpcpu_initialized(kvm_t *kd, int intialize)
270 if (kd->dpcpu_initialized || !intialize)
271 return (kd->dpcpu_initialized);
273 (void)_kvm_dpcpu_init(kd);
275 return (kd->dpcpu_initialized);
283 _kvm_dpcpu_validaddr(kvm_t *kd, uintptr_t value)
289 if (!kd->dpcpu_initialized)
292 if (value < kd->dpcpu_start || value >= kd->dpcpu_stop)
295 return (kd->dpcpu_curoff + value);
299 kvm_dpcpu_setcpu(kvm_t *kd, u_int cpu)
303 if (!kd->dpcpu_initialized) {
304 ret = _kvm_dpcpu_init(kd);
306 _kvm_err(kd, kd->program, "%s: init failed",
312 return (_kvm_dpcpu_setcpu(kd, cpu, 1));
319 kvm_read_zpcpu(kvm_t *kd, u_long base, void *buf, size_t size, int cpu)
322 return (kvm_read(kd, (uintptr_t)(base + sizeof(struct pcpu) * cpu),
330 kvm_counter_u64_fetch(kvm_t *kd, u_long base)
335 if (_kvm_pcpu_init(kd) < 0)
340 if (kvm_read_zpcpu(kd, base, &c, sizeof(c), i) != sizeof(c))