page-target.c 822 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. * QEMU page values getters (target independent)
  3. *
  4. * Copyright (c) 2003 Fabrice Bellard
  5. *
  6. * SPDX-License-Identifier: LGPL-2.1-or-later
  7. */
  8. #include "qemu/osdep.h"
  9. #include "exec/target_page.h"
  10. #include "exec/cpu-defs.h"
  11. #include "cpu.h"
  12. #include "exec/cpu-all.h"
  13. size_t qemu_target_page_size(void)
  14. {
  15. return TARGET_PAGE_SIZE;
  16. }
  17. int qemu_target_page_mask(void)
  18. {
  19. return TARGET_PAGE_MASK;
  20. }
  21. int qemu_target_page_bits(void)
  22. {
  23. return TARGET_PAGE_BITS;
  24. }
  25. int qemu_target_page_bits_min(void)
  26. {
  27. return TARGET_PAGE_BITS_MIN;
  28. }
  29. /* Convert target pages to MiB (2**20). */
  30. size_t qemu_target_pages_to_MiB(size_t pages)
  31. {
  32. int page_bits = TARGET_PAGE_BITS;
  33. /* So far, the largest (non-huge) page size is 64k, i.e. 16 bits. */
  34. g_assert(page_bits < 20);
  35. return pages >> (20 - page_bits);
  36. }