/*-1* SPDX-License-Identifier: BSD-2-Clause2*3* Copyright (c) 2002-2006 Rice University4* Copyright (c) 2007 Alan L. Cox <[email protected]>5* All rights reserved.6*7* This software was developed for the FreeBSD Project by Alan L. Cox,8* Olivier Crameri, Peter Druschel, Sitaram Iyer, and Juan Navarro.9*10* Redistribution and use in source and binary forms, with or without11* modification, are permitted provided that the following conditions12* are met:13* 1. Redistributions of source code must retain the above copyright14* notice, this list of conditions and the following disclaimer.15* 2. Redistributions in binary form must reproduce the above copyright16* notice, this list of conditions and the following disclaimer in the17* documentation and/or other materials provided with the distribution.18*19* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS20* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT21* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR22* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT23* HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,24* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,25* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS26* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED27* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT28* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY29* WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE30* POSSIBILITY OF SUCH DAMAGE.31*/3233#ifndef __VM_PHYS_H_34#define __VM_PHYS_H_3536#include <machine/vmparam.h>3738#ifndef VM_NFREEORDER_MAX39#define VM_NFREEORDER_MAX VM_NFREEORDER40#endif4142struct vm_page;43#ifndef VM_PAGE_HAVE_PGLIST44TAILQ_HEAD(pglist, vm_page);45#define VM_PAGE_HAVE_PGLIST46#endif4748struct vm_freelist {49struct pglist pl;50int lcnt;51};5253struct vm_phys_seg {54vm_paddr_t start;55vm_paddr_t end;56vm_page_t first_page;57#if VM_NRESERVLEVEL > 058vm_reserv_t first_reserv;59#endif60#ifdef __aarch64__61void *md_first;62#endif63int domain;64struct vm_freelist (*free_queues)[VM_NFREEPOOL][VM_NFREEORDER_MAX];65};6667extern struct vm_phys_seg vm_phys_segs[];68extern int vm_phys_nsegs;6970#endif /* !__VM_PHYS_H_ */717273