Sat Aug 20 23:26:02 2022 UTC ()
uvm_pdpolicy.h: Fix missing forward declarations and includes.


(riastradh)
diff -r1.8 -r1.9 src/sys/uvm/uvm_pdpolicy.h

cvs diff -r1.8 -r1.9 src/sys/uvm/uvm_pdpolicy.h (expand / switch to unified diff)

--- src/sys/uvm/uvm_pdpolicy.h 2020/05/17 19:38:17 1.8
+++ src/sys/uvm/uvm_pdpolicy.h 2022/08/20 23:26:02 1.9
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: uvm_pdpolicy.h,v 1.8 2020/05/17 19:38:17 ad Exp $ */ 1/* $NetBSD: uvm_pdpolicy.h,v 1.9 2022/08/20 23:26:02 riastradh Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c)2005, 2006 YAMAMOTO Takashi, 4 * Copyright (c)2005, 2006 YAMAMOTO Takashi,
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without 7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions 8 * modification, are permitted provided that the following conditions
9 * are met: 9 * are met:
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer. 11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright 12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the 13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution. 14 * documentation and/or other materials provided with the distribution.
@@ -19,54 +19,61 @@ @@ -19,54 +19,61 @@
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE. 26 * SUCH DAMAGE.
27 */ 27 */
28 28
29#ifndef _UVM_PDPOLICY_H_ 29#ifndef _UVM_PDPOLICY_H_
30#define _UVM_PDPOLICY_H_ 30#define _UVM_PDPOLICY_H_
31 31
32struct vm_page; 32#include <sys/mutex.h>
 33#include <sys/stdint.h>
 34
 35#include <uvm/uvm_page.h>
 36
 37struct krwlock;
 38struct uvm_cpu;
33struct vm_anon; 39struct vm_anon;
 40struct vm_page;
34 41
35/* 42/*
36 * these API is for uvm internal use only. 43 * these API is for uvm internal use only.
37 * don't use them directly from outside of /sys/uvm. 44 * don't use them directly from outside of /sys/uvm.
38 */ 45 */
39 46
40void uvmpdpol_idle(struct uvm_cpu *); 47void uvmpdpol_idle(struct uvm_cpu *);
41void uvmpdpol_init(void); 48void uvmpdpol_init(void);
42void uvmpdpol_init_cpu(struct uvm_cpu *); 49void uvmpdpol_init_cpu(struct uvm_cpu *);
43void uvmpdpol_reinit(void); 50void uvmpdpol_reinit(void);
44void uvmpdpol_estimatepageable(int *, int *); 51void uvmpdpol_estimatepageable(int *, int *);
45bool uvmpdpol_needsscan_p(void); 52bool uvmpdpol_needsscan_p(void);
46 53
47void uvmpdpol_pageactivate(struct vm_page *); 54void uvmpdpol_pageactivate(struct vm_page *);
48void uvmpdpol_pagedeactivate(struct vm_page *); 55void uvmpdpol_pagedeactivate(struct vm_page *);
49void uvmpdpol_pagedequeue(struct vm_page *); 56void uvmpdpol_pagedequeue(struct vm_page *);
50void uvmpdpol_pageenqueue(struct vm_page *); 57void uvmpdpol_pageenqueue(struct vm_page *);
51bool uvmpdpol_pageactivate_p(struct vm_page *); 58bool uvmpdpol_pageactivate_p(struct vm_page *);
52bool uvmpdpol_pageisqueued_p(struct vm_page *); 59bool uvmpdpol_pageisqueued_p(struct vm_page *);
53void uvmpdpol_pagerealize(struct vm_page *); 60void uvmpdpol_pagerealize(struct vm_page *);
54void uvmpdpol_anfree(struct vm_anon *); 61void uvmpdpol_anfree(struct vm_anon *);
55 62
56void uvmpdpol_tune(void); 63void uvmpdpol_tune(void);
57void uvmpdpol_scaninit(void); 64void uvmpdpol_scaninit(void);
58void uvmpdpol_scanfini(void); 65void uvmpdpol_scanfini(void);
59struct vm_page *uvmpdpol_selectvictim(krwlock_t **lock); 66struct vm_page *uvmpdpol_selectvictim(struct krwlock **);
60void uvmpdpol_balancequeue(int); 67void uvmpdpol_balancequeue(int);
61 68
62void uvmpdpol_sysctlsetup(void); 69void uvmpdpol_sysctlsetup(void);
63 70
64/* 71/*
65 * uvmpdpol_set_intent: set an intended state for the page, taking care not 72 * uvmpdpol_set_intent: set an intended state for the page, taking care not
66 * to overwrite any of the other flags. 73 * to overwrite any of the other flags.
67 */ 74 */
68 75
69static inline void 76static inline void
70uvmpdpol_set_intent(struct vm_page *pg, uint32_t i) 77uvmpdpol_set_intent(struct vm_page *pg, uint32_t i)
71{ 78{
72 79