xref: /minix3/include/kvm.h (revision f14fb602092e015ff630df58e17c2a9cd57d29b3)
1*f14fb602SLionel Sambuc /*	$NetBSD: kvm.h,v 1.16 2011/09/12 21:14:29 christos Exp $	*/
22fe8fb19SBen Gras 
32fe8fb19SBen Gras /*-
42fe8fb19SBen Gras  * Copyright (c) 1989, 1993
52fe8fb19SBen Gras  *	The Regents of the University of California.  All rights reserved.
62fe8fb19SBen Gras  *
72fe8fb19SBen Gras  * Redistribution and use in source and binary forms, with or without
82fe8fb19SBen Gras  * modification, are permitted provided that the following conditions
92fe8fb19SBen Gras  * are met:
102fe8fb19SBen Gras  * 1. Redistributions of source code must retain the above copyright
112fe8fb19SBen Gras  *    notice, this list of conditions and the following disclaimer.
122fe8fb19SBen Gras  * 2. Redistributions in binary form must reproduce the above copyright
132fe8fb19SBen Gras  *    notice, this list of conditions and the following disclaimer in the
142fe8fb19SBen Gras  *    documentation and/or other materials provided with the distribution.
152fe8fb19SBen Gras  * 3. Neither the name of the University nor the names of its contributors
162fe8fb19SBen Gras  *    may be used to endorse or promote products derived from this software
172fe8fb19SBen Gras  *    without specific prior written permission.
182fe8fb19SBen Gras  *
192fe8fb19SBen Gras  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
202fe8fb19SBen Gras  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
212fe8fb19SBen Gras  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
222fe8fb19SBen Gras  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
232fe8fb19SBen Gras  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
242fe8fb19SBen Gras  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
252fe8fb19SBen Gras  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
262fe8fb19SBen Gras  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
272fe8fb19SBen Gras  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
282fe8fb19SBen Gras  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
292fe8fb19SBen Gras  * SUCH DAMAGE.
302fe8fb19SBen Gras  *
312fe8fb19SBen Gras  *	@(#)kvm.h	8.1 (Berkeley) 6/2/93
322fe8fb19SBen Gras  */
332fe8fb19SBen Gras 
342fe8fb19SBen Gras #ifndef _KVM_H_
352fe8fb19SBen Gras #define	_KVM_H_
362fe8fb19SBen Gras 
372fe8fb19SBen Gras /* Default version symbol. */
382fe8fb19SBen Gras #define	VRS_SYM		"_version"
392fe8fb19SBen Gras #define	VRS_KEY		"VERSION"
402fe8fb19SBen Gras 
412fe8fb19SBen Gras /*
422fe8fb19SBen Gras  * Flag for kvm_open*() to disable opening of kernel files - used
432fe8fb19SBen Gras  * by programs that use only sysctl() function to access kernel
442fe8fb19SBen Gras  * information.
452fe8fb19SBen Gras  */
462fe8fb19SBen Gras #define KVM_NO_FILES	((int)0x80000000)
472fe8fb19SBen Gras 
482fe8fb19SBen Gras #include <nlist.h>
492fe8fb19SBen Gras #include <sys/cdefs.h>
502fe8fb19SBen Gras #include <sys/types.h>
512fe8fb19SBen Gras #include <stdbool.h>
522fe8fb19SBen Gras #include <stdio.h>
532fe8fb19SBen Gras 
542fe8fb19SBen Gras __BEGIN_DECLS
552fe8fb19SBen Gras 
562fe8fb19SBen Gras typedef struct __kvm kvm_t;
572fe8fb19SBen Gras 
582fe8fb19SBen Gras struct kinfo_proc;
592fe8fb19SBen Gras struct kinfo_proc2;
602fe8fb19SBen Gras int	  kvm_close(kvm_t *);
612fe8fb19SBen Gras int	  kvm_dump_inval(kvm_t *);
622fe8fb19SBen Gras int	  kvm_dump_mkheader(kvm_t *, off_t);
632fe8fb19SBen Gras int	  kvm_dump_header(kvm_t *, bool (*)(void *, const void *, size_t),
642fe8fb19SBen Gras 			  void *, int);
652fe8fb19SBen Gras int	  kvm_dump_wrtheader(kvm_t *, FILE *, int);
662fe8fb19SBen Gras char	**kvm_getargv(kvm_t *, const struct kinfo_proc *, int);
672fe8fb19SBen Gras char	**kvm_getargv2(kvm_t *, const struct kinfo_proc2 *, int);
682fe8fb19SBen Gras char	**kvm_getenvv(kvm_t *, const struct kinfo_proc *, int);
692fe8fb19SBen Gras char	**kvm_getenvv2(kvm_t *, const struct kinfo_proc2 *, int);
702fe8fb19SBen Gras char	 *kvm_geterr(kvm_t *);
712fe8fb19SBen Gras int	  kvm_getloadavg(kvm_t *, double [], int);
722fe8fb19SBen Gras char	 *kvm_getfiles(kvm_t *, int, int, int *);
732fe8fb19SBen Gras struct kinfo_lwp *
742fe8fb19SBen Gras 	  kvm_getlwps(kvm_t *, int, u_long, size_t, int *);
752fe8fb19SBen Gras struct kinfo_proc2 *
762fe8fb19SBen Gras 	  kvm_getproc2(kvm_t *, int, int, size_t, int *);
772fe8fb19SBen Gras struct kinfo_proc *
782fe8fb19SBen Gras 	  kvm_getprocs(kvm_t *, int, int, int *);
792fe8fb19SBen Gras int	  kvm_nlist(kvm_t *, struct nlist *);
802fe8fb19SBen Gras kvm_t	 *kvm_open
812fe8fb19SBen Gras 	    (const char *, const char *, const char *, int, const char *);
822fe8fb19SBen Gras kvm_t	 *kvm_openfiles(const char *, const char *, const char *, int, char *);
832fe8fb19SBen Gras ssize_t	  kvm_read(kvm_t *, u_long, void *, size_t);
842fe8fb19SBen Gras ssize_t	  kvm_write(kvm_t *, u_long, const void *, size_t);
85*f14fb602SLionel Sambuc const char *kvm_getkernelname(kvm_t *);
862fe8fb19SBen Gras 
872fe8fb19SBen Gras __END_DECLS
882fe8fb19SBen Gras 
892fe8fb19SBen Gras #endif /* !_KVM_H_ */
90