149179Skarels /* 263379Sbostic * Copyright (c) 1991, 1993 363379Sbostic * The Regents of the University of California. All rights reserved. 449179Skarels * 549179Skarels * %sccs.include.redist.c% 649179Skarels * 7*69386Smckusick * @(#)vm.h 8.5 (Berkeley) 05/11/95 849179Skarels */ 949179Skarels 1049179Skarels #ifndef VM_H 1149179Skarels #define VM_H 1253333Sbostic 1353333Sbostic typedef int vm_inherit_t; /* XXX: inheritance codes */ 1453333Sbostic 1553333Sbostic union vm_map_object; 1653333Sbostic typedef union vm_map_object vm_map_object_t; 1753333Sbostic 1853333Sbostic struct vm_map_entry; 1953333Sbostic typedef struct vm_map_entry *vm_map_entry_t; 2053333Sbostic 2153333Sbostic struct vm_map; 2253333Sbostic typedef struct vm_map *vm_map_t; 2353333Sbostic 2453333Sbostic struct vm_object; 2553333Sbostic typedef struct vm_object *vm_object_t; 2653333Sbostic 2753333Sbostic struct vm_page; 2853333Sbostic typedef struct vm_page *vm_page_t; 2953333Sbostic 3053333Sbostic struct pager_struct; 3153333Sbostic typedef struct pager_struct *vm_pager_t; 3253333Sbostic 3368794Smckusick /* 34*69386Smckusick * MACH VM locking type mappings to kernel types 3568794Smckusick */ 3668924Smckusick typedef struct simplelock simple_lock_data_t; 3768924Smckusick typedef struct simplelock *simple_lock_t; 3868794Smckusick typedef struct lock lock_data_t; 3968794Smckusick typedef struct lock *lock_t; 4068794Smckusick 4153333Sbostic #include <sys/vmmeter.h> 4256439Smckusick #include <sys/queue.h> 43*69386Smckusick #include <vm/vm_param.h> 4468794Smckusick #include <sys/lock.h> 4549179Skarels #include <vm/vm_prot.h> 4649179Skarels #include <vm/vm_inherit.h> 4749179Skarels #include <vm/vm_map.h> 4849179Skarels #include <vm/vm_object.h> 4949179Skarels #include <vm/pmap.h> 5053333Sbostic #include <vm/vm_extern.h> 5149179Skarels 5249179Skarels /* 5349179Skarels * Shareable process virtual address space. 5449179Skarels * May eventually be merged with vm_map. 5549179Skarels * Several fields are temporary (text, data stuff). 5649179Skarels */ 5749179Skarels struct vmspace { 5849179Skarels struct vm_map vm_map; /* VM address map */ 5949179Skarels struct pmap vm_pmap; /* private physical map */ 6049179Skarels int vm_refcnt; /* number of references */ 6149179Skarels caddr_t vm_shm; /* SYS5 shared memory private data XXX */ 6249179Skarels /* we copy from vm_startcopy to the end of the structure on fork */ 6349179Skarels #define vm_startcopy vm_rssize 6449179Skarels segsz_t vm_rssize; /* current resident set size in pages */ 6549179Skarels segsz_t vm_swrss; /* resident set size before last swap */ 6649179Skarels segsz_t vm_tsize; /* text size (pages) XXX */ 6749179Skarels segsz_t vm_dsize; /* data size (pages) XXX */ 6849179Skarels segsz_t vm_ssize; /* stack size (pages) */ 6949179Skarels caddr_t vm_taddr; /* user virtual address of text XXX */ 7049179Skarels caddr_t vm_daddr; /* user virtual address of data XXX */ 7149179Skarels caddr_t vm_maxsaddr; /* user VA at max stack growth */ 7249179Skarels }; 7349179Skarels #endif /* VM_H */ 74