/alps/pcitool

To get this branch, use:
bzr branch http://suren.me/webbzr/alps/pcitool

« back to all changes in this revision

Viewing changes to pcilib.h

  • Committer: Suren A. Chilingaryan
  • Date: 2011-07-18 14:42:51 UTC
  • Revision ID: csa@dside.dyndns.org-20110718144251-nmbl7xhcq00mfx1p
IRQ acknowledgement support in the engine API

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
typedef struct pcilib_dma_api_description_s pcilib_dma_api_description_t;
17
17
typedef struct pcilib_event_api_description_s pcilib_event_api_description_t;
18
18
typedef struct  pcilib_protocol_description_s pcilib_protocol_description_t;
19
 
typedef unsigned int pcilib_irq_source_t;
 
19
typedef unsigned int pcilib_irq_hw_source_t;
 
20
typedef uint32_t pcilib_irq_source_t;
20
21
 
21
22
typedef uint8_t pcilib_bar_t;                   /**< Type holding the PCI Bar number */
22
23
typedef uint8_t pcilib_register_t;              /**< Type holding the register ID within the Bank */
99
100
#define PCILIB_TIMEOUT_INFINITE         ((pcilib_timeout_t)-1)
100
101
#define PCILIB_TIMEOUT_IMMEDIATE        0
101
102
#define PCILIB_TIMEOUT_TRIGGER          0
 
103
#define PCILIB_IRQ_SOURCE_DEFAULT       0
102
104
 
103
105
typedef int (*pcilib_dma_callback_t)(void *ctx, pcilib_dma_flags_t flags, size_t bufsize, void *buf);
104
106
typedef int (*pcilib_event_callback_t)(pcilib_event_t event, pcilib_event_id_t event_id, void *user);
204
206
 
205
207
int pcilib_start_dma(pcilib_t *ctx, pcilib_dma_engine_t dma, pcilib_dma_flags_t flags);
206
208
int pcilib_stop_dma(pcilib_t *ctx, pcilib_dma_engine_t dma, pcilib_dma_flags_t flags);
 
209
 
 
210
    // Interrupt API is preliminary and can be significantly changed in future
207
211
int pcilib_enable_irq(pcilib_t *ctx, pcilib_irq_type_t irq_type, pcilib_dma_flags_t flags);
 
212
int pcilib_acknowledge_irq(pcilib_t *ctx, pcilib_irq_type_t irq_type, pcilib_irq_source_t irq_source);
208
213
int pcilib_disable_irq(pcilib_t *ctx, pcilib_dma_flags_t flags);
209
214
 
210
 
int pcilib_clear_irq(pcilib_t *ctx, pcilib_irq_source_t source);
211
 
int pcilib_wait_irq(pcilib_t *ctx, pcilib_irq_source_t source, pcilib_timeout_t timeout, size_t *count);
 
215
int pcilib_wait_irq(pcilib_t *ctx, pcilib_irq_hw_source_t source, pcilib_timeout_t timeout, size_t *count);
 
216
int pcilib_clear_irq(pcilib_t *ctx, pcilib_irq_hw_source_t source);
212
217
 
213
218
void *pcilib_map_bar(pcilib_t *ctx, pcilib_bar_t bar);
214
219
void pcilib_unmap_bar(pcilib_t *ctx, pcilib_bar_t bar, void *data);