为啥是最基础的盗用, 相当于是自己内部的

image.png

// 获取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)
}

putao
8 声望1 粉丝

推动世界向前发展,改善民生。