This commit is contained in:
Martin Troxler
2009-11-19 14:44:57 +01:00
41 changed files with 9139 additions and 229 deletions
+9 -5
View File
@@ -238,24 +238,28 @@ void run(long data)
/*****************************************************************************/
void send_callback(ec_master_t *master)
void send_callback(void *cb_data)
{
ec_master_t *m = (ec_master_t *) cb_data;
// too close to the next real time cycle: deny access...
if (get_cycles() - t_last_cycle <= t_critical) {
rt_sem_wait(&master_sem);
ecrt_master_send_ext(master);
ecrt_master_send_ext(m);
rt_sem_signal(&master_sem);
}
}
/*****************************************************************************/
void receive_callback(ec_master_t *master)
void receive_callback(void *cb_data)
{
ec_master_t *m = (ec_master_t *) cb_data;
// too close to the next real time cycle: deny access...
if (get_cycles() - t_last_cycle <= t_critical) {
rt_sem_wait(&master_sem);
ecrt_master_receive(master);
ecrt_master_receive(m);
rt_sem_signal(&master_sem);
}
}
@@ -281,7 +285,7 @@ int __init init_mod(void)
goto out_return;
}
ecrt_master_callbacks(master, send_callback, receive_callback);
ecrt_master_callbacks(master, send_callback, receive_callback, master);
printk(KERN_INFO PFX "Registering domain...\n");
if (!(domain1 = ecrt_master_create_domain(master))) {
+7 -6
View File
@@ -354,19 +354,21 @@ void cyclic_task(unsigned long data)
/*****************************************************************************/
void send_callback(ec_master_t *master)
void send_callback(void *cb_data)
{
ec_master_t *m = (ec_master_t *) cb_data;
down(&master_sem);
ecrt_master_send_ext(master);
ecrt_master_send_ext(m);
up(&master_sem);
}
/*****************************************************************************/
void receive_callback(ec_master_t *master)
void receive_callback(void *cb_data)
{
ec_master_t *m = (ec_master_t *) cb_data;
down(&master_sem);
ecrt_master_receive(master);
ecrt_master_receive(m);
up(&master_sem);
}
@@ -392,8 +394,7 @@ int __init init_mini_module(void)
}
sema_init(&master_sem, 1);
ecrt_master_callbacks(master, send_callback, receive_callback);
ecrt_master_callbacks(master, send_callback, receive_callback, master);
printk(KERN_INFO PFX "Registering domain...\n");
if (!(domain1 = ecrt_master_create_domain(master))) {
+9 -5
View File
@@ -243,24 +243,28 @@ void run(long data)
/*****************************************************************************/
void send_callback(ec_master_t *master)
void send_callback(void *cb_data)
{
ec_master_t *m = (ec_master_t *) cb_data;
// too close to the next real time cycle: deny access...
if (get_cycles() - t_last_cycle <= t_critical) {
rt_sem_wait(&master_sem);
ecrt_master_send_ext(master);
ecrt_master_send_ext(m);
rt_sem_signal(&master_sem);
}
}
/*****************************************************************************/
void receive_callback(ec_master_t *master)
void receive_callback(void *cb_data)
{
ec_master_t *m = (ec_master_t *) cb_data;
// too close to the next real time cycle: deny access...
if (get_cycles() - t_last_cycle <= t_critical) {
rt_sem_wait(&master_sem);
ecrt_master_receive(master);
ecrt_master_receive(m);
rt_sem_signal(&master_sem);
}
}
@@ -288,7 +292,7 @@ int __init init_mod(void)
goto out_return;
}
ecrt_master_callbacks(master, send_callback, receive_callback);
ecrt_master_callbacks(master, send_callback, receive_callback, master);
printk(KERN_INFO PFX "Registering domain...\n");
if (!(domain1 = ecrt_master_create_domain(master))) {