master/module.c
changeset 1399 f79d4bb5b23a
parent 1363 11c0b2caa253
child 1469 873e4ee3d5ec
equal deleted inserted replaced
1398:36c23e993040 1399:f79d4bb5b23a
    53 static int ec_mac_parse(uint8_t *, const char *, int);
    53 static int ec_mac_parse(uint8_t *, const char *, int);
    54 
    54 
    55 /*****************************************************************************/
    55 /*****************************************************************************/
    56 
    56 
    57 static char *main_devices[MAX_MASTERS]; /**< Main devices parameter. */
    57 static char *main_devices[MAX_MASTERS]; /**< Main devices parameter. */
       
    58 static unsigned int master_count; /**< Number of masters. */
    58 static char *backup_devices[MAX_MASTERS]; /**< Backup devices parameter. */
    59 static char *backup_devices[MAX_MASTERS]; /**< Backup devices parameter. */
       
    60 static unsigned int backup_count; /**< Number of backup devices. */
       
    61 static unsigned int debug_level;  /**< Debug level parameter. */
    59 
    62 
    60 static ec_master_t *masters; /**< Array of masters. */
    63 static ec_master_t *masters; /**< Array of masters. */
    61 static struct semaphore master_sem; /**< Master semaphore. */
    64 static struct semaphore master_sem; /**< Master semaphore. */
    62 static unsigned int master_count; /**< Number of masters. */
       
    63 static unsigned int backup_count; /**< Number of backup devices. */
       
    64 
    65 
    65 dev_t device_number; /**< Device number for master cdevs. */
    66 dev_t device_number; /**< Device number for master cdevs. */
    66 struct class *class; /**< Device class. */
    67 struct class *class; /**< Device class. */
    67 
    68 
    68 static uint8_t macs[MAX_MASTERS][2][ETH_ALEN]; /**< MAC addresses. */
    69 static uint8_t macs[MAX_MASTERS][2][ETH_ALEN]; /**< MAC addresses. */
    80 
    81 
    81 module_param_array(main_devices, charp, &master_count, S_IRUGO);
    82 module_param_array(main_devices, charp, &master_count, S_IRUGO);
    82 MODULE_PARM_DESC(main_devices, "MAC addresses of main devices");
    83 MODULE_PARM_DESC(main_devices, "MAC addresses of main devices");
    83 module_param_array(backup_devices, charp, &backup_count, S_IRUGO);
    84 module_param_array(backup_devices, charp, &backup_count, S_IRUGO);
    84 MODULE_PARM_DESC(backup_devices, "MAC addresses of backup devices");
    85 MODULE_PARM_DESC(backup_devices, "MAC addresses of backup devices");
       
    86 module_param_named(debug_level, debug_level, uint, S_IRUGO);
       
    87 MODULE_PARM_DESC(debug_level, "Debug level");
    85 
    88 
    86 /** \endcond */
    89 /** \endcond */
    87 
    90 
    88 /*****************************************************************************/
    91 /*****************************************************************************/
    89 
    92 
   143         }
   146         }
   144     }
   147     }
   145     
   148     
   146     for (i = 0; i < master_count; i++) {
   149     for (i = 0; i < master_count; i++) {
   147         ret = ec_master_init(&masters[i], i, macs[i][0], macs[i][1],
   150         ret = ec_master_init(&masters[i], i, macs[i][0], macs[i][1],
   148                     device_number, class);
   151                     device_number, class, debug_level);
   149         if (ret)
   152         if (ret)
   150             goto out_free_masters;
   153             goto out_free_masters;
   151     }
   154     }
   152     
   155     
   153     EC_INFO("%u master%s waiting for devices.\n",
   156     EC_INFO("%u master%s waiting for devices.\n",