summaryrefslogtreecommitdiffstats
path: root/pcilib/pcilib.h
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@suren.me>2015-04-29 03:42:43 +0200
committerSuren A. Chilingaryan <csa@suren.me>2015-04-29 03:42:43 +0200
commitbf466a54a10293067765bf767c572cbf09bcd170 (patch)
tree7b285a15aa71949dceb17b8726717ca3e003bee1 /pcilib/pcilib.h
parentc95fc0fb80a5e72cf198e77c9bf64fd17286dfde (diff)
downloadpcitool-bf466a54a10293067765bf767c572cbf09bcd170.tar.gz
pcitool-bf466a54a10293067765bf767c572cbf09bcd170.tar.bz2
pcitool-bf466a54a10293067765bf767c572cbf09bcd170.tar.xz
pcitool-bf466a54a10293067765bf767c572cbf09bcd170.zip
New error reporting public interface
Diffstat (limited to 'pcilib/pcilib.h')
-rw-r--r--pcilib/pcilib.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/pcilib/pcilib.h b/pcilib/pcilib.h
index 3518f75..232daf8 100644
--- a/pcilib/pcilib.h
+++ b/pcilib/pcilib.h
@@ -4,6 +4,7 @@
#include <sys/time.h>
#include <stddef.h>
#include <stdint.h>
+#include <stdarg.h>
typedef struct pcilib_s pcilib_t;
typedef struct pcilib_event_context_s pcilib_context_t;
@@ -22,6 +23,12 @@ typedef unsigned int pcilib_irq_hw_source_t;
typedef uint32_t pcilib_irq_source_t;
typedef enum {
+ PCILIB_LOG_INFO,
+ PCILIB_LOG_WARNING,
+ PCILIB_LOG_ERROR
+} pcilib_log_priority_t;
+
+typedef enum {
PCILIB_HOST_ENDIAN = 0,
PCILIB_LITTLE_ENDIAN,
PCILIB_BIG_ENDIAN
@@ -97,6 +104,8 @@ typedef struct {
#define PCILIB_MODEL_DETECT NULL
+typedef void (*pcilib_logger_t)(void *arg, const char *file, int line, pcilib_log_priority_t prio, const char *msg, va_list va);
+
/**<
* Callback function called when new data is read by DMA streaming function
* @ctx - DMA Engine context
@@ -117,8 +126,7 @@ typedef int (*pcilib_event_callback_t)(pcilib_event_id_t event_id, pcilib_event_
typedef int (*pcilib_event_rawdata_callback_t)(pcilib_event_id_t event_id, pcilib_event_info_t *info, pcilib_event_flags_t flags, size_t size, void *data, void *user);
-
-int pcilib_set_error_handler(void (*err)(const char *msg, ...), void (*warn)(const char *msg, ...));
+int pcilib_set_logger(pcilib_log_priority_t min_prio, pcilib_logger_t logger, void *arg);
pcilib_t *pcilib_open(const char *device, const char *model);
void pcilib_close(pcilib_t *ctx);
@@ -198,6 +206,7 @@ int pcilib_configure_rawdata_callback(pcilib_t *ctx, pcilib_event_rawdata_callba
*/
int pcilib_configure_preprocessing_threads(pcilib_t *ctx, size_t max_threads);
+pcilib_context_t *pcilib_get_event_engine(pcilib_t *ctx);
int pcilib_start(pcilib_t *ctx, pcilib_event_t event_mask, pcilib_event_flags_t flags);
int pcilib_stop(pcilib_t *ctx, pcilib_event_flags_t flags);