diff -r b397aee6e602 -r ba51285d4ef6 master/slave.h --- a/master/slave.h Wed Jun 14 10:23:02 2006 +0000 +++ b/master/slave.h Tue Jun 20 14:40:04 2006 +0000 @@ -214,6 +214,20 @@ /*****************************************************************************/ /** + Variable-sized field information. +*/ + +typedef struct +{ + struct list_head list; /**< list item */ + const ec_field_t *field; /**< data field */ + size_t size; /**< field size */ +} +ec_varsize_t; + +/*****************************************************************************/ + +/** EtherCAT slave. */ @@ -282,6 +296,9 @@ ec_slave_state_t current_state; /**< current slave state */ unsigned int state_error; /**< a state error has happened */ unsigned int online; /**< non-zero, if the slave responds. */ + + struct list_head varsize_fields; /**< size information for variable-sized + data fields. */ }; /*****************************************************************************/ @@ -310,6 +327,7 @@ int ec_slave_locate_string(ec_slave_t *, unsigned int, char **); // misc. +size_t ec_slave_calc_sync_size(const ec_slave_t *, const ec_sync_t *); void ec_slave_print(const ec_slave_t *, unsigned int); int ec_slave_check_crc(ec_slave_t *);