为啥是最基础的盗用, 相当于是自己内部的
// 获取SBI规范版本号
fn get_spec_version() -> SbiRet {
const EXTENSION_BASE: usize = 0x10; // 基础扩展ID
const FUNCTION_GET_SPEC_VERSION: usize = 0; // 获取规范版本的功能ID
sbi_call(EXTENSION_BASE, FUNCTION_GET_SPEC_VERSION, 0, 0)
}
// 获取SBI实现者ID
fn get_impl_id() -> SbiRet {
const EXTENSION_BASE: usize = 0x10; // 基础扩展ID
const FUNCTION_GET_IMPL_ID: usize = 1; // 获取实现者ID的功能ID
sbi_call(EXTENSION_BASE, FUNCTION_GET_IMPL_ID, 0, 0)
}
// 获取SBI实现版本
fn get_impl_version() -> SbiRet {
const EXTENSION_BASE: usize = 0x10; // 基础扩展ID
const FUNCTION_GET_IMPL_VERSION: usize = 2; // 获取实现版本的功能ID
sbi_call(EXTENSION_BASE, FUNCTION_GET_IMPL_VERSION, 0, 0)
}
// 查询SBI扩展
fn probe_extension(extension_id: usize) -> SbiRet {
const EXTENSION_BASE: usize = 0x10; // 基础扩展ID
const FUNCTION_PROBE_EXTENSION: usize = 3; // 查询扩展的功能ID
sbi_call(EXTENSION_BASE, FUNCTION_PROBE_EXTENSION, extension_id, 0)
}
// 获取制造商ID
fn get_mvendorid() -> SbiRet {
const EXTENSION_BASE: usize = 0x10; // 基础扩展ID
const FUNCTION_GET_MVENDORID: usize = 4; // 获取制造商ID的功能ID
sbi_call(EXTENSION_BASE, FUNCTION_GET_MVENDORID, 0, 0)
}
// 获取架构ID
fn get_marchid() -> SbiRet {
const EXTENSION_BASE: usize = 0x10; // 基础扩展ID
const FUNCTION_GET_MARCHID: usize = 5; // 获取架构ID的功能ID
sbi_call(EXTENSION_BASE, FUNCTION_GET_MARCHID, 0, 0)
}
// 获取实现ID
fn get_mimpid() -> SbiRet {
const EXTENSION_BASE: usize = 0x10; // 基础扩展ID
const FUNCTION_GET_MIMPID: usize = 6; // 获取实现ID的功能ID
sbi_call(EXTENSION_BASE, FUNCTION_GET_MIMPID, 0, 0)
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。