2020-08-04 13:15:26 +08:00
|
|
|
use cslice::CSlice;
|
|
|
|
|
|
|
|
use crate::artiq_raise;
|
|
|
|
|
|
|
|
use crate::pl::csr;
|
|
|
|
|
|
|
|
|
|
|
|
#[repr(C)]
|
|
|
|
pub struct TimestampedData {
|
|
|
|
timestamp: i64,
|
|
|
|
data: i32,
|
|
|
|
}
|
|
|
|
|
|
|
|
pub extern fn init() {
|
|
|
|
unsafe {
|
|
|
|
csr::rtio_core::reset_write(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub extern fn get_destination_status(destination: i32) -> bool {
|
|
|
|
// TODO
|
|
|
|
destination == 0
|
|
|
|
}
|
|
|
|
|
|
|
|
pub extern fn get_counter() -> i64 {
|
|
|
|
unsafe {
|
|
|
|
csr::rtio::counter_update_write(1);
|
|
|
|
csr::rtio::counter_read() as i64
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub extern fn now_mu() -> i64 {
|
|
|
|
unimplemented!();
|
|
|
|
}
|
|
|
|
|
|
|
|
pub extern fn at_mu(t: i64) {
|
|
|
|
unimplemented!();
|
|
|
|
}
|
|
|
|
|
|
|
|
pub extern fn delay_mu(dt: i64) {
|
|
|
|
unimplemented!();
|
|
|
|
}
|
|
|
|
|
|
|
|
pub extern fn output(target: i32, data: i32) {
|
|
|
|
unimplemented!();
|
|
|
|
}
|
|
|
|
|
|
|
|
pub extern fn output_wide(target: i32, data: CSlice<i32>) {
|
|
|
|
unimplemented!();
|
|
|
|
}
|
|
|
|
|
|
|
|
pub extern fn input_timestamp(timeout: i64, channel: i32) -> i64 {
|
|
|
|
unimplemented!();
|
|
|
|
}
|
|
|
|
|
|
|
|
pub extern fn input_data(channel: i32) -> i32 {
|
|
|
|
unimplemented!();
|
|
|
|
}
|
|
|
|
|
|
|
|
pub extern fn input_timestamped_data(timeout: i64, channel: i32) -> TimestampedData {
|
|
|
|
unimplemented!();
|
|
|
|
}
|
|
|
|
|
2020-08-04 13:27:18 +08:00
|
|
|
pub fn write_log(data: &[i8]) {
|
2020-08-04 13:15:26 +08:00
|
|
|
unimplemented!();
|
|
|
|
}
|