simple/
simple.rs

1//! Demonstrates basic assembling for a full program.
2#![no_std]
3#![no_main]
4
5fn exit() -> ! {
6    unsafe {
7        syscall_linux_raw::syscall1(syscall_linux_raw::SysNr(60), 0);
8        core::hint::unreachable_unchecked();
9    }
10}
11
12fn write(fd: usize, buf: &[u8]) {
13    unsafe {
14        syscall_linux_raw::syscall3(syscall_linux_raw::SysNr(1), fd as isize, buf.as_ptr() as isize, buf.len() as isize);
15    }
16}
17
18#[no_mangle]
19pub extern fn main() {
20    write(1, "Hello, world!\n".as_bytes());
21}
22
23use core::panic::PanicInfo;
24
25#[panic_handler]
26fn panic(_info: &PanicInfo) -> ! {
27    loop {}
28}
29
30#[no_mangle] fn __libc_csu_fini() {}
31#[no_mangle] fn __libc_csu_init() {}
32#[no_mangle] fn __libc_start_main() -> ! { main(); exit() }