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", |