/*-1* SPDX-License-Identifier: (BSD-3-Clause AND MIT-CMU)2*3* Copyright (c) 1991, 19934* The Regents of the University of California. All rights reserved.5*6* This code is derived from software contributed to Berkeley by7* The Mach Operating System project at Carnegie-Mellon University.8*9* Redistribution and use in source and binary forms, with or without10* modification, are permitted provided that the following conditions11* are met:12* 1. Redistributions of source code must retain the above copyright13* notice, this list of conditions and the following disclaimer.14* 2. Redistributions in binary form must reproduce the above copyright15* notice, this list of conditions and the following disclaimer in the16* documentation and/or other materials provided with the distribution.17* 3. Neither the name of the University nor the names of its contributors18* may be used to endorse or promote products derived from this software19* without specific prior written permission.20*21* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND22* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE23* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE24* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE25* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL26* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS27* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)28* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT29* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY30* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF31* SUCH DAMAGE.32*33*34* Copyright (c) 1987, 1990 Carnegie-Mellon University.35* All rights reserved.36*37* Authors: Avadis Tevanian, Jr., Michael Wayne Young38*39* Permission to use, copy, modify and distribute this software and40* its documentation is hereby granted, provided that both the copyright41* notice and this permission notice appear in all copies of the42* software, derivative works or modified versions, and any portions43* thereof, and that both notices appear in supporting documentation.44*45* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"46* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND47* FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.48*49* Carnegie Mellon requests users of this software to return to50*51* Software Distribution Coordinator or [email protected]52* School of Computer Science53* Carnegie Mellon University54* Pittsburgh PA 15213-389055*56* any improvements or extensions that they make and grant Carnegie the57* rights to redistribute these changes.58*/5960/*61* Machine independent virtual memory parameters.62*/6364#ifndef _VM_PARAM_65#define _VM_PARAM_6667#include <machine/vmparam.h>6869/*70* CTL_VM identifiers71*/72#define VM_TOTAL 1 /* struct vmtotal */73#define VM_METER VM_TOTAL/* deprecated, use VM_TOTAL */74#define VM_LOADAVG 2 /* struct loadavg */75#define VM_V_FREE_MIN 3 /* vm_cnt.v_free_min */76#define VM_V_FREE_TARGET 4 /* vm_cnt.v_free_target */77#define VM_V_FREE_RESERVED 5 /* vm_cnt.v_free_reserved */78#define VM_V_INACTIVE_TARGET 6 /* vm_cnt.v_inactive_target */79#define VM_OBSOLETE_7 7 /* unused, formerly v_cache_min */80#define VM_OBSOLETE_8 8 /* unused, formerly v_cache_max */81#define VM_V_PAGEOUT_FREE_MIN 9 /* vm_cnt.v_pageout_free_min */82#define VM_OBSOLETE_10 10 /* pageout algorithm */83#define VM_SWAPPING_ENABLED 11 /* swapping enabled */84#define VM_OVERCOMMIT 12 /* vm.overcommit */85#define VM_MAXID 13 /* number of valid vm ids */8687/*88* Structure for swap device statistics89*/90#define XSWDEV_VERSION 291struct xswdev {92u_int xsw_version;93dev_t xsw_dev;94int xsw_flags;95int xsw_nblks;96int xsw_used;97};9899/*100* Return values from the VM routines.101*/102#define KERN_SUCCESS 0103#define KERN_INVALID_ADDRESS 1104#define KERN_PROTECTION_FAILURE 2105#define KERN_NO_SPACE 3106#define KERN_INVALID_ARGUMENT 4107#define KERN_FAILURE 5108#define KERN_RESOURCE_SHORTAGE 6109#define KERN_NOT_RECEIVER 7110#define KERN_NO_ACCESS 8111#define KERN_OUT_OF_BOUNDS 9112#define KERN_RESTART 10113114#ifndef KSTACK_MAX_PAGES115#define KSTACK_MAX_PAGES 32116#endif117118#ifndef PHYS_AVAIL_ENTRIES119#define PHYS_AVAIL_ENTRIES (VM_PHYSSEG_MAX * 2)120#endif121#define PHYS_AVAIL_COUNT (PHYS_AVAIL_ENTRIES + 2)122123#ifndef ASSEMBLER124#ifdef _KERNEL125#define num_pages(x) \126((vm_offset_t)((((vm_offset_t)(x)) + PAGE_MASK) >> PAGE_SHIFT))127extern unsigned long maxtsiz;128extern unsigned long dfldsiz;129extern unsigned long maxdsiz;130extern unsigned long dflssiz;131extern unsigned long maxssiz;132extern unsigned long sgrowsiz;133#endif /* _KERNEL */134#endif /* ASSEMBLER */135#endif /* _VM_PARAM_ */136137138