Marin Ramesa, le Mon 02 Dec 2013 22:54:44 +0100, a écrit : > * i386/intel/pmap.c (pv_entry, pmap_update_item, pmap_update_list): Move > struct definitions to i386/intel/pmap.h.
Ditto. > --- > 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 > > -- Samuel <T> csp.tar.gz: ascii text -+- #ens-mim - vive les browsers qui prennent des initiatives à la con -+-