Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | /* SPDX-License-Identifier: GPL-2.0 */ /* * Memory management types stub for U-Boot * * U-Boot doesn't have virtual memory management, so these are stubs. */ #ifndef _LINUX_MM_TYPES_H #define _LINUX_MM_TYPES_H #include <linux/types.h> /* Forward declarations */ struct file; struct folio; struct address_space; /** * struct page - minimal stub for page structure * @flags: page flags * * U-Boot stub - only the flags field is provided. */ struct page { unsigned long flags; }; /** * typedef vm_fault_t - return type for page fault handlers * * Encodes the result of a page fault. */ typedef unsigned int vm_fault_t; /* VM flags for vm_area_struct */ #define VM_SHARED 0x00000008 #define VM_WRITE 0x00000002 #define VM_HUGEPAGE 0x01000000 /* Fault flags */ #define FAULT_FLAG_WRITE 0x01 /* VM fault return values */ #define VM_FAULT_SIGBUS 0x0002 #define VM_FAULT_NOPAGE 0x0010 #define VM_FAULT_LOCKED 0x0200 /* VM fault error helper */ #define vmf_fs_error(e) ((vm_fault_t)VM_FAULT_SIGBUS) /* Maximum order for page cache allocations */ #define MAX_PAGECACHE_ORDER 12 struct vm_operations_struct; /** * struct vm_area_struct - virtual memory area * @vm_start: start address * @vm_end: end address * @vm_file: file this vma is associated with * @vm_flags: VM flags * * U-Boot stub. */ struct vm_area_struct { unsigned long vm_start; unsigned long vm_end; struct file *vm_file; unsigned long vm_flags; }; /** * struct vm_fault - virtual memory fault info * @vma: virtual memory area * @address: faulting address * @flags: fault flags * @pgoff: page offset * @folio: folio being faulted * @page: page being faulted * * U-Boot stub. */ struct vm_fault { struct vm_area_struct *vma; unsigned long address; unsigned int flags; pgoff_t pgoff; struct folio *folio; struct page *page; }; /** * struct vm_operations_struct - virtual memory area operations * * Callbacks for VM operations. U-Boot stub. */ struct vm_operations_struct { vm_fault_t (*fault)(struct vm_fault *vmf); vm_fault_t (*huge_fault)(struct vm_fault *vmf, unsigned int order); vm_fault_t (*page_mkwrite)(struct vm_fault *vmf); vm_fault_t (*pfn_mkwrite)(struct vm_fault *vmf); vm_fault_t (*map_pages)(struct vm_fault *vmf, pgoff_t start, pgoff_t end); }; /** * struct vm_area_desc - for mmap_prepare * @file: associated file * @vm_flags: VM flags * @vm_ops: VM operations * * U-Boot stub. */ struct vm_area_desc { struct file *file; unsigned long vm_flags; const struct vm_operations_struct *vm_ops; }; #endif /* _LINUX_MM_TYPES_H */ |