linux/include/linux/page-isolation.h
<<
>>
Prefs
   1#ifndef __LINUX_PAGEISOLATION_H
   2#define __LINUX_PAGEISOLATION_H
   3
   4
   5bool has_unmovable_pages(struct zone *zone, struct page *page, int count);
   6void set_pageblock_migratetype(struct page *page, int migratetype);
   7int move_freepages_block(struct zone *zone, struct page *page,
   8                                int migratetype);
   9/*
  10 * Changes migrate type in [start_pfn, end_pfn) to be MIGRATE_ISOLATE.
  11 * If specified range includes migrate types other than MOVABLE or CMA,
  12 * this will fail with -EBUSY.
  13 *
  14 * For isolating all pages in the range finally, the caller have to
  15 * free all pages in the range. test_page_isolated() can be used for
  16 * test it.
  17 */
  18int
  19start_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,
  20                         unsigned migratetype);
  21
  22/*
  23 * Changes MIGRATE_ISOLATE to MIGRATE_MOVABLE.
  24 * target range is [start_pfn, end_pfn)
  25 */
  26int
  27undo_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,
  28                        unsigned migratetype);
  29
  30/*
  31 * Test all pages in [start_pfn, end_pfn) are isolated or not.
  32 */
  33int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn);
  34
  35/*
  36 * Internal functions. Changes pageblock's migrate type.
  37 */
  38int set_migratetype_isolate(struct page *page);
  39void unset_migratetype_isolate(struct page *page, unsigned migratetype);
  40
  41
  42#endif
  43