+ .end = ROUNDUP(start + length, MEM_PAGE) };
+ return region;
+}
+
+struct mm_region*
+region_dup(struct mm_region* origin)
+{
+ struct mm_region* region = valloc(sizeof(struct mm_region));
+ *region = *origin;
+
+ if (region->mfile) {
+ vfs_ref_file(region->mfile);
+ }
+
+ llist_init_head(®ion->head);