/* * Copyright 2021, Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT License. */ #define SBI_SYSCALL(name, eid, fid) \ .globl name; \ .type name,%function; \ name: \ li a7, eid; \ li a6, fid; \ ecall; \ ret; \ .size name, .-name #define SBI_SYSCALL_LEGACY(name, eid) \ .globl name; \ .type name,%function; \ name: \ li a7, eid; \ ecall; \ ret; \ .size name, .-name SBI_SYSCALL(sbi_get_spec_version, 0x10, 0) SBI_SYSCALL(sbi_get_impl_id, 0x10, 1) SBI_SYSCALL(sbi_get_impl_version, 0x10, 2) SBI_SYSCALL(sbi_probe_extension, 0x10, 3) SBI_SYSCALL(sbi_get_mvendorid, 0x10, 4) SBI_SYSCALL(sbi_get_marchid, 0x10, 5) SBI_SYSCALL(sbi_get_mimpid, 0x10, 6) SBI_SYSCALL_LEGACY(sbi_set_timer_legacy, 0) SBI_SYSCALL_LEGACY(sbi_console_putchar_legacy, 1) SBI_SYSCALL_LEGACY(sbi_console_getchar_legacy, 2) SBI_SYSCALL_LEGACY(sbi_clear_ipi_legacy, 3) SBI_SYSCALL_LEGACY(sbi_send_ipi_legacy, 4) SBI_SYSCALL_LEGACY(sbi_remote_fence_i_legacy, 5) SBI_SYSCALL_LEGACY(sbi_remote_sfence_vma_legacy, 6) SBI_SYSCALL_LEGACY(sbi_remote_sfence_vma_asid_legacy, 7) SBI_SYSCALL_LEGACY(sbi_shutdown_legacy, 8) SBI_SYSCALL(sbi_set_timer, 0x54494D45, 0) SBI_SYSCALL(sbi_send_ipi, 0x735049, 0) SBI_SYSCALL(sbi_remote_fence_i, 0x52464E43, 0) SBI_SYSCALL(sbi_remote_sfence_vma, 0x52464E43, 1) SBI_SYSCALL(sbi_remote_sfence_vma_asid, 0x52464E43, 2) SBI_SYSCALL(sbi_remote_hfence_gvma_vmid, 0x52464E43, 3) SBI_SYSCALL(sbi_remote_hfence_gvma, 0x52464E43, 4) SBI_SYSCALL(sbi_remote_hfence_vvma_asid, 0x52464E43, 5) SBI_SYSCALL(sbi_remote_hfence_vvma, 0x52464E43, 6) SBI_SYSCALL(sbi_hart_start, 0x48534D, 0) SBI_SYSCALL(sbi_hart_stop, 0x48534D, 1) SBI_SYSCALL(sbi_hart_get_status, 0x48534D, 2) SBI_SYSCALL(sbi_hart_suspend, 0x48534D, 3) SBI_SYSCALL(sbi_system_reset, 0x53525354, 0)