FROMLIST: mm: rust: add abstraction for struct mm_struct
These abstractions allow you to reference a `struct mm_struct` using both mmgrab and mmget refcounts. This is done using two Rust types: * Mm - represents an mm_struct where you don't know anything about the value of mm_users. * MmWithUser - represents an mm_struct where you know at compile time that mm_users is non-zero. This allows us to encode in the type system whether a method requires that mm_users is non-zero or not. For instance, you can always call `mmget_not_zero` but you can only call `mmap_read_lock` when mm_users is non-zero. The struct is called Mm to keep consistency with the C side. The ability to obtain `current->mm` is added later in this series. Acked-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> (for mm bits) Signed-off-by:Alice Ryhl <aliceryhl@google.com> Bug: 370906207 Link: https://lore.kernel.org/all/20250115-vma-v12-1-375099ae017a@google.com/ Change-Id: I16eb9f344e43a3d7d7611abf27ed7295610a2ac3 Signed-off-by:
Alice Ryhl <aliceryhl@google.com>
Loading
Please sign in to comment