forked from M-Labs/artiq
34 lines
964 B
C
34 lines
964 B
C
#ifndef __RTIO_H
|
|
#define __RTIO_H
|
|
|
|
#include <stdarg.h>
|
|
|
|
#define RTIO_O_STATUS_FULL 1
|
|
#define RTIO_O_STATUS_UNDERFLOW 2
|
|
#define RTIO_O_STATUS_SEQUENCE_ERROR 4
|
|
#define RTIO_O_STATUS_COLLISION 8
|
|
#define RTIO_O_STATUS_BUSY 16
|
|
#define RTIO_I_STATUS_EMPTY 1
|
|
#define RTIO_I_STATUS_OVERFLOW 2
|
|
|
|
void rtio_init(void);
|
|
long long int rtio_get_counter(void);
|
|
void rtio_log(long long int timestamp, const char *format, ...);
|
|
void rtio_log_va(long long int timestamp, const char *format, va_list args);
|
|
void rtio_output(long long int timestamp, int channel, unsigned int address,
|
|
unsigned int data);
|
|
|
|
/*
|
|
* Waits at least until timeout and returns the timestamp of the first
|
|
* input event on the chanel, -1 if there was no event.
|
|
*/
|
|
long long int rtio_input_timestamp(long long int timeout, int channel);
|
|
|
|
/*
|
|
* Assumes that there is or will be an event in the channel and returns only
|
|
* its data.
|
|
*/
|
|
unsigned int rtio_input_data(int channel);
|
|
|
|
#endif /* __RTIO_H */
|