DragonOS/kernel/src/libs/ffi_convert.rs
kong 06b09f34ed
Patch sched rust (#139)
* update

* 添加rt调度器的rust初步实现

* 完善rt调度逻辑

* 调试rt调度器

* 修改sched的返回值

* cargo fmt 格式化

* 删除无用代码,修补rt bug

* 删除无用的代码,和重复的逻辑

* 软中断bugfix

* 删除一些代码

* 添加kthread_run_rt文档

* 解决sphinix警告_static目录不存在的问题

Co-authored-by: longjin <longjin@RinGoTek.cn>
2023-01-14 22:38:05 +08:00

16 lines
595 B
Rust

/// @brief 由bindgen生成的结构体转换成rust原生定义的结构体的特性
pub trait FFIBind2Rust<T> {
/// 转换为不可变引用
fn convert_ref(src: *const T) -> Option<&'static Self>;
/// 转换为可变引用
fn convert_mut(src: *mut T) -> Option<&'static mut Self>;
}
pub fn __convert_mut<'a, S, D>(src: *mut S) -> Option<&'a mut D> {
return unsafe { core::mem::transmute::<*mut S, *mut D>(src).as_mut() };
}
pub fn __convert_ref<'a, S, D>(src: *const S) -> Option<&'a D> {
return unsafe { core::mem::transmute::<*const S, *const D>(src).as_ref() };
}