42 #define __EC_IOCTL_H__ |
42 #define __EC_IOCTL_H__ |
43 |
43 |
44 /*****************************************************************************/ |
44 /*****************************************************************************/ |
45 |
45 |
46 enum { |
46 enum { |
47 EC_IOCTL_SLAVE_COUNT = 0, |
47 EC_IOCTL_SLAVE_COUNT, |
48 EC_IOCTL_SLAVE_INFO, |
48 EC_IOCTL_SLAVE, |
|
49 EC_IOCTL_SYNC, |
|
50 EC_IOCTL_PDO, |
|
51 EC_IOCTL_PDO_ENTRY, |
49 }; |
52 }; |
50 |
53 |
51 /*****************************************************************************/ |
54 /*****************************************************************************/ |
52 |
55 |
53 #define EC_IOCTL_SLAVE_INFO_DESC_SIZE 243 |
56 #define EC_IOCTL_SLAVE_NAME_SIZE 114 |
54 |
57 |
55 struct ec_ioctl_slave_info { |
58 typedef struct { |
|
59 // input |
|
60 uint16_t position; |
|
61 |
|
62 // outputs |
56 uint32_t vendor_id; |
63 uint32_t vendor_id; |
57 uint32_t product_code; |
64 uint32_t product_code; |
58 uint16_t alias; |
65 uint16_t alias; |
59 uint16_t ring_position; |
|
60 uint8_t state; |
66 uint8_t state; |
61 char description[EC_IOCTL_SLAVE_INFO_DESC_SIZE]; |
67 uint8_t sync_count; |
62 }; |
68 char name[EC_IOCTL_SLAVE_NAME_SIZE]; |
|
69 } ec_ioctl_slave_t; |
|
70 |
|
71 /*****************************************************************************/ |
|
72 |
|
73 typedef struct { |
|
74 // inputs |
|
75 uint16_t slave_position; |
|
76 unsigned int sync_index; |
|
77 |
|
78 // outputs |
|
79 uint16_t physical_start_address; |
|
80 uint16_t default_size; |
|
81 uint8_t control_register; |
|
82 uint8_t enable; |
|
83 uint8_t assign_source; |
|
84 uint8_t pdo_count; |
|
85 } ec_ioctl_sync_t; |
|
86 |
|
87 /*****************************************************************************/ |
|
88 |
|
89 #define EC_IOCTL_PDO_NAME_SIZE 114 |
|
90 |
|
91 typedef struct { |
|
92 // inputs |
|
93 uint16_t slave_position; |
|
94 unsigned int sync_index; |
|
95 unsigned int pdo_pos; |
|
96 |
|
97 // outputs |
|
98 uint8_t dir; |
|
99 uint16_t index; |
|
100 uint8_t entry_count; |
|
101 char name[EC_IOCTL_PDO_NAME_SIZE]; |
|
102 } ec_ioctl_pdo_t; |
|
103 |
|
104 /*****************************************************************************/ |
|
105 |
|
106 #define EC_IOCTL_PDO_ENTRY_NAME_SIZE 110 |
|
107 |
|
108 typedef struct { |
|
109 // inputs |
|
110 uint16_t slave_position; |
|
111 unsigned int sync_index; |
|
112 unsigned int pdo_pos; |
|
113 unsigned int entry_pos; |
|
114 |
|
115 // outputs |
|
116 uint16_t index; |
|
117 uint8_t subindex; |
|
118 uint8_t bit_length; |
|
119 char name[EC_IOCTL_PDO_NAME_SIZE]; |
|
120 } ec_ioctl_pdo_entry_t; |
63 |
121 |
64 /*****************************************************************************/ |
122 /*****************************************************************************/ |
65 |
123 |
66 #endif |
124 #endif |