Lines Matching defs:kd
180 _kvm_ureadm(kvm_t *kd, const struct miniproc *p, u_long va, u_long *cnt)
190 if (kd->swapspc == NULL) {
191 kd->swapspc = _kvm_malloc(kd, (size_t)kd->nbpg);
192 if (kd->swapspc == NULL)
204 if (KREAD(kd, addr, &vme))
223 if (KREAD(kd, addr, &amap))
227 slot = offset / kd->nbpg + vme.aref.ar_pageoff;
232 addr = (u_long)amap.am_anon + (offset / kd->nbpg) * sizeof(anonp);
233 if (KREAD(kd, addr, &anonp))
237 if (KREAD(kd, addr, &anon))
242 if (KREAD(kd, addr, &pg))
245 if (_kvm_pread(kd, kd->pmfd, kd->swapspc, (size_t)kd->nbpg,
246 (off_t)pg.phys_addr & ~(kd->nbpg - 1)) != kd->nbpg)
249 if (kd->swfd < 0 ||
250 _kvm_pread(kd, kd->swfd, kd->swapspc, (size_t)kd->nbpg,
251 (off_t)(anon.an_swslot * kd->nbpg)) != kd->nbpg)
256 offset %= kd->nbpg;
257 *cnt = kd->nbpg - offset;
258 return (&kd->swapspc[(size_t)offset]);
266 _kvm_convertcred(kvm_t *kd, u_long cred, struct eproc *eproc)
272 if (KREAD(kd, cred, &kauthcred) != 0)
300 kvm_proclist(kvm_t *kd, int what, int arg, struct proc *p,
313 if (KREAD(kd, (u_long)p, &proc)) {
314 _kvm_err(kd, kd->program, "can't read proc at %p", p);
317 if (_kvm_convertcred(kd, (u_long)proc.p_cred, &eproc) != 0) {
318 _kvm_err(kd, kd->program,
346 _kvm_err(kd, kd->program, "nprocs corrupt");
353 if (KREAD(kd, (u_long)proc.p_pgrp, &pgrp)) {
354 _kvm_err(kd, kd->program, "can't read pgrp at %p",
361 if (KREAD(kd, (u_long)pgrp.pg_session, &sess)) {
362 _kvm_err(kd, kd->program, "can't read session at %p",
367 if (KREAD(kd, (u_long)sess.s_ttyp, &tty)) {
368 _kvm_err(kd, kd->program,
375 if (KREAD(kd, (u_long)tty.t_pgrp, &pgrp)) {
376 _kvm_err(kd, kd->program,
394 kl = kvm_getlwps(kd, proc.p_pid,
402 (void)kvm_read(kd, (u_long)proc.p_vmspace, &eproc.e_vm,
434 kvm_deadprocs(kvm_t *kd, int what, int arg, u_long a_allproc,
437 struct kinfo_proc *bp = kd->procbase;
441 if (KREAD(kd, a_allproc, &p)) {
442 _kvm_err(kd, kd->program, "cannot read allproc");
445 acnt = kvm_proclist(kd, what, arg, p, bp, maxcnt);
449 if (KREAD(kd, a_zombproc, &p)) {
450 _kvm_err(kd, kd->program, "cannot read zombproc");
453 zcnt = kvm_proclist(kd, what, arg, p, bp + acnt,
462 kvm_getproc2(kvm_t *kd, int op, int arg, size_t esize, int *cnt)
468 if (ISSYSCTL(kd)) {
479 _kvm_syserr(kd, kd->program, "kvm_getproc2");
484 KVM_ALLOC(kd, procbase2, size);
485 st = sysctl(mib, 6, kd->procbase2, &size, NULL, (size_t)0);
490 _kvm_syserr(kd, kd->program, "kvm_getproc2");
501 kp = kvm_getprocs(kd, op, arg, &nprocs);
506 KVM_ALLOC(kd, procbase2, size);
507 kp2c = (char *)(void *)kd->procbase2;
512 kl = kvm_getlwps(kd, kp->kp_proc.p_pid,
517 _kvm_syserr(kd, NULL,
635 / kd->nbpg;
638 (kp->kp_eproc.e_vm.vm_map.size / kd->nbpg) -
651 KREAD(kd, (u_long)kp->kp_proc.p_stats, &pstats)) {
698 return (kd->procbase2);
702 kvm_getlwps(kvm_t *kd, int pid, u_long paddr, size_t esize, int *cnt)
709 if (ISSYSCTL(kd)) {
721 _kvm_syserr(kd, NULL, "kvm_getlwps");
724 _kvm_syserr(kd, kd->program, "kvm_getlwps");
729 KVM_ALLOC(kd, lwpbase, size);
730 st = sysctl(mib, 5, kd->lwpbase, &size, NULL, (size_t)0);
734 _kvm_syserr(kd, NULL, "kvm_getlwps");
739 _kvm_syserr(kd, kd->program, "kvm_getlwps");
752 st = kvm_read(kd, paddr, &p, sizeof(p));
754 _kvm_syserr(kd, kd->program, "kvm_getlwps");
759 size = nlwps * sizeof(*kd->lwpbase);
760 KVM_ALLOC(kd, lwpbase, size);
763 st = kvm_read(kd, laddr, &l, sizeof(l));
765 _kvm_syserr(kd, kd->program, "kvm_getlwps");
768 kl = &kd->lwpbase[i];
772 st = kvm_read(kd, laddr, &back, sizeof(back));
774 _kvm_syserr(kd, kd->program, "kvm_getlwps");
790 (void)kvm_read(kd, (u_long)l.l_wmesg,
798 return (kd->lwpbase);
802 kvm_getprocs(kvm_t *kd, int op, int arg, int *cnt)
807 if (ISALIVE(kd)) {
815 _kvm_syserr(kd, kd->program, "kvm_getprocs");
818 KVM_ALLOC(kd, procbase, size);
819 st = sysctl(mib, 4, kd->procbase, &size, NULL, (size_t)0);
821 _kvm_syserr(kd, kd->program, "kvm_getprocs");
825 _kvm_err(kd, kd->program,
840 if (kvm_nlist(kd, nl) != 0) {
843 _kvm_err(kd, kd->program,
847 if (KREAD(kd, nl[0].n_value, &nprocs)) {
848 _kvm_err(kd, kd->program, "can't read nprocs");
851 size = nprocs * sizeof(*kd->procbase);
852 KVM_ALLOC(kd, procbase, size);
853 nprocs = kvm_deadprocs(kd, op, arg, nl[1].n_value,
859 (void)realloc(kd->procbase, size);
863 return (kd->procbase);
867 _kvm_realloc(kvm_t *kd, void *p, size_t n)
872 _kvm_err(kd, kd->program, "out of memory");
883 kvm_argv(kvm_t *kd, const struct miniproc *p, u_long addr, int narg,
896 if (narg > ARG_MAX || addr < kd->min_uva || addr >= kd->max_uva)
899 if (kd->argv == NULL) {
903 kd->argc = MAX(narg + 1, 32);
904 kd->argv = _kvm_malloc(kd, kd->argc * sizeof(*kd->argv));
905 if (kd->argv == NULL)
907 } else if (narg + 1 > kd->argc) {
908 kd->argc = MAX(2 * kd->argc, narg + 1);
909 kd->argv = _kvm_realloc(kd, kd->argv, kd->argc *
910 sizeof(*kd->argv));
911 if (kd->argv == NULL)
914 if (kd->argspc == NULL) {
915 kd->argspc = _kvm_malloc(kd, (size_t)kd->nbpg);
916 if (kd->argspc == NULL)
918 kd->argspc_len = kd->nbpg;
920 if (kd->argbuf == NULL) {
921 kd->argbuf = _kvm_malloc(kd, (size_t)kd->nbpg);
922 if (kd->argbuf == NULL)
926 if (kvm_ureadm(kd, p, addr, (void *)kd->argv, cc) != cc)
928 ap = np = kd->argspc;
929 argv = kd->argv;
934 while (argv < kd->argv + narg && *argv != NULL) {
935 addr = (u_long)*argv & ~(kd->nbpg - 1);
937 if (kvm_ureadm(kd, p, addr, kd->argbuf,
938 (size_t)kd->nbpg) != kd->nbpg)
942 addr = (u_long)*argv & (kd->nbpg - 1);
943 cp = kd->argbuf + (size_t)addr;
944 cc = kd->nbpg - (size_t)addr;
950 if (len + cc > kd->argspc_len) {
953 uintptr_t op = (uintptr_t)kd->argspc;
955 kd->argspc_len *= 2;
956 kd->argspc = _kvm_realloc(kd, kd->argspc,
957 kd->argspc_len);
958 if (kd->argspc == NULL)
964 off = (uintptr_t)kd->argspc - op;
965 for (pp = kd->argv; pp < argv; pp++)
992 return (kd->argv);
1017 proc_verify(kvm_t *kd, u_long kernp, const struct miniproc *p)
1025 if (kvm_read(kd, kernp, &kernproc, sizeof(kernproc)) !=
1033 kvm_doargv(kvm_t *kd, const struct miniproc *p, int nchr,
1046 cnt = (int)kvm_ureadm(kd, p, p->p_psstrp,
1054 ap = kvm_argv(kd, p, addr, cnt, nchr);
1058 if (ap != NULL && ISALIVE(kd) &&
1059 !proc_verify(kd, (u_long)p->p_paddr, p))
1068 kvm_getargv(kvm_t *kd, const struct kinfo_proc *kp, int nchr)
1073 return (kvm_doargv(kd, &p, nchr, ps_str_a));
1077 kvm_getenvv(kvm_t *kd, const struct kinfo_proc *kp, int nchr)
1082 return (kvm_doargv(kd, &p, nchr, ps_str_e));
1086 kvm_doargv2(kvm_t *kd, pid_t pid, int type, int nchr)
1111 if (kd->argv == NULL) {
1115 kd->argc = MAX(narg + 1, 32);
1116 kd->argv = _kvm_malloc(kd, kd->argc * sizeof(*kd->argv));
1117 if (kd->argv == NULL)
1119 } else if (narg + 1 > kd->argc) {
1120 kd->argc = MAX(2 * kd->argc, narg + 1);
1121 kd->argv = _kvm_realloc(kd, kd->argv, kd->argc *
1122 sizeof(*kd->argv));
1123 if (kd->argv == NULL)
1128 KVM_ALLOC(kd, argspc, newargspc_len);
1129 memset(kd->argspc, 0, (size_t)kd->argspc_len); /* XXX necessary? */
1135 bufs = kd->argspc_len;
1136 if (sysctl(mib, 4, kd->argspc, &bufs, NULL, (size_t)0) == -1)
1139 bp = kd->argspc;
1140 bp[kd->argspc_len-1] = '\0'; /* make sure the string ends with nul */
1141 ap = kd->argv;
1150 if (ap >= kd->argv + kd->argc) {
1151 kd->argc *= 2;
1152 kd->argv = _kvm_realloc(kd, kd->argv,
1153 kd->argc * sizeof(*kd->argv));
1154 ap = kd->argv;
1160 return (kd->argv);
1164 kvm_getargv2(kvm_t *kd, const struct kinfo_proc2 *kp, int nchr)
1167 return (kvm_doargv2(kd, kp->p_pid, KERN_PROC_ARGV, nchr));
1171 kvm_getenvv2(kvm_t *kd, const struct kinfo_proc2 *kp, int nchr)
1174 return (kvm_doargv2(kd, kp->p_pid, KERN_PROC_ENV, nchr));
1181 kvm_ureadm(kvm_t *kd, const struct miniproc *p, u_long uva,
1192 dp = _kvm_ureadm(kd, p, uva, &cnt);
1194 _kvm_err(kd, 0, "invalid address (%lx)", uva);