4
#define PCILIB_DEFAULT_CPU_COUNT 2
5
#define PCILIB_EVENT_TIMEOUT 1000000 /**< us */
6
#define PCILIB_TRIGGER_TIMEOUT 100000 /**< us */
7
#define PCILIB_DMA_TIMEOUT 10000 /**< us */
8
#define PCILIB_DMA_SKIP_TIMEOUT 1000000 /**< us */
9
#define PCILIB_REGISTER_TIMEOUT 10000 /**< us */
11
#include "driver/pciDriver.h"
12
#include "pcilib_types.h"
25
pcilib_board_info_t board_info;
26
pcilib_dma_info_t dma_info;
29
char *bar_space[PCILIB_MAX_BANKS];
36
pcilib_bar_t data_bar;
40
pcilib_kmem_list_t *kmem_list;
42
size_t num_reg, alloc_reg;
43
pcilib_model_description_t model_info;
45
pcilib_dma_context_t *dma_ctx;
46
pcilib_context_t *event_ctx;
50
#endif /* PCILIB_FILE_IO */
54
# include "ipecamera/model.h"
55
# include "kapture/model.h"
60
pcilib_model_description_t pcilib_model[4] = {
61
{ 4, PCILIB_HOST_ENDIAN, NULL, NULL, NULL, NULL, NULL, NULL },
62
{ 4, PCILIB_HOST_ENDIAN, NULL, NULL, NULL, NULL, NULL, NULL },
63
{ 4, PCILIB_LITTLE_ENDIAN, ipecamera_registers, ipecamera_register_banks, ipecamera_register_ranges, ipecamera_events, ipecamera_data_types, &ipe_dma_api, &ipecamera_image_api },
64
{ 4, PCILIB_LITTLE_ENDIAN, kapture_registers, kapture_register_banks, kapture_register_ranges, kapture_events, kapture_data_types, &ipe_dma_api, &kapture_api },
67
pcilib_protocol_description_t pcilib_protocol[3] = {
68
{ pcilib_default_read, pcilib_default_write },
69
{ ipecamera_read, ipecamera_write },
73
extern pcilib_model_description_t pcilib_model[];
74
extern pcilib_protocol_description_t pcilib_protocol[];
75
#endif /* _PCILIB_PCI_C */
77
const pcilib_board_info_t *pcilib_get_board_info(pcilib_t *ctx);
78
const pcilib_dma_info_t *pcilib_get_dma_info(pcilib_t *ctx);
80
int pcilib_map_register_space(pcilib_t *ctx);
81
int pcilib_map_data_space(pcilib_t *ctx, uintptr_t addr);
82
int pcilib_detect_address(pcilib_t *ctx, pcilib_bar_t *bar, uintptr_t *addr, size_t size);
85
#endif /* _PCITOOL_PCI_H */