void	pmap_activate __P((pmap_t)); void	pmap_deactivate __P((pmap_t));
TAILQ_HEAD(pv_page_list, pv_page) pv_page_freelist;int		pv_nfree;#ifdef M68K_MMU_HPint		pmap_aliasmask;	/* seperation at which VA aliasing ok */#endif#if defined(M68040)int		protostfree;	/* prototype (default) free ST map */#endifstruct pv_entry *pmap_alloc_pv __P((void));void	pmap_free_pv __P((struct pv_entry *));void	pmap_collect_pv __P((void));void	pmap_activate __P((pmap_t));void	pmap_deactivate __P((pmap_t));#ifdef COMPAT_HPUXint	pmap_mapmulti __P((pmap_t, vm_offset_t));#endif /* COMPAT_HPUX *//* * Internal routines */void	pmap_remove_mapping __P((pmap_t, vm_offset_t, pt_entry_t *, int));boolean_t pmap_testbit	__P((vm_offset_t, int));void	pmap_changebit	__P((vm_offset_t, int, boolean_t));void	pmap_enter_ptpage	__P((pmap_t, vm_offset_t));#ifdef DEBUGvoid pmap_pvdump	__P((vm_offset_t));void pmap_check_wiring	__P((char *, vm_offset_t));#endif/* pmap_remove_mapping flags */#define	PRM_TFLUSH	1#define	PRM_CFLUSH	2/* * Bootstrap memory allocator. This function allows for early dynamic * memory allocation until the virtual memory system has been bootstrapped. * After that point, either kmem_alloc or malloc should be used. This * function works by stealing pages from the (to be) managed page pool, * stealing virtual address space, then mapping the pages and zeroing them. * * It should be used from pmap_bootstrap till vm_page_startup, afterwards * it cannot be used, and will generate a panic if tried. Note that this * memory will never be freed, and in essence it is wired down. */void *pmap_bootstrap_alloc(size)	int size;{	extern boolean_t vm_page_startup_initialized;	vm_offset_t val;		if (vm_page_startup_initialized)		panic("pmap_bootstrap_alloc: called after startup initialized");	size = round_page(size);	val = virtual_avail;	virtual_avail = pmap_map(virtual_avail, avail_start,		avail_start + size, VM_PROT_READ|VM_PROT_WRITE);	avail_start += size;	bzero ((caddr_t) val, size);	return ((void *) val);}