#ifndef __ISP_MMU_H__
#define __ISP_MMU_H__
#include <linux/types.h>
#include <linux/mutex.h>
#include <linux/slab.h>
#define ISP_PAGE_OFFSET …
#define ISP_PAGE_SIZE …
#define ISP_PAGE_MASK …
#define ISP_L1PT_OFFSET …
#define ISP_L1PT_MASK …
#define ISP_L2PT_OFFSET …
#define ISP_L2PT_MASK …
#define ISP_L1PT_PTES …
#define ISP_L2PT_PTES …
#define ISP_PTR_TO_L1_IDX(x) …
#define ISP_PTR_TO_L2_IDX(x) …
#define ISP_PAGE_ALIGN(x) …
#define ISP_PT_TO_VIRT(l1_idx, l2_idx, offset) …
#define pgnr_to_size(pgnr) …
#define size_to_pgnr_ceil(size) …
#define size_to_pgnr_bottom(size) …
struct isp_mmu;
struct isp_mmu_client { … };
struct isp_mmu { … };
#define ISP_PTE_VALID_MASK(mmu) …
#define ISP_PTE_VALID(mmu, pte) …
#define NULL_PAGE …
#define PAGE_VALID(page) …
int isp_mmu_init(struct isp_mmu *mmu, struct isp_mmu_client *driver);
void isp_mmu_exit(struct isp_mmu *mmu);
int isp_mmu_map(struct isp_mmu *mmu, unsigned int isp_virt,
phys_addr_t phys, unsigned int pgnr);
void isp_mmu_unmap(struct isp_mmu *mmu, unsigned int isp_virt,
unsigned int pgnr);
static inline void isp_mmu_flush_tlb_all(struct isp_mmu *mmu)
{ … }
#define isp_mmu_flush_tlb …
static inline void isp_mmu_flush_tlb_range(struct isp_mmu *mmu,
unsigned int start, unsigned int size)
{ … }
#endif