#![no_std]
#![allow(unused_features)]
#![feature(extern_item_impls)]
#![feature(integer_cast_extras)]
extern crate alloc;
mod interface;
use ax_api::modules::ax_log::{debug, info};
use ax_runtime::ax_app_entry;
unsafe extern "C" {
fn runtime_entry(argc: i32, argv: *const *const u8, env: *const *const u8) -> !;
}
#[cfg(any(feature = "fs", feature = "multitask"))]
pub(crate) fn err(error: ax_errno::LinuxError) -> i32 {
-(error as i32)
}
#[ax_app_entry]
pub fn app_entry() {
info!("Starting application...");
const ARGC: i32 = 1;
const NAME: &[u8; 9] = b"app_name\0";
let argv: [*const u8; 2] = [NAME.as_ptr(), core::ptr::null()];
let env: [*const u8; 1] = [core::ptr::null()];
debug!("address of runtime_entry: {:p}", runtime_entry as *const ());
unsafe {
runtime_entry(ARGC, argv.as_ptr(), env.as_ptr());
}
}