[BACK]Return to vmparam.h CVS log [TXT][DIR] Up to [local] / sys / arch / m88k / include

Annotation of sys/arch/m88k/include/vmparam.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: vmparam.h,v 1.8 2006/06/04 17:20:39 miod Exp $ */
                      2: /*
                      3:  * Mach Operating System
                      4:  * Copyright (c) 1992 Carnegie Mellon University
                      5:  * All Rights Reserved.
                      6:  *
                      7:  * Permission to use, copy, modify and distribute this software and its
                      8:  * documentation is hereby granted, provided that both the copyright
                      9:  * notice and this permission notice appear in all copies of the
                     10:  * software, derivative works or modified versions, and any portions
                     11:  * thereof, and that both notices appear in supporting documentation.
                     12:  *
                     13:  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
                     14:  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
                     15:  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     16:  *
                     17:  * Carnegie Mellon requests users of this software to return to
                     18:  *
                     19:  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
                     20:  *  School of Computer Science
                     21:  *  Carnegie Mellon University
                     22:  *  Pittsburgh PA 15213-3890
                     23:  *
                     24:  * any improvements or extensions that they make and grant Carnegie Mellon
                     25:  * the rights to redistribute these changes.
                     26:  */
                     27:
                     28: /*
                     29:  *     machine dependent virtual memory parameters.
                     30:  */
                     31:
                     32:
                     33: #ifndef        _MACHINE_VM_PARAM_
                     34: #define _MACHINE_VM_PARAM_
                     35:
                     36: /*
                     37:  * USRTEXT is the start of the user text/data space, while USRSTACK
                     38:  * is the top (end) of the user stack.
                     39:  */
                     40: #define        USRTEXT         0x1000                  /* Start of user text */
                     41: #define        USRSTACK        VM_MAXUSER_ADDRESS      /* Start of user stack */
                     42:
                     43: /*
                     44:  * Virtual memory related constants, all in bytes
                     45:  */
                     46: #ifndef MAXTSIZ
                     47: #define        MAXTSIZ         (8*1024*1024)           /* max text size */
                     48: #endif
                     49: #ifndef DFLDSIZ
                     50: #define        DFLDSIZ         (32*1024*1024)          /* initial data size limit */
                     51: #endif
                     52: #ifndef MAXDSIZ
                     53: #define        MAXDSIZ         (64*1024*1024)          /* max data size */
                     54: #endif
                     55: #ifndef        DFLSSIZ
                     56: #define        DFLSSIZ         (2*1024*1024)           /* initial stack size limit */
                     57: #endif
                     58: #ifndef        MAXSSIZ
                     59: #define        MAXSSIZ         MAXDSIZ                 /* max stack size */
                     60: #endif
                     61:
                     62: #define STACKGAP_RANDOM        256*1024
                     63:
                     64: /*
                     65:  * Size of shared memory map
                     66:  */
                     67: #ifndef SHMMAXPGS
                     68: #define SHMMAXPGS      1024
                     69: #endif
                     70:
                     71: #define        VM_MIN_ADDRESS          ((vaddr_t)0)
                     72: #define        VM_MAX_ADDRESS          ((vaddr_t)0xfffff000)
                     73: #define VM_MAXUSER_ADDRESS     VM_MAX_ADDRESS
                     74:
                     75: /*
                     76:  * Although user and supervisor address spaces are separate, we limit
                     77:  * ourselves to 512KB KVM because the kernel page table is statically
                     78:  * allocated.
                     79:  */
                     80: #define VM_MIN_KERNEL_ADDRESS  ((vaddr_t)0)
                     81: #define VM_MAX_KERNEL_ADDRESS  ((vaddr_t)0x20000000)
                     82:
                     83: /* virtual sizes (bytes) for various kernel submaps */
                     84: #define VM_PHYS_SIZE           (1 * NPTEPG * PAGE_SIZE)
                     85:
                     86: /*
                     87:  * Constants which control the way the VM system deals with memory segments.
                     88:  * The mvme88k only has one physical memory segment.
                     89:  */
                     90: #define        VM_PHYSSEG_MAX          1
                     91: #define        VM_PHYSSEG_STRAT        VM_PSTRAT_RANDOM
                     92: #define        VM_PHYSSEG_NOADD
                     93:
                     94: #define VM_NFREELIST           1
                     95: #define VM_FREELIST_DEFAULT    0
                     96:
                     97: #ifndef _LOCORE
                     98: /*
                     99:  * pmap-specific data stored in the vm_physmem[] array.
                    100:  */
                    101:
                    102: /* XXX - belongs in pmap.h, but put here because of ordering issues */
                    103: struct pv_entry {
                    104:        struct pv_entry *pv_next;       /* next pv_entry */
                    105:        struct pmap     *pv_pmap;       /* pmap where mapping lies */
                    106:        vaddr_t         pv_va;          /* virtual address for mapping */
                    107:        int             pv_flags;
                    108: };
                    109:
                    110: #define        __HAVE_VM_PAGE_MD
                    111: struct vm_page_md {
                    112:        struct pv_entry pvent;
                    113: };
                    114:
                    115: #define        VM_MDPAGE_INIT(pg) do {                 \
                    116:        (pg)->mdpage.pvent.pv_next = NULL;      \
                    117:        (pg)->mdpage.pvent.pv_pmap = NULL;      \
                    118:        (pg)->mdpage.pvent.pv_va = 0;           \
                    119:        (pg)->mdpage.pvent.pv_flags = 0;        \
                    120: } while (0)
                    121:
                    122: #endif /* _LOCORE */
                    123:
                    124: #endif /* _MACHINE_VM_PARAM_ */

CVSweb