1*cef0bbe1Sguenther /* $OpenBSD: kvm.h,v 1.18 2013/10/22 16:40:25 guenther Exp $ */ 294e34ef1Sderaadt /* $NetBSD: kvm.h,v 1.7 1996/04/19 12:02:50 leo Exp $ */ 3df930be7Sderaadt 4df930be7Sderaadt /*- 5df930be7Sderaadt * Copyright (c) 1989, 1993 6df930be7Sderaadt * The Regents of the University of California. All rights reserved. 7df930be7Sderaadt * 8df930be7Sderaadt * Redistribution and use in source and binary forms, with or without 9df930be7Sderaadt * modification, are permitted provided that the following conditions 10df930be7Sderaadt * are met: 11df930be7Sderaadt * 1. Redistributions of source code must retain the above copyright 12df930be7Sderaadt * notice, this list of conditions and the following disclaimer. 13df930be7Sderaadt * 2. Redistributions in binary form must reproduce the above copyright 14df930be7Sderaadt * notice, this list of conditions and the following disclaimer in the 15df930be7Sderaadt * documentation and/or other materials provided with the distribution. 16e33d3bd3Smillert * 3. Neither the name of the University nor the names of its contributors 17df930be7Sderaadt * may be used to endorse or promote products derived from this software 18df930be7Sderaadt * without specific prior written permission. 19df930be7Sderaadt * 20df930be7Sderaadt * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21df930be7Sderaadt * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22df930be7Sderaadt * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23df930be7Sderaadt * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24df930be7Sderaadt * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25df930be7Sderaadt * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26df930be7Sderaadt * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27df930be7Sderaadt * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28df930be7Sderaadt * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29df930be7Sderaadt * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30df930be7Sderaadt * SUCH DAMAGE. 31df930be7Sderaadt * 32df930be7Sderaadt * @(#)kvm.h 8.1 (Berkeley) 6/2/93 33df930be7Sderaadt */ 34df930be7Sderaadt 35df930be7Sderaadt #ifndef _KVM_H_ 36df930be7Sderaadt #define _KVM_H_ 37df930be7Sderaadt 38df930be7Sderaadt /* Default version symbol. */ 39df930be7Sderaadt #define VRS_SYM "_version" 40df930be7Sderaadt #define VRS_KEY "VERSION" 41df930be7Sderaadt 422d420eafSart /* 432d420eafSart * Flag for kvm_open* that disables opening of any files. We're just 442d420eafSart * interested in a handle to run sysctls. 452d420eafSart */ 462d420eafSart #define KVM_NO_FILES 0x80000000 472d420eafSart 48df930be7Sderaadt #include <nlist.h> 4994e34ef1Sderaadt #include <stdio.h> 50df930be7Sderaadt 51df930be7Sderaadt __BEGIN_DECLS 52df930be7Sderaadt 53df930be7Sderaadt typedef struct __kvm kvm_t; 54df930be7Sderaadt 55df930be7Sderaadt struct kinfo_proc; 56c72b5b24Smillert int kvm_close(kvm_t *); 57c72b5b24Smillert int kvm_dump_inval(kvm_t *); 58c72b5b24Smillert int kvm_dump_mkheader(kvm_t *, off_t); 59c72b5b24Smillert int kvm_dump_wrtheader(kvm_t *, FILE *, int); 60c72b5b24Smillert char **kvm_getargv(kvm_t *, const struct kinfo_proc *, int); 61c72b5b24Smillert char **kvm_getenvv(kvm_t *, const struct kinfo_proc *, int); 62c72b5b24Smillert char *kvm_geterr(kvm_t *); 63c72b5b24Smillert int kvm_getloadavg(kvm_t *, double [], int); 64*cef0bbe1Sguenther struct kinfo_file * 65*cef0bbe1Sguenther kvm_getfiles(kvm_t *, int, int, size_t, int *); 66df930be7Sderaadt struct kinfo_proc * 6709431e5cSguenther kvm_getprocs(kvm_t *, int, int, size_t, int *); 68c72b5b24Smillert int kvm_nlist(kvm_t *, struct nlist *); 69ec99a482Sderaadt kvm_t *kvm_open(const char *, const char *, const char *, int, const char *); 70ec99a482Sderaadt kvm_t *kvm_openfiles(const char *, const char *, const char *, 714d25048fSderaadt int, char *); 72d1f942abSespie ssize_t kvm_read(kvm_t *, unsigned long, void *, size_t) 7389b95c1cSavsm __attribute__((__bounded__(__buffer__,3,4))); 74d1f942abSespie ssize_t kvm_write(kvm_t *, unsigned long, const void *, size_t) 7589b95c1cSavsm __attribute__((__bounded__(__buffer__,3,4))); 76df930be7Sderaadt 77df930be7Sderaadt __END_DECLS 78df930be7Sderaadt 79df930be7Sderaadt #endif /* !_KVM_H_ */ 80