model.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #ifndef _KAPTURE_MODEL_H
  2. #define _KAPTURE_MODEL_H
  3. #include <stdio.h>
  4. #include "../pcilib.h"
  5. #define KAPTURE_REGISTER_SPACE 0x9000
  6. #ifdef _KAPTURE_C
  7. pcilib_register_bank_description_t kapture_register_banks[] = {
  8. // { 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" },
  9. { PCILIB_REGISTER_BANK_DMA, PCILIB_BAR0, 0x0200, PCILIB_DEFAULT_PROTOCOL , 0, 0, PCILIB_LITTLE_ENDIAN, 32, PCILIB_LITTLE_ENDIAN, "0x%lx", "dma", "DMA Registers"},
  10. { 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL }
  11. };
  12. pcilib_register_description_t kapture_registers[] = {
  13. {0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL}
  14. };
  15. pcilib_register_range_t kapture_register_ranges[] = {
  16. {0, 0, 0, 0}
  17. };
  18. pcilib_event_description_t kapture_events[] = {
  19. {PCILIB_EVENT0, "event", ""},
  20. {0, NULL, NULL}
  21. };
  22. pcilib_event_data_type_description_t kapture_data_types[] = {
  23. {PCILIB_EVENT_RAW_DATA, PCILIB_EVENT0, "raw", "raw data from kapture" },
  24. {0, 0, NULL, NULL}
  25. };
  26. #else
  27. extern pcilib_register_description_t kapture_registers[];
  28. extern pcilib_register_bank_description_t kapture_register_banks[];
  29. extern pcilib_register_range_t kapture_register_ranges[];
  30. extern pcilib_event_description_t kapture_events[];
  31. extern pcilib_event_data_type_description_t kapture_data_types[];
  32. #endif
  33. pcilib_context_t *kapture_init(pcilib_t *pcilib);
  34. void kapture_free(pcilib_context_t *ctx);
  35. int kapture_reset(pcilib_context_t *ctx);
  36. int kapture_start(pcilib_context_t *ctx, pcilib_event_t event_mask, pcilib_event_flags_t flags);
  37. int kapture_stop(pcilib_context_t *ctx, pcilib_event_flags_t flags);
  38. int kapture_trigger(pcilib_context_t *ctx, pcilib_event_t event, size_t trigger_size, void *trigger_data);
  39. int kapture_stream(pcilib_context_t *vctx, pcilib_event_callback_t callback, void *user);
  40. 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);
  41. 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);
  42. int kapture_return(pcilib_context_t *ctx, pcilib_event_id_t event_id, pcilib_event_data_type_t data_type, void *data);
  43. #ifdef _KAPTURE_C
  44. pcilib_event_api_description_t kapture_api = {
  45. "kapture",
  46. kapture_init,
  47. kapture_free,
  48. NULL,
  49. kapture_reset,
  50. kapture_start,
  51. kapture_stop,
  52. kapture_trigger,
  53. kapture_stream,
  54. kapture_next_event,
  55. kapture_get,
  56. kapture_return
  57. };
  58. #else
  59. extern pcilib_event_api_description_t kapture_api;
  60. #endif
  61. #endif /* _KAPTURE_MODEL_H */