X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=include%2Flinux%2Fmm_types.h;h=87577d37f97b95e499986acd1f37d92abff989dc;hb=76b36fa896a2db64582690e085f36adc76604134;hp=d3ebb9d21a5334d26e85bc865d318535f5864569;hpb=92e963f50fc74041b5e9e744c330dca48e04f08d;p=linux.git diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index d3ebb9d21a53..87577d37f97b 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -566,10 +566,26 @@ static inline void clear_tlb_flush_pending(struct mm_struct *mm) } #endif -struct vm_special_mapping -{ - const char *name; +struct vm_fault; + +struct vm_special_mapping { + const char *name; /* The name, e.g. "[vdso]". */ + + /* + * If .fault is not provided, this points to a + * NULL-terminated array of pages that back the special mapping. + * + * This must not be NULL unless .fault is provided. + */ struct page **pages; + + /* + * If non-NULL, then this is called to resolve page faults + * on the special mapping. If used, .pages is not checked. + */ + int (*fault)(const struct vm_special_mapping *sm, + struct vm_area_struct *vma, + struct vm_fault *vmf); }; enum tlb_flush_reason {