/* * Copyright (c) 1991 Regents of the University of California. * All rights reserved. * * %sccs.include.redist.c% * * @(#)vm.h 7.4 (Berkeley) 10/07/92 */ #ifndef VM_H #define VM_H typedef int vm_inherit_t; /* XXX: inheritance codes */ union vm_map_object; typedef union vm_map_object vm_map_object_t; struct vm_map_entry; typedef struct vm_map_entry *vm_map_entry_t; struct vm_map; typedef struct vm_map *vm_map_t; struct vm_object; typedef struct vm_object *vm_object_t; struct vm_page; typedef struct vm_page *vm_page_t; struct pager_struct; typedef struct pager_struct *vm_pager_t; #include #include /* * Compatibility with old MACH queue.h */ typedef struct queue_entry *queue_t; typedef struct queue_entry queue_head_t; typedef struct queue_entry queue_chain_t; typedef struct queue_entry *queue_entry_t; #define queue_first(head) ((head)->next) #define queue_next(elm) ((elm)->next) #define queue_empty(head) ((head)->next == 0) #define queue_end(elm, head) ((elm) == 0) #define queue_enter(head, elt, type, field) \ queue_enter_tail(head, elt, type, field) #define queue_remove_first(head, elt, type, field) { \ elt = queue_first(head); \ queue_remove(head, elt, type, field) \ } #include #include #include #include #include #include #include #include /* * Shareable process virtual address space. * May eventually be merged with vm_map. * Several fields are temporary (text, data stuff). */ struct vmspace { struct vm_map vm_map; /* VM address map */ struct pmap vm_pmap; /* private physical map */ int vm_refcnt; /* number of references */ caddr_t vm_shm; /* SYS5 shared memory private data XXX */ /* we copy from vm_startcopy to the end of the structure on fork */ #define vm_startcopy vm_rssize segsz_t vm_rssize; /* current resident set size in pages */ segsz_t vm_swrss; /* resident set size before last swap */ segsz_t vm_tsize; /* text size (pages) XXX */ segsz_t vm_dsize; /* data size (pages) XXX */ segsz_t vm_ssize; /* stack size (pages) */ caddr_t vm_taddr; /* user virtual address of text XXX */ caddr_t vm_daddr; /* user virtual address of data XXX */ caddr_t vm_maxsaddr; /* user VA at max stack growth */ }; #endif /* VM_H */