10 static int loadLibrary();
12 static void (*fptr_ecrt_master_state)(
const ec_master_t *,
14 static void ecrt_master_state(
const ec_master_t *, ec_master_state_t *);
16 static ec_master_t *(*fptr_ecrt_open_master)(
unsigned int);
17 static ec_master_t *ecrt_open_master(
unsigned int);
19 static int (*fptr_ecrt_master_rescan)(ec_master_t *);
20 static int ecrt_master_rescan(ec_master_t *);
22 static void (*fptr_ecrt_release_master)(ec_master_t *);
23 static void ecrt_release_master(ec_master_t *);
25 static int (*fptr_ecrt_master_get_slave)(ec_master_t *, uint16_t,
27 static int ecrt_master_get_slave(ec_master_t *, uint16_t, ec_slave_info_t *);
29 static int (*fptr_ecrt_master_sdo_upload)(ec_master_t *, uint16_t, uint16_t,
30 uint8_t, uint8_t *, size_t,
31 size_t *, uint32_t *);
32 static int ecrt_master_sdo_upload(ec_master_t *, uint16_t, uint16_t, uint8_t,
33 uint8_t *,
size_t,
size_t *, uint32_t *);
35 static uint8_t *(*fptr_ecrt_sdo_request_data)(ec_sdo_request_t *);
36 static uint8_t *ecrt_sdo_request_data(ec_sdo_request_t *);
38 static size_t (*fptr_ecrt_sdo_request_data_size)(
const ec_sdo_request_t *);
39 static size_t ecrt_sdo_request_data_size(
const ec_sdo_request_t *);
41 static ec_master_t *(*fptr_ecrt_request_master)(
unsigned int);
42 static ec_master_t *ecrt_request_master(
unsigned int);
44 static int (*fptr_ecrt_master)(ec_master_t *, ec_master_info_t *);
45 static int ecrt_master(ec_master_t *, ec_master_info_t *);
47 static void (*fptr_ecrt_master_receive)(ec_master_t *);
48 static void ecrt_master_receive(ec_master_t *);
50 static void (*fptr_ecrt_domain_process)(ec_domain_t *);
51 static void ecrt_domain_process(ec_domain_t *);
53 static void (*fptr_ecrt_domain_state)(
const ec_domain_t *,
55 static void ecrt_domain_state(
const ec_domain_t *, ec_domain_state_t *);
57 static void (*fptr_ecrt_domain_queue)(ec_domain_t *);
58 static void ecrt_domain_queue(ec_domain_t *);
60 static size_t (*fptr_ecrt_master_send)(ec_master_t *);
61 static size_t ecrt_master_send(ec_master_t *);
63 static int (*fptr_ecrt_master_read_foe)(ec_master_t *, uint16_t,
const char *,
65 static int ecrt_master_read_foe(ec_master_t *, uint16_t,
const char *,
68 static int (*fptr_ecrt_master_write_foe)(ec_master_t *, uint16_t,
69 const char *,
const uint8_t *,
71 static int ecrt_master_write_foe(ec_master_t *, uint16_t,
const char *,
72 const uint8_t *,
size_t);
74 static int (*fptr_ecrt_master_write_sii)(ec_master_t *, uint16_t,
75 const uint8_t *, size_t);
76 static int ecrt_master_write_sii(ec_master_t *, uint16_t,
const uint8_t *,
79 static void (*fptr_ecrt_slave_config_state)(
const ec_slave_config_t *,
80 ec_slave_config_state_t *);
81 static void ecrt_slave_config_state(
const ec_slave_config_t *,
82 ec_slave_config_state_t *);
84 static int (*fptr_ecrt_master_slave_link_state_request)(
const ec_master_t *,
86 static int ecrt_master_slave_link_state_request(
const ec_master_t *, uint16_t,
89 static void (*fptr_ecrt_sdo_request_read)(ec_sdo_request_t *);
90 static void ecrt_sdo_request_read(ec_sdo_request_t *);
92 static ec_request_state_t (*fptr_ecrt_sdo_request_state)(ec_sdo_request_t *);
93 static ec_request_state_t ecrt_sdo_request_state(ec_sdo_request_t *);
95 static int (*fptr_ecrt_master_sdo_download)(ec_master_t *, uint16_t, uint16_t,
96 uint8_t,
const uint8_t *, size_t,
98 static int ecrt_master_sdo_download(ec_master_t *, uint16_t, uint16_t,
99 uint8_t,
const uint8_t *,
size_t,
102 static void (*fptr_ecrt_sdo_request_write)(ec_sdo_request_t *);
103 static void ecrt_sdo_request_write(ec_sdo_request_t *);
105 static int (*fptr_ecrt_sdo_get_info_entry)(ec_master_t *, uint16_t, uint16_t,
106 uint8_t, ec_sdo_info_entry_t *);
107 static int ecrt_sdo_get_info_entry(ec_master_t *, uint16_t, uint16_t, uint8_t,
108 ec_sdo_info_entry_t *);
110 static int (*fptr_ecrt_sdo_info_get)(ec_master_t *, uint16_t, uint16_t,
112 static int ecrt_sdo_info_get(ec_master_t *, uint16_t, uint16_t,
115 static void (*fptr_ecrt_sdo_request_timeout)(ec_sdo_request_t *, uint32_t);
116 static void ecrt_sdo_request_timeout(ec_sdo_request_t *, uint32_t);
118 static ec_sdo_request_t *(*fptr_ecrt_slave_config_create_sdo_request)(
119 ec_slave_config_t *, uint16_t, uint8_t, size_t);
120 static ec_sdo_request_t *ecrt_slave_config_create_sdo_request(
121 ec_slave_config_t *, uint16_t, uint8_t,
size_t);
123 static int (*fptr_ecrt_slave_config_pdos)(ec_slave_config_t *,
unsigned int,
124 const ec_sync_info_t[]);
125 static int ecrt_slave_config_pdos(ec_slave_config_t *,
unsigned int,
126 const ec_sync_info_t[]);
128 static int (*fptr_ecrt_master_get_pdo_entry)(ec_master_t *, uint16_t, uint8_t,
130 ec_pdo_entry_info_t *);
131 static int ecrt_master_get_pdo_entry(ec_master_t *, uint16_t, uint8_t,
133 ec_pdo_entry_info_t *);
135 static ec_domain_t *(*fptr_ecrt_master_create_domain)(ec_master_t *);
136 static ec_domain_t *ecrt_master_create_domain(ec_master_t *);
138 static int (*fptr_ecrt_master_activate)(ec_master_t *);
139 static int ecrt_master_activate(ec_master_t *);
141 static void (*fptr_ecrt_master_deactivate)(ec_master_t *);
142 static void ecrt_master_deactivate(ec_master_t *);
144 static int (*fptr_ecrt_domain_reg_pdo_entry_list)(ec_domain_t *,
145 const ec_pdo_entry_reg_t *);
146 static int ecrt_domain_reg_pdo_entry_list(ec_domain_t *,
147 const ec_pdo_entry_reg_t *);
149 static uint8_t *(*fptr_ecrt_domain_data)(ec_domain_t *);
150 static uint8_t *ecrt_domain_data(ec_domain_t *);
152 static ec_slave_config_t *(*fptr_ecrt_master_slave_config)(ec_master_t *,
156 static ec_slave_config_t *ecrt_master_slave_config(ec_master_t *, uint16_t,
160 static int (*fptr_ecrt_master_get_sync_manager)(ec_master_t *, uint16_t,
161 uint8_t, ec_sync_info_t *);
162 static int ecrt_master_get_sync_manager(ec_master_t *, uint16_t, uint8_t,
165 static int (*fptr_ecrt_master_get_pdo)(ec_master_t *, uint16_t, uint8_t,
166 uint16_t, ec_pdo_info_t *);
167 static int ecrt_master_get_pdo(ec_master_t *, uint16_t, uint8_t, uint16_t,
170 static int (*fptr_ecrt_master_slave_dictionary_upload)(ec_master_t *,
172 static int ecrt_master_slave_dictionary_upload(ec_master_t *, uint16_t);
174 static void (*fptr_ecrt_master_deactivate_slaves)(ec_master_t *);
176 static void ecrt_master_deactivate_slaves(ec_master_t *);