master/ioctl.h
changeset 935 b954e9d91ea5
parent 922 fede1d8f5b71
child 938 5b936e8e39fa
equal deleted inserted replaced
934:96241b092fac 935:b954e9d91ea5
    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