diff options
Diffstat (limited to 'include/linux/mm.h')
-rw-r--r-- | include/linux/mm.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h index bcaab4e6fe9..4af4f0b1be4 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -1456,6 +1456,37 @@ extern unsigned long vm_mmap(struct file *, unsigned long, | |||
1456 | unsigned long, unsigned long, | 1456 | unsigned long, unsigned long, |
1457 | unsigned long, unsigned long); | 1457 | unsigned long, unsigned long); |
1458 | 1458 | ||
1459 | struct vm_unmapped_area_info { | ||
1460 | #define VM_UNMAPPED_AREA_TOPDOWN 1 | ||
1461 | unsigned long flags; | ||
1462 | unsigned long length; | ||
1463 | unsigned long low_limit; | ||
1464 | unsigned long high_limit; | ||
1465 | unsigned long align_mask; | ||
1466 | unsigned long align_offset; | ||
1467 | }; | ||
1468 | |||
1469 | extern unsigned long unmapped_area(struct vm_unmapped_area_info *info); | ||
1470 | extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info); | ||
1471 | |||
1472 | /* | ||
1473 | * Search for an unmapped address range. | ||
1474 | * | ||
1475 | * We are looking for a range that: | ||
1476 | * - does not intersect with any VMA; | ||
1477 | * - is contained within the [low_limit, high_limit) interval; | ||
1478 | * - is at least the desired size. | ||
1479 | * - satisfies (begin_addr & align_mask) == (align_offset & align_mask) | ||
1480 | */ | ||
1481 | static inline unsigned long | ||
1482 | vm_unmapped_area(struct vm_unmapped_area_info *info) | ||
1483 | { | ||
1484 | if (!(info->flags & VM_UNMAPPED_AREA_TOPDOWN)) | ||
1485 | return unmapped_area(info); | ||
1486 | else | ||
1487 | return unmapped_area_topdown(info); | ||
1488 | } | ||
1489 | |||
1459 | /* truncate.c */ | 1490 | /* truncate.c */ |
1460 | extern void truncate_inode_pages(struct address_space *, loff_t); | 1491 | extern void truncate_inode_pages(struct address_space *, loff_t); |
1461 | extern void truncate_inode_pages_range(struct address_space *, | 1492 | extern void truncate_inode_pages_range(struct address_space *, |