Changeset View
Changeset View
Standalone View
Standalone View
lib/libkvm/kvm.c
Show First 20 Lines • Show All 295 Lines • ▼ Show 20 Lines | kvm_close(kvm_t *kd) | ||||
if (kd->argspc != 0) | if (kd->argspc != 0) | ||||
free((void *) kd->argspc); | free((void *) kd->argspc); | ||||
if (kd->argv != 0) | if (kd->argv != 0) | ||||
free((void *)kd->argv); | free((void *)kd->argv); | ||||
if (kd->pt_map != NULL) | if (kd->pt_map != NULL) | ||||
free(kd->pt_map); | free(kd->pt_map); | ||||
if (kd->page_map != NULL) | if (kd->page_map != NULL) | ||||
free(kd->page_map); | free(kd->page_map); | ||||
if (kd->dpcpu_initialized != 0) | |||||
free(kd->dpcpu_off); | |||||
if (kd->sparse_map != MAP_FAILED) | if (kd->sparse_map != MAP_FAILED) | ||||
munmap(kd->sparse_map, kd->pt_sparse_size); | munmap(kd->sparse_map, kd->pt_sparse_size); | ||||
free((void *)kd); | free((void *)kd); | ||||
return (error); | return (error); | ||||
} | } | ||||
int | int | ||||
Show All 23 Lines | kvm_nlist(kvm_t *kd, struct nlist *nl) | ||||
} | } | ||||
for (count = 0; nl[count].n_name != NULL && nl[count].n_name[0] != '\0'; | for (count = 0; nl[count].n_name != NULL && nl[count].n_name[0] != '\0'; | ||||
count++) | count++) | ||||
; | ; | ||||
if (count == 0) | if (count == 0) | ||||
return (0); | return (0); | ||||
kl = calloc(count + 1, sizeof(*kl)); | kl = calloc(count + 1, sizeof(*kl)); | ||||
if (kl == NULL) { | |||||
_kvm_err(kd, kd->program, "cannot allocate memory"); | |||||
return (-1); | |||||
} | |||||
for (i = 0; i < count; i++) | for (i = 0; i < count; i++) | ||||
kl[i].n_name = nl[i].n_name; | kl[i].n_name = nl[i].n_name; | ||||
nfail = kvm_nlist2(kd, kl); | nfail = kvm_nlist2(kd, kl); | ||||
for (i = 0; i < count; i++) { | for (i = 0; i < count; i++) { | ||||
nl[i].n_type = kl[i].n_type; | nl[i].n_type = kl[i].n_type; | ||||
nl[i].n_other = 0; | nl[i].n_other = 0; | ||||
nl[i].n_desc = 0; | nl[i].n_desc = 0; | ||||
nl[i].n_value = kl[i].n_value; | nl[i].n_value = kl[i].n_value; | ||||
} | } | ||||
free(kl); | |||||
return (nfail); | return (nfail); | ||||
} | } | ||||
ssize_t | ssize_t | ||||
kvm_read(kvm_t *kd, u_long kva, void *buf, size_t len) | kvm_read(kvm_t *kd, u_long kva, void *buf, size_t len) | ||||
{ | { | ||||
return (kvm_read2(kd, kva, buf, len)); | return (kvm_read2(kd, kva, buf, len)); | ||||
▲ Show 20 Lines • Show All 173 Lines • Show Last 20 Lines |