master/master.c
changeset 576 158c5a3d0a2a
parent 573 cdee4ea90ce9
child 578 f402b4bd2f4d
equal deleted inserted replaced
575:9a2121b500b1 576:158c5a3d0a2a
    99    Master constructor.
    99    Master constructor.
   100    \return 0 in case of success, else < 0
   100    \return 0 in case of success, else < 0
   101 */
   101 */
   102 
   102 
   103 int ec_master_init(ec_master_t *master, /**< EtherCAT master */
   103 int ec_master_init(ec_master_t *master, /**< EtherCAT master */
   104                    unsigned int index, /**< master index */
   104         struct kobject *module_kobj, /**< kobject of the master module */
   105                    const ec_device_id_t *main_id, /**< ID of main device */
   105         unsigned int index, /**< master index */
   106                    const ec_device_id_t *backup_id, /**< ID of main device */
   106         const ec_device_id_t *main_id, /**< ID of main device */
   107                    unsigned int eoeif_count /**< number of EoE interfaces */
   107         const ec_device_id_t *backup_id, /**< ID of main device */
   108                    )
   108         unsigned int eoeif_count /**< number of EoE interfaces */
       
   109         )
   109 {
   110 {
   110     ec_eoe_t *eoe, *next_eoe;
   111     ec_eoe_t *eoe, *next_eoe;
   111     unsigned int i;
   112     unsigned int i;
   112 
   113 
   113     atomic_set(&master->available, 1);
   114     atomic_set(&master->available, 1);
   190 
   191 
   191     // init kobject and add it to the hierarchy
   192     // init kobject and add it to the hierarchy
   192     memset(&master->kobj, 0x00, sizeof(struct kobject));
   193     memset(&master->kobj, 0x00, sizeof(struct kobject));
   193     kobject_init(&master->kobj);
   194     kobject_init(&master->kobj);
   194     master->kobj.ktype = &ktype_ec_master;
   195     master->kobj.ktype = &ktype_ec_master;
   195     if (kobject_set_name(&master->kobj, "ethercat%i", index)) {
   196     master->kobj.parent = module_kobj;
   196         EC_ERR("Failed to set kobj name.\n");
   197     
       
   198     if (kobject_set_name(&master->kobj, "master%i", index)) {
       
   199         EC_ERR("Failed to set master kobject name.\n");
   197         kobject_put(&master->kobj);
   200         kobject_put(&master->kobj);
   198         return -1;
   201         return -1;
   199     }
   202     }
       
   203     
   200     if (kobject_add(&master->kobj)) {
   204     if (kobject_add(&master->kobj)) {
   201         EC_ERR("Failed to add master kobj.\n");
   205         EC_ERR("Failed to add master kobject.\n");
   202         kobject_put(&master->kobj);
   206         kobject_put(&master->kobj);
   203         return -1;
   207         return -1;
   204     }
   208     }
   205 
   209 
   206     return 0;
   210     return 0;