Lines Matching refs:core

81 static bool	core_offset(struct procstat_core *core, off_t offset);
82 static bool core_read(struct procstat_core *core, void *buf, size_t len);
83 static ssize_t core_read_mem(struct procstat_core *core, void *buf,
85 static void *get_args(struct procstat_core *core, vm_offset_t psstrings,
91 struct procstat_core *core; in procstat_core_open() local
140 core = malloc(sizeof(struct procstat_core)); in procstat_core_open()
141 if (core == NULL) { in procstat_core_open()
145 core->pc_magic = PROCSTAT_CORE_MAGIC; in procstat_core_open()
146 core->pc_fd = fd; in procstat_core_open()
147 core->pc_elf = e; in procstat_core_open()
148 core->pc_ehdr = ehdr; in procstat_core_open()
149 core->pc_phdr = phdr; in procstat_core_open()
151 return (core); in procstat_core_open()
161 procstat_core_close(struct procstat_core *core) in procstat_core_close() argument
164 assert(core->pc_magic == PROCSTAT_CORE_MAGIC); in procstat_core_close()
166 elf_end(core->pc_elf); in procstat_core_close()
167 close(core->pc_fd); in procstat_core_close()
168 free(core); in procstat_core_close()
172 procstat_core_get(struct procstat_core *core, enum psc_type type, void *buf, in procstat_core_get() argument
183 assert(core->pc_magic == PROCSTAT_CORE_MAGIC); in procstat_core_get()
190 offset = core->pc_phdr.p_offset; in procstat_core_get()
191 eoffset = offset + core->pc_phdr.p_filesz; in procstat_core_get()
195 if (!core_offset(core, offset)) in procstat_core_get()
197 if (!core_read(core, &nhdr, sizeof(nhdr))) in procstat_core_get()
210 if (!core_read(core, nbuf, sizeof(nbuf))) in procstat_core_get()
218 if (!core_read(core, &cstructsize, sizeof(cstructsize))) in procstat_core_get()
237 if (!core_read(core, (char *)buf + curlen, len)) { in procstat_core_get()
252 buf = get_args(core, psstrings, type, buf, &len); in procstat_core_get()
271 core_offset(struct procstat_core *core, off_t offset) in core_offset() argument
274 assert(core->pc_magic == PROCSTAT_CORE_MAGIC); in core_offset()
276 if (lseek(core->pc_fd, offset, SEEK_SET) == -1) { in core_offset()
284 core_read(struct procstat_core *core, void *buf, size_t len) in core_read() argument
288 assert(core->pc_magic == PROCSTAT_CORE_MAGIC); in core_read()
290 n = read(core->pc_fd, buf, len); in core_read()
303 core_read_mem(struct procstat_core *core, void *buf, size_t len, in core_read_mem() argument
310 assert(core->pc_magic == PROCSTAT_CORE_MAGIC); in core_read_mem()
312 for (i = 0; i < core->pc_ehdr.e_phnum; i++) { in core_read_mem()
313 if (gelf_getphdr(core->pc_elf, i, &phdr) != &phdr) { in core_read_mem()
330 if (!core_offset(core, offset)) in core_read_mem()
332 if (!core_read(core, buf, len)) in core_read_mem()
343 get_args(struct procstat_core *core, vm_offset_t psstrings, enum psc_type type, in get_args() argument
356 if (core_read_mem(core, &pss, sizeof(pss), psstrings, true) == -1) in get_args()
379 if (core_read_mem(core, argv, size, addr, true) == -1) in get_args()
406 n = core_read_mem(core, p, chunksz, addr, false); in get_args()
428 procstat_core_note_count(struct procstat_core *core, enum psc_type type) in procstat_core_note_count() argument
441 offset = core->pc_phdr.p_offset; in procstat_core_note_count()
442 eoffset = offset + core->pc_phdr.p_filesz; in procstat_core_note_count()
445 if (!core_offset(core, offset)) in procstat_core_note_count()
447 if (!core_read(core, &nhdr, sizeof(nhdr))) in procstat_core_note_count()
460 if (!core_read(core, nbuf, sizeof(nbuf))) in procstat_core_note_count()
468 if (!core_read(core, &cstructsize, sizeof(cstructsize))) in procstat_core_note_count()