summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ToDo14
-rw-r--r--event.c9
-rw-r--r--pcilib.h5
3 files changed, 16 insertions, 12 deletions
diff --git a/ToDo b/ToDo
index 6c7004e..c695a9a 100644
--- a/ToDo
+++ b/ToDo
@@ -1,17 +1,8 @@
-Bugs
-====
- 1. For IPECamera, shall we limit DMA packet size to xdma_packet_lenght register
- additionally to size of memory page?
-
High Priority (we would need it for IPE Camera)
=============
1. Serialize access to the registers across applications
2. Protect kmem_entries in the driver using spinlock
- 3. Extend Event API with function to generate triggers
- at the specified pace. By default the current cli
- implementation should be used. However, the hardware
- alternative should be possible to implement.
-
+ 3. Implement pcilib_configure_autotrigger
Normal Priority (it would make just few things a bit easier)
===============
@@ -20,7 +11,6 @@ Normal Priority (it would make just few things a bit easier)
3. Provide OR and AND operations on registers in cli
4. Support writting a data from a binary file in cli
5. Use bus-addresses instead of physcial addresses for DMA
- 6. Use pthread_condition_t instead of polling
Low Priority (only as generalization for other projects)
============
@@ -28,5 +18,5 @@ Low Priority (only as generalization for other projects)
2. Access register/bank lookups using hash tables
3. Support for Network Registers and Network DMA
4. Define a syntax for register dependencies / delays (?)
+ 5. Use pthread_condition_t instead of polling
- \ No newline at end of file
diff --git a/event.c b/event.c
index 9488eae..d9d3ff3 100644
--- a/event.c
+++ b/event.c
@@ -121,6 +121,15 @@ int pcilib_configure_autostop(pcilib_t *ctx, size_t max_events, pcilib_timeout_t
return 0;
}
+int pcilib_configure_autotrigger(pcilib_t *ctx, pcilib_timeout_t interval, pcilib_event_t event, size_t trigger_size, void *trigger_data) {
+ /* To support hardware without autotriggering, we need to provide in event.c a code
+ to generate multiple triggers in a thread (available in cli). The function should
+ be re-enabled afterwards: just set parameters and let implementation decide if it
+ can make triggering in hardware or will use our emulation */
+
+ return PCILIB_ERROR_NOTSUPPORTED;
+}
+
int pcilib_configure_preprocessing_threads(pcilib_t *ctx, size_t max_threads) {
pcilib_event_api_description_t *api;
diff --git a/pcilib.h b/pcilib.h
index adec4da..fe7af8c 100644
--- a/pcilib.h
+++ b/pcilib.h
@@ -321,6 +321,11 @@ int pcilib_trigger(pcilib_t *ctx, pcilib_event_t event, size_t trigger_size, voi
* is specified.
*/
int pcilib_configure_autostop(pcilib_t *ctx, size_t max_events, pcilib_timeout_t duration);
+
+/*
+ * Request auto-triggering while grabbing
+ */
+int pcilib_configure_autotrigger(pcilib_t *ctx, pcilib_timeout_t interval, pcilib_event_t event, size_t trigger_size, void *trigger_data);
/*
* Request streaming the rawdata from the event engine. It is fastest way to acuqire data.
* No memory copies will be performed and DMA buffers will be directly passed to the user