* i386/intel/pmap.c (pv_entry, pmap_update_item, pmap_update_list): Move struct definitions to i386/intel/pmap.h.
--- i386/intel/pmap.c | 45 --------------------------------------------- i386/intel/pmap.h | 46 +++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 45 insertions(+), 46 deletions(-) diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c index 038f3a8..7a5abfd 100644 --- a/i386/intel/pmap.c +++ b/i386/intel/pmap.c @@ -94,20 +94,6 @@ * Private data structures. */ -/* - * For each vm_page_t, there is a list of all currently - * valid virtual mappings of that page. An entry is - * a pv_entry_t; the list is the pv_table. - */ - -typedef struct pv_entry { - struct pv_entry *next; /* next pv_entry */ - pmap_t pmap; /* pmap where mapping lies */ - vm_offset_t va; /* virtual address for mapping */ -} *pv_entry_t; - -#define PV_ENTRY_NULL ((pv_entry_t) 0) - pv_entry_t pv_head_table; /* array of entries, one per page */ /* @@ -360,37 +346,6 @@ lock_data_t pmap_system_lock; #endif #endif /* MACH_PV_PAGETABLES */ - -#if NCPUS > 1 -/* - * Structures to keep track of pending TLB invalidations - */ - -#define UPDATE_LIST_SIZE 4 - -struct pmap_update_item { - pmap_t pmap; /* pmap to invalidate */ - vm_offset_t start; /* start address to invalidate */ - vm_offset_t end; /* end address to invalidate */ -} ; - -typedef struct pmap_update_item *pmap_update_item_t; - -/* - * List of pmap updates. If the list overflows, - * the last entry is changed to invalidate all. - */ -struct pmap_update_list { - decl_simple_lock_data(, lock) - int count; - struct pmap_update_item item[UPDATE_LIST_SIZE]; -} ; -typedef struct pmap_update_list *pmap_update_list_t; - -struct pmap_update_list cpu_update_list[NCPUS]; - -#endif /* NCPUS > 1 */ - /* * Other useful macros. */ diff --git a/i386/intel/pmap.h b/i386/intel/pmap.h index 087e0ef..8aab677 100644 --- a/i386/intel/pmap.h +++ b/i386/intel/pmap.h @@ -174,9 +174,53 @@ struct pmap { cpu_set cpus_using; /* bitmap of cpus using pmap */ }; +#define PMAP_NULL ((pmap_t) 0) + typedef struct pmap *pmap_t; -#define PMAP_NULL ((pmap_t) 0) +/* + * For each vm_page_t, there is a list of all currently + * valid virtual mappings of that page. An entry is + * a pv_entry_t; the list is the pv_table. + */ + +typedef struct pv_entry { + struct pv_entry *next; /* next pv_entry */ + pmap_t pmap; /* pmap where mapping lies */ + vm_offset_t va; /* virtual address for mapping */ +} *pv_entry_t; + +#define PV_ENTRY_NULL ((pv_entry_t) 0) + +struct pmap_update_item { + pmap_t pmap; /* pmap to invalidate */ + vm_offset_t start; /* start address to invalidate */ + vm_offset_t end; /* end address to invalidate */ +} ; + +typedef struct pmap_update_item *pmap_update_item_t; + +#if NCPUS > 1 +/* + * Structures to keep track of pending TLB invalidations + */ + +#define UPDATE_LIST_SIZE 4 + +/* + * List of pmap updates. If the list overflows, + * the last entry is changed to invalidate all. + */ +struct pmap_update_list { + decl_simple_lock_data(, lock) + int count; + struct pmap_update_item item[UPDATE_LIST_SIZE]; +} ; +typedef struct pmap_update_list *pmap_update_list_t; + +struct pmap_update_list cpu_update_list[NCPUS]; + +#endif /* NCPUS > 1 */ #ifdef MACH_PV_PAGETABLES extern void pmap_set_page_readwrite(void *addr); -- 1.8.1.4