summaryrefslogtreecommitdiffstats
path: root/kapture/model.h
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@suren.me>2014-12-19 00:14:21 +0100
committerSuren A. Chilingaryan <csa@suren.me>2014-12-19 00:14:21 +0100
commita640c40c6bcf4bad0b78e0ea6ea04f2a5f3f877f (patch)
tree7a6b899c130510e3cca87c23b26a5a1ffc033f20 /kapture/model.h
parent0e16eeef08ed9b27f0fbc7f02a562a81e10c4119 (diff)
downloadipecamera-a640c40c6bcf4bad0b78e0ea6ea04f2a5f3f877f.tar.gz
ipecamera-a640c40c6bcf4bad0b78e0ea6ea04f2a5f3f877f.tar.bz2
ipecamera-a640c40c6bcf4bad0b78e0ea6ea04f2a5f3f877f.tar.xz
ipecamera-a640c40c6bcf4bad0b78e0ea6ea04f2a5f3f877f.zip
Initial implementation of IPEDMA, dummy driver for KAPTURE, start of API changes
Diffstat (limited to 'kapture/model.h')
-rw-r--r--kapture/model.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/kapture/model.h b/kapture/model.h
new file mode 100644
index 0000000..b45969a
--- /dev/null
+++ b/kapture/model.h
@@ -0,0 +1,81 @@
+#ifndef _KAPTURE_MODEL_H
+#define _KAPTURE_MODEL_H
+
+#include <stdio.h>
+
+#include "../pcilib.h"
+
+
+#define KAPTURE_REGISTER_SPACE 0x9000
+
+#ifdef _KAPTURE_C
+pcilib_register_bank_description_t kapture_register_banks[] = {
+// { PCILIB_REGISTER_BANK0, PCILIB_BAR0, 0x0200, PCILIB_DEFAULT_PROTOCOL , KAPTURE_REGISTER_SPACE, KAPTURE_REGISTER_SPACE, PCILIB_LITTLE_ENDIAN, 32, PCILIB_LITTLE_ENDIAN, "0x%lx", "fpga", "KAPTURE Registers" },
+ { PCILIB_REGISTER_BANK_DMA, PCILIB_BAR0, 0x0200, PCILIB_DEFAULT_PROTOCOL , 0, 0, PCILIB_LITTLE_ENDIAN, 32, PCILIB_LITTLE_ENDIAN, "0x%lx", "dma", "DMA Registers"},
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL }
+};
+
+pcilib_register_description_t kapture_registers[] = {
+{0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL}
+};
+
+pcilib_register_range_t kapture_register_ranges[] = {
+ {0, 0, 0, 0}
+};
+
+pcilib_event_description_t kapture_events[] = {
+ {PCILIB_EVENT0, "event", ""},
+ {0, NULL, NULL}
+};
+
+pcilib_event_data_type_description_t kapture_data_types[] = {
+ {PCILIB_EVENT_RAW_DATA, PCILIB_EVENT0, "raw", "raw data from kapture" },
+ {0, 0, NULL, NULL}
+};
+
+#else
+extern pcilib_register_description_t kapture_registers[];
+extern pcilib_register_bank_description_t kapture_register_banks[];
+extern pcilib_register_range_t kapture_register_ranges[];
+extern pcilib_event_description_t kapture_events[];
+extern pcilib_event_data_type_description_t kapture_data_types[];
+#endif
+
+
+pcilib_context_t *kapture_init(pcilib_t *pcilib);
+void kapture_free(pcilib_context_t *ctx);
+
+int kapture_reset(pcilib_context_t *ctx);
+int kapture_start(pcilib_context_t *ctx, pcilib_event_t event_mask, pcilib_event_flags_t flags);
+int kapture_stop(pcilib_context_t *ctx, pcilib_event_flags_t flags);
+int kapture_trigger(pcilib_context_t *ctx, pcilib_event_t event, size_t trigger_size, void *trigger_data);
+int kapture_stream(pcilib_context_t *vctx, pcilib_event_callback_t callback, void *user);
+int kapture_next_event(pcilib_context_t *vctx, pcilib_timeout_t timeout, pcilib_event_id_t *evid, size_t info_size, pcilib_event_info_t *info);
+int kapture_get(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 **buf);
+int kapture_return(pcilib_context_t *ctx, pcilib_event_id_t event_id, pcilib_event_data_type_t data_type, void *data);
+
+#ifdef _KAPTURE_C
+pcilib_event_api_description_t kapture_api = {
+ "kapture",
+
+ kapture_init,
+ kapture_free,
+
+ NULL,
+
+ kapture_reset,
+ kapture_start,
+ kapture_stop,
+ kapture_trigger,
+
+ kapture_stream,
+ kapture_next_event,
+ kapture_get,
+ kapture_return
+};
+#else
+extern pcilib_event_api_description_t kapture_api;
+#endif
+
+
+#endif /* _KAPTURE_MODEL_H */