Locking callback interface.

This commit is contained in:
Florian Pose 2006-04-25 12:04:04 +00:00
parent ba806d5094
commit c7020c319d
3 changed files with 28 additions and 0 deletions

View File

@ -88,6 +88,9 @@ void ecrt_release_master(ec_master_t *master);
* Master methods
*****************************************************************************/
void ecrt_master_callbacks(ec_master_t *master, int (*request_cb)(void *),
void (*release_cb)(void *), void *cb_data);
ec_domain_t *ecrt_master_create_domain(ec_master_t *master);
int ecrt_master_activate(ec_master_t *master);

View File

@ -208,6 +208,10 @@ void ec_master_reset(ec_master_t *master /**< EtherCAT master */)
master->stats.t_last = 0;
master->mode = EC_MASTER_MODE_IDLE;
master->request_cb = NULL;
master->release_cb = NULL;
master->cb_data = NULL;
}
/*****************************************************************************/
@ -1409,6 +1413,24 @@ ec_slave_t *ecrt_master_get_slave(const ec_master_t *master, /**< Master */
/*****************************************************************************/
/**
Sets the locking callbacks.
\ingroup RealtimeInterface
*/
void ecrt_master_callbacks(ec_master_t *master, /**< EtherCAT master */
int (*request_cb)(void *), /**< request lock CB */
void (*release_cb)(void *), /**< release lock CB */
void *cb_data /**< data parameter */
)
{
master->request_cb = request_cb;
master->release_cb = release_cb;
master->cb_data = cb_data;
}
/*****************************************************************************/
/**
Sets the debug level of the master.
The following levels are valid:

View File

@ -98,6 +98,9 @@ struct ec_master
unsigned int reserved; /**< true, if the master is reserved for RT */
struct timer_list freerun_timer; /**< timer object for free run mode */
ec_master_mode_t mode; /**< master mode */
int (*request_cb)(void *); /**< lock request callback */
void (*release_cb)(void *); /**< lock release callback */
void *cb_data; /**< data parameter of locking callbacks */
};
/*****************************************************************************/