internal.h 900 B

123456789101112131415161718192021222324252627282930
  1. /* internal.h: mm/ internal definitions
  2. *
  3. * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved.
  4. * Written by David Howells (dhowells@redhat.com)
  5. *
  6. * This program is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU General Public License
  8. * as published by the Free Software Foundation; either version
  9. * 2 of the License, or (at your option) any later version.
  10. */
  11. static inline void set_page_refs(struct page *page, int order)
  12. {
  13. #ifdef CONFIG_MMU
  14. set_page_count(page, 1);
  15. #else
  16. int i;
  17. /*
  18. * We need to reference all the pages for this order, otherwise if
  19. * anyone accesses one of the pages with (get/put) it will be freed.
  20. * - eg: access_process_vm()
  21. */
  22. for (i = 0; i < (1 << order); i++)
  23. set_page_count(page + i, 1);
  24. #endif /* CONFIG_MMU */
  25. }
  26. extern void fastcall __init __free_pages_bootmem(struct page *page,
  27. unsigned int order);