8
pcilib_timeout_t duration;
9
} pcilib_autostop_parameters_t;
12
pcilib_event_rawdata_callback_t callback;
14
} pcilib_rawdata_parameters_t;
18
} pcilib_parallel_parameters_t;
21
pcilib_autostop_parameters_t autostop;
22
pcilib_rawdata_parameters_t rawdata;
23
pcilib_parallel_parameters_t parallel;
24
} pcilib_event_parameters_t;
26
struct pcilib_event_context_s {
27
pcilib_event_parameters_t params;
34
const char *description;
35
} pcilib_event_description_t;
38
pcilib_event_data_type_t data_type;
41
const char *description;
42
} pcilib_event_data_type_description_t;
45
PCILIB_STREAMING_STOP = 0, /**< stop streaming */
46
PCILIB_STREAMING_CONTINUE = 1, /**< wait the default DMA timeout for a new data */
47
PCILIB_STREAMING_WAIT = 2, /**< wait the specified timeout for a new data */
48
PCILIB_STREAMING_CHECK = 3, /**< do not wait for the data, bail out imideatly if no data ready */
49
PCILIB_STREAMING_FAIL = 4, /**< fail if data is not available on timeout */
50
PCILIB_STREAMING_REQ_FRAGMENT = 5, /**< only fragment of a packet is read, wait for next fragment and fail if no data during DMA timeout */
51
PCILIB_STREAMING_REQ_PACKET = 6, /**< wait for next packet and fail if no data during the specified timeout */
52
PCILIB_STREAMING_TIMEOUT_MASK = 3 /**< mask specifying all timeout modes */
53
} pcilib_streaming_action_t;
8
56
* get_data: This call is used by get_data and copy_data functions of public
36
82
int (*get_data)(pcilib_context_t *ctx, pcilib_event_id_t event_id, pcilib_event_data_type_t data_type, size_t arg_size, void *arg, size_t *size, void **data);
37
83
int (*return_data)(pcilib_context_t *ctx, pcilib_event_id_t event_id, pcilib_event_data_type_t data_type, void *data);
43
pcilib_timeout_t duration;
44
} pcilib_autostop_parameters_t;
47
pcilib_event_rawdata_callback_t callback;
49
} pcilib_rawdata_parameters_t;
53
} pcilib_parallel_parameters_t;
56
pcilib_autostop_parameters_t autostop;
57
pcilib_rawdata_parameters_t rawdata;
58
pcilib_parallel_parameters_t parallel;
59
} pcilib_event_parameters_t;
61
struct pcilib_event_context_s {
62
pcilib_event_parameters_t params;
84
} pcilib_event_api_description_t;
67
87
int pcilib_init_event_engine(pcilib_t *ctx);
69
90
#endif /* _PCILIB_EVENT_H */