#ifndef _ASM_RISCV_SBI_H #define _ASM_RISCV_SBI_H typedef struct { unsigned long base; unsigned long size; unsigned long node_id; } memory_block_info; unsigned long sbi_query_memory(unsigned long id, memory_block_info *p); unsigned long sbi_hart_id(void); unsigned long sbi_num_harts(void); unsigned long sbi_timebase(void); void sbi_set_timer(unsigned long long stime_value); void sbi_send_ipi(unsigned long hart_id); unsigned long sbi_clear_ipi(void); void sbi_console_putchar(unsigned long ch); void sbi_shutdown(void); typedef struct { unsigned long dev; unsigned long cmd; unsigned long data; unsigned long sbi_private_data; } sbi_device_message; unsigned long sbi_send_device_request(unsigned long req); unsigned long sbi_receive_device_response(void); #endif