diff options
Diffstat (limited to 'include/linux/mm.h')
-rw-r--r-- | include/linux/mm.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h index 0e266fe1b4c4..a17b147c61e7 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -296,6 +296,24 @@ void put_pages_list(struct list_head *pages); | |||
296 | void split_page(struct page *page, unsigned int order); | 296 | void split_page(struct page *page, unsigned int order); |
297 | 297 | ||
298 | /* | 298 | /* |
299 | * Compound pages have a destructor function. Provide a | ||
300 | * prototype for that function and accessor functions. | ||
301 | * These are _only_ valid on the head of a PG_compound page. | ||
302 | */ | ||
303 | typedef void compound_page_dtor(struct page *); | ||
304 | |||
305 | static inline void set_compound_page_dtor(struct page *page, | ||
306 | compound_page_dtor *dtor) | ||
307 | { | ||
308 | page[1].lru.next = (void *)dtor; | ||
309 | } | ||
310 | |||
311 | static inline compound_page_dtor *get_compound_page_dtor(struct page *page) | ||
312 | { | ||
313 | return (compound_page_dtor *)page[1].lru.next; | ||
314 | } | ||
315 | |||
316 | /* | ||
299 | * Multiple processes may "see" the same page. E.g. for untouched | 317 | * Multiple processes may "see" the same page. E.g. for untouched |
300 | * mappings of /dev/null, all processes see the same page full of | 318 | * mappings of /dev/null, all processes see the same page full of |
301 | * zeroes, and text pages of executables and shared libraries have | 319 | * zeroes, and text pages of executables and shared libraries have |