get_destination_status: move from rtio to core1.rs

This commit is contained in:
mwojcik 2022-03-25 17:50:26 +08:00
parent b80cb3b288
commit 8e3b462560
4 changed files with 20 additions and 23 deletions

View File

@ -13,8 +13,7 @@ use crate::i2c;
use super::rpc::{rpc_send, rpc_send_async, rpc_recv};
use super::dma;
use super::cache;
use super::rtio as kernel_rtio;
use super::core1::get_destination_status;
extern "C" {
fn vsnprintf_(buffer: *mut c_char, count: size_t, format: *const c_char, va: VaList) -> c_int;
@ -88,7 +87,7 @@ pub fn resolve(required: &[u8]) -> Option<u32> {
// rtio
api!(rtio_init = rtio::init),
api!(rtio_get_destination_status = kernel_rtio::get_destination_status),
api!(rtio_get_destination_status = get_destination_status),
api!(rtio_get_counter = rtio::get_counter),
api!(rtio_output = rtio::output),
api!(rtio_output_wide = rtio::output_wide),

View File

@ -233,3 +233,21 @@ extern fn dl_unwind_find_exidx(pc: *const u32, len_ptr: *mut u32) -> *const u32
}
start
}
pub extern fn get_destination_status(destination: i32) -> bool {
#[cfg(has_drtio)]
if destination > 0 && destination < 255 {
let reply = unsafe {
let core1_rx = KERNEL_CHANNEL_0TO1.as_mut().unwrap();
let core1_tx = KERNEL_CHANNEL_1TO0.as_mut().unwrap();
core1_tx.send(Message::UpDestinationsRequest(destination));
core1_rx.recv()
};
return match reply {
Message::UpDestinationsReply(x) => x,
_ => panic!("received unexpected reply to UpDestinationsRequest: {:?}", reply)
};
}
destination == 0
}

View File

@ -7,7 +7,6 @@ use crate::eh_artiq;
mod control;
pub use control::Control;
pub mod core1;
pub mod rtio;
mod api;
mod rpc;
mod dma;

View File

@ -1,19 +0,0 @@
use super::{KERNEL_CHANNEL_0TO1, KERNEL_CHANNEL_1TO0, Message};
pub extern fn get_destination_status(destination: i32) -> bool {
#[cfg(has_drtio)]
if destination > 0 && destination < 255 {
let reply = unsafe {
let core1_rx = KERNEL_CHANNEL_0TO1.as_mut().unwrap();
let core1_tx = KERNEL_CHANNEL_1TO0.as_mut().unwrap();
core1_tx.send(Message::UpDestinationsRequest(destination));
core1_rx.recv()
};
return match reply {
Message::UpDestinationsReply(x) => x,
_ => panic!("received unexpected reply to UpDestinationsRequest: {:?}", reply)
};
}
destination == 0
}