diff options
-rw-r--r-- | ToDo | 14 | ||||
-rw-r--r-- | event.c | 9 | ||||
-rw-r--r-- | pcilib.h | 5 |
3 files changed, 16 insertions, 12 deletions
@@ -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 @@ -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; @@ -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 |