Locking callback interface.
This commit is contained in:
parent
ba806d5094
commit
c7020c319d
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
|||
Loading…
Reference in New Issue