kvm.h revision 262740
162587Sitojun/*- 278064Sume * Copyright (c) 1989, 1993 362587Sitojun * The Regents of the University of California. All rights reserved. 454263Sshin * 554263Sshin * Redistribution and use in source and binary forms, with or without 654263Sshin * modification, are permitted provided that the following conditions 754263Sshin * are met: 854263Sshin * 1. Redistributions of source code must retain the above copyright 954263Sshin * notice, this list of conditions and the following disclaimer. 1054263Sshin * 2. Redistributions in binary form must reproduce the above copyright 1154263Sshin * notice, this list of conditions and the following disclaimer in the 1254263Sshin * documentation and/or other materials provided with the distribution. 1354263Sshin * 4. Neither the name of the University nor the names of its contributors 1454263Sshin * may be used to endorse or promote products derived from this software 1554263Sshin * without specific prior written permission. 1654263Sshin * 1754263Sshin * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 1854263Sshin * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1954263Sshin * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2054263Sshin * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2154263Sshin * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2254263Sshin * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2354263Sshin * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2454263Sshin * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2554263Sshin * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2654263Sshin * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2754263Sshin * SUCH DAMAGE. 2854263Sshin * 2954263Sshin * @(#)kvm.h 8.1 (Berkeley) 6/2/93 3054263Sshin * $FreeBSD: stable/10/lib/libkvm/kvm.h 262740 2014-03-04 14:49:05Z glebius $ 3154263Sshin */ 3254263Sshin 3354263Sshin#ifndef _KVM_H_ 3462587Sitojun#define _KVM_H_ 3554263Sshin 3654263Sshin#include <sys/cdefs.h> 3754263Sshin#include <sys/types.h> 3854263Sshin#include <nlist.h> 3954263Sshin 4054263Sshin/* Default version symbol. */ 4154263Sshin#define VRS_SYM "_version" 4254263Sshin#define VRS_KEY "VERSION" 4354263Sshin 4454263Sshin#ifndef _SIZE_T_DECLARED 4554263Sshintypedef __size_t size_t; 4662587Sitojun#define _SIZE_T_DECLARED 4762587Sitojun#endif 4854263Sshin 4954263Sshin#ifndef _SSIZE_T_DECLARED 5054263Sshintypedef __ssize_t ssize_t; 5154263Sshin#define _SSIZE_T_DECLARED 5254263Sshin#endif 5354263Sshin 5454263Sshintypedef struct __kvm kvm_t; 5554263Sshin 5662587Sitojunstruct kinfo_proc; 5762587Sitojunstruct proc; 5855009Sshin 5962587Sitojunstruct kvm_swap { 6054263Sshin char ksw_devname[32]; 6162587Sitojun int ksw_used; 6254263Sshin int ksw_total; 6354263Sshin int ksw_flags; 6454263Sshin int ksw_reserved1; 6554263Sshin int ksw_reserved2; 6654263Sshin}; 6754263Sshin 6862587Sitojun#define SWIF_DEV_PREFIX 0x0002 6954263Sshin 7054263Sshin__BEGIN_DECLS 7154263Sshinint kvm_close(kvm_t *); 7254263Sshinint kvm_dpcpu_setcpu(kvm_t *, unsigned int); 7354263Sshinchar **kvm_getargv(kvm_t *, const struct kinfo_proc *, int); 7454263Sshinint kvm_getcptime(kvm_t *, long *); 7554263Sshinchar **kvm_getenvv(kvm_t *, const struct kinfo_proc *, int); 7654263Sshinchar *kvm_geterr(kvm_t *); 7754263Sshinchar *kvm_getfiles(kvm_t *, int, int, int *); 7854263Sshinint kvm_getloadavg(kvm_t *, double [], int); 7954263Sshinint kvm_getmaxcpu(kvm_t *); 8054263Sshinint kvm_getncpus(kvm_t *); 8154263Sshinvoid *kvm_getpcpu(kvm_t *, int); 8254263Sshinuint64_t kvm_counter_u64_fetch(kvm_t *, u_long); 8378064Sumestruct kinfo_proc * 8454263Sshin kvm_getprocs(kvm_t *, int, int, int *); 8554263Sshinint kvm_getswapinfo(kvm_t *, struct kvm_swap *, int, int); 8654263Sshinint kvm_nlist(kvm_t *, struct nlist *); 8754263Sshinkvm_t *kvm_open 8854263Sshin (const char *, const char *, const char *, int, const char *); 8954263Sshinkvm_t *kvm_openfiles 9054263Sshin (const char *, const char *, const char *, int, char *); 9154263Sshinssize_t kvm_read(kvm_t *, unsigned long, void *, size_t); 9254263Sshinssize_t kvm_read_zpcpu(kvm_t *, unsigned long, void *, size_t, int); 9354263Sshinssize_t kvm_write(kvm_t *, unsigned long, const void *, size_t); 9454263Sshin__END_DECLS 9554263Sshin 9654263Sshin#endif /* !_KVM_H_ */ 9754263Sshin