Changeset View
Changeset View
Standalone View
Standalone View
head/lib/libkvm/kvm_private.h
Show First 20 Lines • Show All 100 Lines • ▼ Show 20 Lines | #define ISALIVE(kd) ((kd)->vmfd >= 0) | ||||
u_int dpcpu_maxcpus; /* size of base array */ | u_int dpcpu_maxcpus; /* size of base array */ | ||||
uintptr_t *dpcpu_off; /* base array, indexed by CPU ID */ | uintptr_t *dpcpu_off; /* base array, indexed by CPU ID */ | ||||
u_int dpcpu_curcpu; /* CPU we're currently working with */ | u_int dpcpu_curcpu; /* CPU we're currently working with */ | ||||
kvaddr_t dpcpu_curoff; /* dpcpu base of current CPU */ | kvaddr_t dpcpu_curoff; /* dpcpu base of current CPU */ | ||||
/* Page table lookup structures. */ | /* Page table lookup structures. */ | ||||
uint64_t *pt_map; | uint64_t *pt_map; | ||||
size_t pt_map_size; | size_t pt_map_size; | ||||
uint64_t *dump_avail; /* actually word sized */ | |||||
size_t dump_avail_size; | |||||
off_t pt_sparse_off; | off_t pt_sparse_off; | ||||
uint64_t pt_sparse_size; | uint64_t pt_sparse_size; | ||||
uint32_t *pt_popcounts; | uint32_t *pt_popcounts; | ||||
unsigned int pt_page_size; | unsigned int pt_page_size; | ||||
unsigned int pt_word_size; | unsigned int pt_word_size; | ||||
/* Page & sparse map structures. */ | /* Page & sparse map structures. */ | ||||
void *page_map; | void *page_map; | ||||
Show All 30 Lines | |||||
{ | { | ||||
if (kd->nlehdr.e_ident[EI_DATA] == ELFDATA2LSB) | if (kd->nlehdr.e_ident[EI_DATA] == ELFDATA2LSB) | ||||
return (le64toh(val)); | return (le64toh(val)); | ||||
else | else | ||||
return (be64toh(val)); | return (be64toh(val)); | ||||
} | } | ||||
uint64_t _kvm_pa_bit_id(kvm_t *kd, uint64_t pa, unsigned int page_size); | |||||
uint64_t _kvm_bit_id_pa(kvm_t *kd, uint64_t bit_id, unsigned int page_size); | |||||
#define _KVM_PA_INVALID ULONG_MAX | |||||
#define _KVM_BIT_ID_INVALID ULONG_MAX | |||||
int _kvm_bitmap_init(struct kvm_bitmap *, u_long, u_long *); | int _kvm_bitmap_init(struct kvm_bitmap *, u_long, u_long *); | ||||
void _kvm_bitmap_set(struct kvm_bitmap *, u_long, unsigned int); | void _kvm_bitmap_set(struct kvm_bitmap *, u_long); | ||||
int _kvm_bitmap_next(struct kvm_bitmap *, u_long *); | int _kvm_bitmap_next(struct kvm_bitmap *, u_long *); | ||||
void _kvm_bitmap_deinit(struct kvm_bitmap *); | void _kvm_bitmap_deinit(struct kvm_bitmap *); | ||||
void _kvm_err(kvm_t *kd, const char *program, const char *fmt, ...) | void _kvm_err(kvm_t *kd, const char *program, const char *fmt, ...) | ||||
__printflike(3, 4); | __printflike(3, 4); | ||||
void _kvm_freeprocs(kvm_t *kd); | void _kvm_freeprocs(kvm_t *kd); | ||||
void *_kvm_malloc(kvm_t *kd, size_t); | void *_kvm_malloc(kvm_t *kd, size_t); | ||||
int _kvm_nlist(kvm_t *, struct kvm_nlist *, int); | int _kvm_nlist(kvm_t *, struct kvm_nlist *, int); | ||||
void *_kvm_realloc(kvm_t *kd, void *, size_t); | void *_kvm_realloc(kvm_t *kd, void *, size_t); | ||||
void _kvm_syserr (kvm_t *kd, const char *program, const char *fmt, ...) | void _kvm_syserr (kvm_t *kd, const char *program, const char *fmt, ...) | ||||
__printflike(3, 4); | __printflike(3, 4); | ||||
int _kvm_vnet_selectpid(kvm_t *, pid_t); | int _kvm_vnet_selectpid(kvm_t *, pid_t); | ||||
int _kvm_vnet_initialized(kvm_t *, int); | int _kvm_vnet_initialized(kvm_t *, int); | ||||
kvaddr_t _kvm_vnet_validaddr(kvm_t *, kvaddr_t); | kvaddr_t _kvm_vnet_validaddr(kvm_t *, kvaddr_t); | ||||
int _kvm_dpcpu_initialized(kvm_t *, int); | int _kvm_dpcpu_initialized(kvm_t *, int); | ||||
kvaddr_t _kvm_dpcpu_validaddr(kvm_t *, kvaddr_t); | kvaddr_t _kvm_dpcpu_validaddr(kvm_t *, kvaddr_t); | ||||
int _kvm_probe_elf_kernel(kvm_t *, int, int); | int _kvm_probe_elf_kernel(kvm_t *, int, int); | ||||
int _kvm_is_minidump(kvm_t *); | int _kvm_is_minidump(kvm_t *); | ||||
int _kvm_read_core_phdrs(kvm_t *, size_t *, GElf_Phdr **); | int _kvm_read_core_phdrs(kvm_t *, size_t *, GElf_Phdr **); | ||||
int _kvm_pt_init(kvm_t *, size_t, off_t, off_t, int, int); | int _kvm_pt_init(kvm_t *, size_t, off_t, size_t, off_t, off_t, int, int); | ||||
off_t _kvm_pt_find(kvm_t *, uint64_t, unsigned int); | off_t _kvm_pt_find(kvm_t *, uint64_t, unsigned int); | ||||
int _kvm_visit_cb(kvm_t *, kvm_walk_pages_cb_t *, void *, u_long, | int _kvm_visit_cb(kvm_t *, kvm_walk_pages_cb_t *, void *, u_long, | ||||
u_long, u_long, vm_prot_t, size_t, unsigned int); | u_long, u_long, vm_prot_t, size_t, unsigned int); | ||||
int _kvm_pmap_init(kvm_t *, uint32_t, off_t); | int _kvm_pmap_init(kvm_t *, uint32_t, off_t); | ||||
void * _kvm_pmap_get(kvm_t *, u_long, size_t); | void * _kvm_pmap_get(kvm_t *, u_long, size_t); | ||||
void * _kvm_map_get(kvm_t *, u_long, unsigned int); | void * _kvm_map_get(kvm_t *, u_long, unsigned int); |