#[polkavm_derive::polkavm_import]
extern "C" {
#[polkavm_import(symbol = "corevm_gas_ext")]
pub fn gas() -> u64;
#[polkavm_import(symbol = "corevm_alloc_ext")]
pub fn alloc(size: u64) -> u64;
#[polkavm_import(symbol = "corevm_free_ext")]
pub fn free(address: u64, size: u64);
#[polkavm_import(symbol = "corevm_yield_console_data_ext")]
pub fn yield_console_data(stream: u64, address: u64, len: u64);
#[polkavm_import(symbol = "corevm_yield_video_frame_ext")]
pub fn yield_video_frame(address: u64, len: u64, format: u64);
#[polkavm_import(symbol = "corevm_video_mode_ext")]
pub fn video_mode(width: u64, height: u64, refresh_rate: u64, flags: u64);
#[polkavm_import(symbol = "corevm_yield_audio_samples_ext")]
pub fn yield_audio_samples(address: u64, len: u64);
#[polkavm_import(symbol = "corevm_audio_mode_ext")]
pub fn audio_mode(channels: u64, sample_rate: u64, sample_format: u64);
#[polkavm_import(symbol = "corevm_recv_message_ext")]
pub fn recv_message(address: u64, len: u64, flags: u64) -> u64;
#[polkavm_import(symbol = "corevm_send_message_ext")]
pub fn send_message(guest_id: u64, address: u64, len: u64);
#[polkavm_import(symbol = "corevm_recv_host_message_ext")]
pub fn recv_host_message(address: u64, len: u64, flags: u64) -> u64;
#[polkavm_import(symbol = "corevm_poll_ext")]
pub fn poll(streams: u64, flags: u64) -> u64;
#[polkavm_import(symbol = "corevm_read_console_data_ext")]
pub fn read_console_data(address: u64, len: u64, flags: u64) -> u64;
#[polkavm_import(symbol = "corevm_video_input_mode_ext")]
pub fn video_input_mode() -> u64;
#[polkavm_import(symbol = "corevm_read_video_frame_ext")]
pub fn read_video_frame(address: u64, len: u64, format: u64, flags: u64) -> u64;
#[polkavm_import(symbol = "corevm_audio_input_mode_ext")]
pub fn audio_input_mode() -> u64;
#[polkavm_import(symbol = "corevm_read_audio_frames_ext")]
pub fn read_audio_frames(address: u64, len: u64, flags: u64) -> u64;
#[polkavm_import(symbol = "corevm_initiate_transaction_ext")]
pub fn initiate_transaction(guest_id: u64, address: u64, len: u64) -> u64;
#[polkavm_import(symbol = "corevm_recv_transaction_ext")]
pub fn recv_transaction(address: u64, len: u64, flags: u64) -> u64;
#[polkavm_import(symbol = "corevm_commit_transaction_ext")]
pub fn commit_transaction() -> u64;
#[polkavm_import(symbol = "corevm_rollback_transaction_ext")]
pub fn rollback_transaction();
#[polkavm_import(symbol = "corevm_end_transaction_ext")]
pub fn end_transaction();
}