Lines Matching full:flags
41 mm_flags_t flags; /* Must use mm_flags_* helpers to access */ member
45 unsigned long flags; member
163 /* Flags that reuse flags above. */
255 /* Despite the naming, these are FLAGS not bits. */
346 /* Temporary until VMA flags conversion complete. */
351 /* VMA basic access permission flags */
415 * Flags for bug emulation.
448 static __always_inline bool vma_flags_empty(const vma_flags_t *flags) in vma_flags_empty() argument
450 const unsigned long *bitmap = flags->__vma_flags; in vma_flags_empty()
555 * Flags, see mm.h.
560 vma_flags_t flags; member
746 unsigned long flags; member
794 return test_bit(flag, ACCESS_PRIVATE(&mm->flags, __mm_flags)); in mm_flags_test()
798 * Copy value to the first system word of VMA flags, non-atomically.
803 static __always_inline void vma_flags_overwrite_word(vma_flags_t *flags, in vma_flags_overwrite_word() argument
806 unsigned long *bitmap = flags->__vma_flags; in vma_flags_overwrite_word()
812 * Copy value to the first system word of VMA flags ONCE, non-atomically.
817 static __always_inline void vma_flags_overwrite_word_once(vma_flags_t *flags, in vma_flags_overwrite_word_once() argument
820 unsigned long *bitmap = flags->__vma_flags; in vma_flags_overwrite_word_once()
825 /* Update the first system word of VMA flags setting bits, non-atomically. */
826 static __always_inline void vma_flags_set_word(vma_flags_t *flags, in vma_flags_set_word() argument
829 unsigned long *bitmap = flags->__vma_flags; in vma_flags_set_word()
834 /* Update the first system word of VMA flags clearing bits, non-atomically. */
835 static __always_inline void vma_flags_clear_word(vma_flags_t *flags, in vma_flags_clear_word() argument
838 unsigned long *bitmap = flags->__vma_flags; in vma_flags_clear_word()
843 static __always_inline void vma_flags_clear_all(vma_flags_t *flags) in vma_flags_clear_all() argument
845 bitmap_zero(ACCESS_PRIVATE(flags, __vma_flags), NUM_VMA_FLAG_BITS); in vma_flags_clear_all()
850 * value. This is only valid if the input flags value can be expressed in a
853 * Will be removed once the conversion to VMA flags is complete.
855 static __always_inline vm_flags_t vma_flags_to_legacy(vma_flags_t flags) in vma_flags_to_legacy() argument
857 return (vm_flags_t)flags.__vma_flags[0]; in vma_flags_to_legacy()
864 * Will be removed once the conversion to VMA flags is complete.
866 static __always_inline vma_flags_t legacy_to_vma_flags(vm_flags_t flags) in legacy_to_vma_flags() argument
870 vma_flags_overwrite_word(&ret, flags); in legacy_to_vma_flags()
874 static __always_inline void vma_flags_set_flag(vma_flags_t *flags, in vma_flags_set_flag() argument
877 unsigned long *bitmap = ACCESS_PRIVATE(flags, __vma_flags); in vma_flags_set_flag()
884 vm_flags_t flags) in vm_flags_init() argument
886 vma_flags_clear_all(&vma->flags); in vm_flags_init()
887 vma_flags_overwrite_word(&vma->flags, flags); in vm_flags_init()
896 vm_flags_t flags) in vm_flags_reset() argument
899 vm_flags_init(vma, flags); in vm_flags_reset()
903 vma_flags_t *flags) in vma_flags_reset_once() argument
905 const unsigned long word = flags->__vma_flags[0]; in vma_flags_reset_once()
908 vma_flags_overwrite_word_once(&vma->flags, word); in vma_flags_reset_once()
911 unsigned long *dst = &vma->flags.__vma_flags[1]; in vma_flags_reset_once()
912 const unsigned long *src = &flags->__vma_flags[1]; in vma_flags_reset_once()
919 vm_flags_t flags) in vm_flags_set() argument
922 vma_flags_set_word(&vma->flags, flags); in vm_flags_set()
926 vm_flags_t flags) in vm_flags_clear() argument
929 vma_flags_clear_word(&vma->flags, flags); in vm_flags_clear()
932 static __always_inline vma_flags_t __mk_vma_flags(vma_flags_t flags, in __mk_vma_flags() argument
938 vma_flags_set_flag(&flags, bits[i]); in __mk_vma_flags()
939 return flags; in __mk_vma_flags()
945 #define append_vma_flags(flags, ...) __mk_vma_flags(flags, \ argument
948 static __always_inline int vma_flags_count(const vma_flags_t *flags) in vma_flags_count() argument
950 const unsigned long *bitmap = flags->__vma_flags; in vma_flags_count()
955 static __always_inline bool vma_flags_test(const vma_flags_t *flags, in vma_flags_test() argument
958 const unsigned long *bitmap = flags->__vma_flags; in vma_flags_test()
963 static __always_inline vma_flags_t vma_flags_and_mask(const vma_flags_t *flags, in vma_flags_and_mask() argument
968 const unsigned long *bitmap = flags->__vma_flags; in vma_flags_and_mask()
975 #define vma_flags_and(flags, ...) \ argument
976 vma_flags_and_mask(flags, mk_vma_flags(__VA_ARGS__))
978 static __always_inline bool vma_flags_test_any_mask(const vma_flags_t *flags, in vma_flags_test_any_mask() argument
981 const unsigned long *bitmap = flags->__vma_flags; in vma_flags_test_any_mask()
987 #define vma_flags_test_any(flags, ...) \ argument
988 vma_flags_test_any_mask(flags, mk_vma_flags(__VA_ARGS__))
990 static __always_inline bool vma_flags_test_all_mask(const vma_flags_t *flags, in vma_flags_test_all_mask() argument
993 const unsigned long *bitmap = flags->__vma_flags; in vma_flags_test_all_mask()
999 #define vma_flags_test_all(flags, ...) \ argument
1000 vma_flags_test_all_mask(flags, mk_vma_flags(__VA_ARGS__))
1002 static __always_inline bool vma_flags_test_single_mask(const vma_flags_t *flags, in vma_flags_test_single_mask() argument
1007 return vma_flags_test_any_mask(flags, flagmask); in vma_flags_test_single_mask()
1010 static __always_inline void vma_flags_set_mask(vma_flags_t *flags, vma_flags_t to_set) in vma_flags_set_mask() argument
1012 unsigned long *bitmap = flags->__vma_flags; in vma_flags_set_mask()
1018 #define vma_flags_set(flags, ...) \ argument
1019 vma_flags_set_mask(flags, mk_vma_flags(__VA_ARGS__))
1021 static __always_inline void vma_flags_clear_mask(vma_flags_t *flags, vma_flags_t to_clear) in vma_flags_clear_mask() argument
1023 unsigned long *bitmap = flags->__vma_flags; in vma_flags_clear_mask()
1029 #define vma_flags_clear(flags, ...) \ argument
1030 vma_flags_clear_mask(flags, mk_vma_flags(__VA_ARGS__))
1032 static __always_inline vma_flags_t vma_flags_diff_pair(const vma_flags_t *flags, in vma_flags_diff_pair() argument
1037 const unsigned long *bitmap = flags->__vma_flags; in vma_flags_diff_pair()
1044 static __always_inline bool vma_flags_same_pair(const vma_flags_t *flags, in vma_flags_same_pair() argument
1047 const unsigned long *bitmap = flags->__vma_flags; in vma_flags_same_pair()
1053 static __always_inline bool vma_flags_same_mask(const vma_flags_t *flags, in vma_flags_same_mask() argument
1056 const unsigned long *bitmap = flags->__vma_flags; in vma_flags_same_mask()
1062 #define vma_flags_same(flags, ...) \ argument
1063 vma_flags_same_mask(flags, mk_vma_flags(__VA_ARGS__))
1068 return vma_flags_test(&vma->flags, bit); in vma_test()
1072 vma_flags_t flags) in vma_test_any_mask() argument
1074 return vma_flags_test_any_mask(&vma->flags, flags); in vma_test_any_mask()
1081 vma_flags_t flags) in vma_test_all_mask() argument
1083 return vma_flags_test_all_mask(&vma->flags, flags); in vma_test_all_mask()
1092 return vma_flags_test_single_mask(&vma->flags, flagmask); in vma_test_single_mask()
1096 vma_flags_t flags) in vma_set_flags_mask() argument
1098 vma_flags_set_mask(&vma->flags, flags); in vma_set_flags_mask()
1105 vma_flags_t flags) in vma_clear_flags_mask() argument
1107 vma_flags_clear_mask(&vma->flags, flags); in vma_clear_flags_mask()
1120 vma_flags_t flags) in vma_desc_test_any_mask() argument
1122 return vma_flags_test_any_mask(&desc->vma_flags, flags); in vma_desc_test_any_mask()
1129 vma_flags_t flags) in vma_desc_test_all_mask() argument
1131 return vma_flags_test_all_mask(&desc->vma_flags, flags); in vma_desc_test_all_mask()
1138 vma_flags_t flags) in vma_desc_set_flags_mask() argument
1140 vma_flags_set_mask(&desc->vma_flags, flags); in vma_desc_set_flags_mask()
1147 vma_flags_t flags) in vma_desc_clear_flags_mask() argument
1149 vma_flags_clear_mask(&desc->vma_flags, flags); in vma_desc_clear_flags_mask()
1155 static inline bool is_shared_maywrite(const vma_flags_t *flags) in is_shared_maywrite() argument
1157 return vma_flags_test_all(flags, VMA_SHARED_BIT, VMA_MAYWRITE_BIT); in is_shared_maywrite()
1162 return is_shared_maywrite(&vma->flags); in vma_is_shared_maywrite()
1165 static inline bool vma_flags_is_cow_mapping(const vma_flags_t *flags) in vma_flags_is_cow_mapping() argument
1167 return vma_flags_test(flags, VMA_MAYWRITE_BIT) && in vma_flags_is_cow_mapping()
1168 !vma_flags_test(flags, VMA_SHARED_BIT); in vma_flags_is_cow_mapping()
1173 return vma_flags_is_cow_mapping(&vma->flags); in vma_is_cow_mapping()
1240 #define is_exec_mapping(flags) \ argument
1241 ((flags & (VM_EXEC | VM_WRITE | VM_STACK)) == VM_EXEC)
1243 #define is_stack_mapping(flags) \ argument
1244 (((flags & VM_STACK) == VM_STACK) || (flags & VM_SHADOW_STACK))
1246 #define is_data_mapping(flags) \ argument
1247 ((flags & (VM_WRITE | VM_SHARED | VM_STACK)) == VM_WRITE)
1249 static inline void vm_stat_account(struct mm_struct *mm, vm_flags_t flags, in vm_stat_account() argument
1254 if (is_exec_mapping(flags)) in vm_stat_account()
1256 else if (is_stack_mapping(flags)) in vm_stat_account()
1258 else if (is_data_mapping(flags)) in vm_stat_account()
1315 desc->vma_flags = vma->flags; in compat_set_desc_from_vma()
1622 return vma_flags_to_page_prot(vma->flags); in vma_get_page_prot()