master/domain.h
changeset 178 b84f69db8566
parent 144 fdc24bf62f80
child 179 fb4c9dd11ca0
equal deleted inserted replaced
177:482200a0659f 178:b84f69db8566
    10 
    10 
    11 #ifndef _EC_DOMAIN_H_
    11 #ifndef _EC_DOMAIN_H_
    12 #define _EC_DOMAIN_H_
    12 #define _EC_DOMAIN_H_
    13 
    13 
    14 #include <linux/list.h>
    14 #include <linux/list.h>
       
    15 #include <linux/kobject.h>
    15 
    16 
    16 #include "globals.h"
    17 #include "globals.h"
    17 #include "slave.h"
    18 #include "slave.h"
    18 #include "command.h"
    19 #include "command.h"
    19 
    20 
    42    Menge von Slaves.
    43    Menge von Slaves.
    43 */
    44 */
    44 
    45 
    45 struct ec_domain
    46 struct ec_domain
    46 {
    47 {
       
    48     struct kobject kobj; /**< Kobject der Domäne */
    47     struct list_head list; /**< Listenkopf */
    49     struct list_head list; /**< Listenkopf */
       
    50     unsigned int index; /**< Domänen-Index */
    48     ec_master_t *master; /**< EtherCAT-Master, zu der die Domäne gehört. */
    51     ec_master_t *master; /**< EtherCAT-Master, zu der die Domäne gehört. */
    49     size_t data_size; /**< Größe der Prozessdaten */
    52     size_t data_size; /**< Größe der Prozessdaten */
    50     struct list_head commands; /**< EtherCAT-Kommandos für die Prozessdaten */
    53     struct list_head commands; /**< EtherCAT-Kommandos für die Prozessdaten */
    51     uint32_t base_address; /**< Logische Basisaddresse der Domain */
    54     uint32_t base_address; /**< Logische Basisaddresse der Domain */
    52     unsigned int response_count; /**< Anzahl antwortender Slaves */
    55     unsigned int response_count; /**< Anzahl antwortender Slaves */
    53     struct list_head field_regs; /**< Liste der Datenfeldregistrierungen */
    56     struct list_head field_regs; /**< Liste der Datenfeldregistrierungen */
    54 };
    57 };
    55 
    58 
    56 /*****************************************************************************/
    59 /*****************************************************************************/
    57 
    60 
    58 void ec_domain_init(ec_domain_t *, ec_master_t *);
    61 int ec_domain_init(ec_domain_t *, ec_master_t *, unsigned int);
    59 void ec_domain_clear(ec_domain_t *);
    62 void ec_domain_clear(struct kobject *);
    60 int ec_domain_alloc(ec_domain_t *, uint32_t);
    63 int ec_domain_alloc(ec_domain_t *, uint32_t);
       
    64 
       
    65 ssize_t ec_show_domain_attribute(struct kobject *, struct attribute *, char *);
    61 
    66 
    62 /*****************************************************************************/
    67 /*****************************************************************************/
    63 
    68 
    64 #endif
    69 #endif
    65 
    70 
    66 /* Emacs-Konfiguration
    71 /* Emacs-Konfiguration
    67    ;;; Local Variables: ***
    72 ;;; Local Variables: ***
    68    ;;; c-basic-offset:4 ***
    73 ;;; c-basic-offset:4 ***
    69 ;;; End: ***
    74 ;;; End: ***
    70 */
    75 */