/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 event.h

  • Committer: Suren A. Chilingaryan
  • Date: 2011-12-08 02:47:23 UTC
  • Revision ID: csa@dside.dyndns.org-20111208024723-ym9uf3uoll6ym2a9
new event architecture, first trial

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
 
10
10
    int (*reset)(pcilib_context_t *ctx);
11
11
 
12
 
    int (*start)(pcilib_context_t *ctx, pcilib_event_t event_mask, pcilib_event_callback_t callback, void *user);
13
 
    int (*stop)(pcilib_context_t *ctx);
 
12
    int (*start)(pcilib_context_t *ctx, pcilib_event_t event_mask, pcilib_event_flags_t flags);
 
13
    int (*stop)(pcilib_context_t *ctx, pcilib_event_flags_t flags);
14
14
    int (*trigger)(pcilib_context_t *ctx, pcilib_event_t event, size_t trigger_size, void *trigger_data);
15
15
    
16
 
    pcilib_event_id_t (*next_event)(pcilib_context_t *ctx, pcilib_event_t event_mask, pcilib_timeout_t timeout);
17
 
    void* (*get_data)(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);
18
 
    int (*return_data)(pcilib_context_t *ctx, pcilib_event_id_t event_id);
 
16
    int (*stream)(pcilib_context_t *ctx, pcilib_event_callback_t callback, void *user);
 
17
    pcilib_event_id_t (*next_event)(pcilib_context_t *ctx, pcilib_timeout_t timeout, pcilib_event_id_t *evid, pcilib_event_info_t **info);
 
18
 
 
19
    void* (*get_data)(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 *data);
 
20
    int (*return_data)(pcilib_context_t *ctx, pcilib_event_id_t event_id, void *data);
19
21
    
20
22
    pcilib_dma_context_t *(*init_dma)(pcilib_context_t *ctx);
21
 
 
22
 
};
23
 
 
 
23
};
 
24
 
 
25
 
 
26
typedef struct {
 
27
    size_t max_events;
 
28
    pcilib_timeout_t duration;
 
29
} pcilib_autostop_parameters_t;
 
30
 
 
31
typedef struct {
 
32
    pcilib_event_rawdata_callback_t callback;
 
33
    void *user;
 
34
} pcilib_rawdata_parameters_t;
 
35
 
 
36
typedef struct {
 
37
    pcilib_autostop_parameters_t autostop;
 
38
    pcilib_rawdata_parameters_t rawdata;
 
39
} pcilib_event_parameters_t;
 
40
 
 
41
struct pcilib_event_context_s {
 
42
    pcilib_event_parameters_t params;
 
43
    pcilib_t *pcilib;
 
44
};
 
45
 
 
46
 
 
47
int pcilib_init_event_engine(pcilib_t *ctx);
24
48
 
25
49
#endif /* _PCILIB_EVENT_H */