js_api.rs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. use cpu::cpu::{
  2. safe_read16, safe_read32s, safe_write16, safe_write32, translate_address_system_read,
  3. translate_address_system_write, writable_or_pagefault,
  4. };
  5. use cpu::misc_instr::{push16, push32};
  6. #[no_mangle]
  7. pub unsafe fn safe_read16_js(addr: i32) -> i32 { safe_read16(addr).unwrap() }
  8. #[no_mangle]
  9. pub unsafe fn safe_read32s_js(addr: i32) -> i32 { safe_read32s(addr).unwrap() }
  10. #[no_mangle]
  11. pub unsafe fn safe_write16_js(addr: i32, value: i32) { safe_write16(addr, value).unwrap() }
  12. #[no_mangle]
  13. pub unsafe fn safe_write32_js(addr: i32, value: i32) { safe_write32(addr, value).unwrap() }
  14. #[no_mangle]
  15. pub unsafe fn translate_address_system_read_js(addr: i32) -> u32 {
  16. translate_address_system_read(addr).unwrap()
  17. }
  18. #[no_mangle]
  19. pub unsafe fn translate_address_system_write_js(addr: i32) -> u32 {
  20. translate_address_system_write(addr).unwrap()
  21. }
  22. #[no_mangle]
  23. pub unsafe fn writable_or_pagefault_js(addr: i32, size: i32) -> bool {
  24. writable_or_pagefault(addr, size).is_ok()
  25. }
  26. #[no_mangle]
  27. pub unsafe fn push16_js(value: i32) { push16(value).unwrap() }
  28. #[no_mangle]
  29. pub unsafe fn push32_js(value: i32) { push32(value).unwrap() }