diff options
Diffstat (limited to 'arch/sh/include/asm/mmu.h')
| -rw-r--r-- | arch/sh/include/asm/mmu.h | 49 | 
1 files changed, 28 insertions, 21 deletions
diff --git a/arch/sh/include/asm/mmu.h b/arch/sh/include/asm/mmu.h index c7426ad9926e..15a05b615ba7 100644 --- a/arch/sh/include/asm/mmu.h +++ b/arch/sh/include/asm/mmu.h @@ -11,7 +11,9 @@  #define PMB_ADDR		0xf6100000  #define PMB_DATA		0xf7100000 -#define PMB_ENTRY_MAX		16 + +#define NR_PMB_ENTRIES		16 +  #define PMB_E_MASK		0x0000000f  #define PMB_E_SHIFT		8 @@ -25,11 +27,15 @@  #define PMB_C			0x00000008  #define PMB_WT			0x00000001  #define PMB_UB			0x00000200 +#define PMB_CACHE_MASK		(PMB_C | PMB_WT | PMB_UB)  #define PMB_V			0x00000100  #define PMB_NO_ENTRY		(-1)  #ifndef __ASSEMBLY__ +#include <linux/errno.h> +#include <linux/threads.h> +#include <asm/page.h>  /* Default "unsigned long" context */  typedef unsigned long mm_context_id_t[NR_CPUS]; @@ -47,29 +53,30 @@ typedef struct {  #endif  } mm_context_t; -struct pmb_entry; - -struct pmb_entry { -	unsigned long vpn; -	unsigned long ppn; -	unsigned long flags; - -	/* -	 * 0 .. NR_PMB_ENTRIES for specific entry selection, or -	 * PMB_NO_ENTRY to search for a free one -	 */ -	int entry; - -	struct pmb_entry *next; -	/* Adjacent entry link for contiguous multi-entry mappings */ -	struct pmb_entry *link; -}; - +#ifdef CONFIG_PMB  /* arch/sh/mm/pmb.c */  long pmb_remap(unsigned long virt, unsigned long phys, -	       unsigned long size, unsigned long flags); +	       unsigned long size, pgprot_t prot);  void pmb_unmap(unsigned long addr); -int pmb_init(void); +void pmb_init(void); +bool __in_29bit_mode(void); +#else +static inline long pmb_remap(unsigned long virt, unsigned long phys, +			     unsigned long size, pgprot_t prot) +{ +	return -EINVAL; +} + +#define pmb_unmap(addr)		do { } while (0) +#define pmb_init(addr)		do { } while (0) + +#ifdef CONFIG_29BIT +#define __in_29bit_mode()	(1) +#else +#define __in_29bit_mode()	(0) +#endif + +#endif /* CONFIG_PMB */  #endif /* __ASSEMBLY__ */  #endif /* __MMU_H */  | 
