OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [libnetworking/] [vm/] [vm_param.h] - Blame information for rev 279

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 30 unneback
/*
2
 * Copyright (c) 1991, 1993
3
 *      The Regents of the University of California.  All rights reserved.
4
 *
5
 * This code is derived from software contributed to Berkeley by
6
 * The Mach Operating System project at Carnegie-Mellon University.
7
 *
8
 * Redistribution and use in source and binary forms, with or without
9
 * modification, are permitted provided that the following conditions
10
 * are met:
11
 * 1. Redistributions of source code must retain the above copyright
12
 *    notice, this list of conditions and the following disclaimer.
13
 * 2. Redistributions in binary form must reproduce the above copyright
14
 *    notice, this list of conditions and the following disclaimer in the
15
 *    documentation and/or other materials provided with the distribution.
16
 * 3. All advertising materials mentioning features or use of this software
17
 *    must display the following acknowledgement:
18
 *      This product includes software developed by the University of
19
 *      California, Berkeley and its contributors.
20
 * 4. Neither the name of the University nor the names of its contributors
21
 *    may be used to endorse or promote products derived from this software
22
 *    without specific prior written permission.
23
 *
24
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34
 * SUCH DAMAGE.
35
 *
36
 *      from: @(#)vm_param.h    8.1 (Berkeley) 6/11/93
37
 *
38
 *
39
 * Copyright (c) 1987, 1990 Carnegie-Mellon University.
40
 * All rights reserved.
41
 *
42
 * Authors: Avadis Tevanian, Jr., Michael Wayne Young
43
 *
44
 * Permission to use, copy, modify and distribute this software and
45
 * its documentation is hereby granted, provided that both the copyright
46
 * notice and this permission notice appear in all copies of the
47
 * software, derivative works or modified versions, and any portions
48
 * thereof, and that both notices appear in supporting documentation.
49
 *
50
 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
51
 * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
52
 * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
53
 *
54
 * Carnegie Mellon requests users of this software to return to
55
 *
56
 *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
57
 *  School of Computer Science
58
 *  Carnegie Mellon University
59
 *  Pittsburgh PA 15213-3890
60
 *
61
 * any improvements or extensions that they make and grant Carnegie the
62
 * rights to redistribute these changes.
63
 *
64
 * $Id: vm_param.h,v 1.2 2001-09-27 12:02:00 chris Exp $
65
 */
66
 
67
/*
68
 *      Machine independent virtual memory parameters.
69
 */
70
 
71
#ifndef _VM_PARAM_
72
#define _VM_PARAM_
73
 
74
#include <machine/vmparam.h>
75
 
76
/*
77
 *      The machine independent pages are refered to as PAGES.  A page
78
 *      is some number of hardware pages, depending on the target machine.
79
 */
80
#define DEFAULT_PAGE_SIZE       4096
81
 
82
#if 0
83
 
84
/*
85
 *      All references to the size of a page should be done with PAGE_SIZE
86
 *      or PAGE_SHIFT.  The fact they are variables is hidden here so that
87
 *      we can easily make them constant if we so desire.
88
 */
89
#ifndef PAGE_SIZE
90
#define PAGE_SIZE       cnt.v_page_size /* size of page */
91
#endif
92
#ifndef PAGE_MASK
93
#define PAGE_MASK       page_mask       /* size of page - 1 */
94
#endif
95
#ifndef PAGE_SHIFT
96
#define PAGE_SHIFT      page_shift      /* bits to shift for pages */
97
#endif
98
 
99
#endif
100
 
101
#ifdef KERNEL
102
extern vm_size_t page_mask;
103
extern int page_shift;
104
 
105
#endif
106
 
107
/*
108
 * CTL_VM identifiers
109
 */
110
#define VM_METER                1       /* struct vmmeter */
111
#define VM_LOADAVG              2       /* struct loadavg */
112
#define VM_V_FREE_MIN           3       /* cnt.v_free_min */
113
#define VM_V_FREE_TARGET        4       /* cnt.v_free_target */
114
#define VM_V_FREE_RESERVED      5       /* cnt.v_free_reserved */
115
#define VM_V_INACTIVE_TARGET    6       /* cnt.v_inactive_target */
116
#define VM_V_CACHE_MIN          7       /* cnt.v_cache_max */
117
#define VM_V_CACHE_MAX          8       /* cnt.v_cache_min */
118
#define VM_V_PAGEOUT_FREE_MIN   9       /* cnt.v_pageout_free_min */
119
#define VM_PAGEOUT_ALGORITHM    10      /* pageout algorithm */
120
#define VM_SWAPPING_ENABLED     11      /* swapping enabled */
121
#define VM_MAXID                12      /* number of valid vm ids */
122
 
123
#define CTL_VM_NAMES { \
124
        { 0, 0 }, \
125
        { "vmmeter", CTLTYPE_STRUCT }, \
126
        { "loadavg", CTLTYPE_STRUCT }, \
127
        { "v_free_min", CTLTYPE_INT }, \
128
        { "v_free_target", CTLTYPE_INT }, \
129
        { "v_free_reserved", CTLTYPE_INT }, \
130
        { "v_inactive_target", CTLTYPE_INT }, \
131
        { "v_cache_min", CTLTYPE_INT }, \
132
        { "v_cache_max", CTLTYPE_INT }, \
133
        { "v_pageout_free_min", CTLTYPE_INT}, \
134
        { "pageout_algorithm", CTLTYPE_INT}, \
135
        { "swapping_enabled", CTLTYPE_INT},\
136
}
137
 
138
/*
139
 *      Return values from the VM routines.
140
 */
141
#define KERN_SUCCESS            0
142
#define KERN_INVALID_ADDRESS    1
143
#define KERN_PROTECTION_FAILURE 2
144
#define KERN_NO_SPACE           3
145
#define KERN_INVALID_ARGUMENT   4
146
#define KERN_FAILURE            5
147
#define KERN_RESOURCE_SHORTAGE  6
148
#define KERN_NOT_RECEIVER       7
149
#define KERN_NO_ACCESS          8
150
 
151
#ifndef ASSEMBLER
152
/*
153
 *      Convert addresses to pages and vice versa.
154
 *      No rounding is used.
155
 */
156
#ifdef KERNEL
157
#define num_pages(x) \
158
        ((vm_offset_t)((((vm_offset_t)(x)) + PAGE_MASK) >> PAGE_SHIFT))
159
 
160
extern vm_size_t mem_size;      /* size of physical memory (bytes) */
161
extern vm_offset_t first_addr;  /* first physical page */
162
extern vm_offset_t last_addr;   /* last physical page */
163
#endif                          /* KERNEL */
164
#endif                          /* ASSEMBLER */
165
#endif                          /* _VM_PARAM_ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.