Fix for new locking for rtdm module

This commit is contained in:
Andreas Stewering-Bone 2011-05-23 12:23:21 +02:00
parent f2cb66e7ed
commit 324bc8080d
1 changed files with 6 additions and 11 deletions

View File

@ -164,9 +164,9 @@ static int _atoi(const char* text)
/**********************************************************/
/* DRIVER sendcallback */
/* DRIVER lockcallback */
/**********************************************************/
void send_callback(void *cb_data)
void request_lock_callback(void *cb_data)
{
EC_RTDM_DRV_STRUCT * pdrvstruc;
@ -174,24 +174,20 @@ void send_callback(void *cb_data)
if (pdrvstruc->master)
{
my_mutex_acquire(&pdrvstruc->masterlock,TM_INFINITE);
ecrt_master_send_ext(pdrvstruc->master);
my_mutex_release(&pdrvstruc->masterlock);
}
}
}
/*****************************************************************************/
void receive_callback(void *cb_data)
void release_lock_callback(void *cb_data)
{
EC_RTDM_DRV_STRUCT * pdrvstruc;
pdrvstruc = (EC_RTDM_DRV_STRUCT*)cb_data;
if (pdrvstruc->master)
{
my_mutex_acquire(&pdrvstruc->masterlock,TM_INFINITE);
ecrt_master_receive(pdrvstruc->master);
my_mutex_release(&pdrvstruc->masterlock);
}
}
}
@ -560,8 +556,7 @@ int ec_rtdm_ioctl_rt(struct rtdm_dev_context *context,
snprintf(&pdrvstruc->mutexname[0],sizeof(pdrvstruc->mutexname)-1,"ETHrtdmLOCK%d",pdrvstruc->masterno);
EC_RTDM_INFO(pdrvstruc->masterno,"Creating Master mutex %s!\n",&pdrvstruc->mutexname[0]);
my_mutex_create(&pdrvstruc->masterlock,&pdrvstruc->mutexname[0]);
//ecrt_release_master(mstr);
ecrt_master_callbacks(pdrvstruc->master, send_callback, receive_callback, pdrvstruc);
ecrt_master_callbacks(pdrvstruc->master, request_lock_callback, release_lock_callback, pdrvstruc);
EC_RTDM_INFO(pdrvstruc->masterno,"MSTR ATTACH done domain=%u!\n",(unsigned int)pdrvstruc->domain);
pdrvstruc->isattached=1;
ret = 0;