6个版本
0.1.5 | 2023年4月13日 |
---|---|
0.1.4 | 2023年4月7日 |
0.1.2 | 2023年2月3日 |
0.1.1 | 2023年1月27日 |
0.1.0 | 2022年8月12日 |
#238 in 嵌入式开发
每月 1,764 次下载
用于 sjlj
12KB
221 行
#[裸]
文档
本crate提供了一个可用于稳定版Rust的#[naked]
属性的proc宏版本。
示例
// The SYSV64 calling convention used on x86_64 Linux passes the first
// 2 integer arguments in EDI/ESI.
#[naked_function::naked]
pub unsafe extern "C" fn add(a: i32, b: i32) -> i32 {
asm!(
"lea eax, [edi + esi]",
"ret",
);
}
#[test]
fn main() {
let ret = unsafe { add(1, 2) };
assert_eq!(ret, 3);
}
许可
许可协议为
- Apache License,版本2.0,(LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您提交给本作品的任何有意贡献,根据Apache-2.0许可证的定义,应按照上述方式双许可,不附加任何额外条款或条件。
依赖项
~265–720KB
~17K SLoC