mem.c 720 B

12345678910111213141516171819202122232425262728
  1. /*
  2. * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
  3. * Licensed under the GPL
  4. */
  5. #include "linux/config.h"
  6. #include "linux/mm.h"
  7. #include "asm/pgtable.h"
  8. #include "mem_user.h"
  9. #include "skas.h"
  10. unsigned long set_task_sizes_skas(unsigned long *host_size_out,
  11. unsigned long *task_size_out)
  12. {
  13. /* Round up to the nearest 4M */
  14. unsigned long top = ROUND_4M((unsigned long) &host_size_out);
  15. #ifdef CONFIG_HOST_TASK_SIZE
  16. *host_size_out = ROUND_4M(CONFIG_HOST_TASK_SIZE);
  17. *task_size_out = CONFIG_HOST_TASK_SIZE;
  18. #else
  19. *host_size_out = top;
  20. if (!skas_needs_stub)
  21. *task_size_out = top;
  22. else *task_size_out = CONFIG_STUB_START & PGDIR_MASK;
  23. #endif
  24. return ((unsigned long) set_task_sizes_skas) & ~0xffffff;
  25. }