示例#1
0
void psmx2_eq_enqueue_event(struct psmx2_fid_eq *eq,
			    struct psmx2_eq_event *event)
{
	fastlock_acquire(&eq->lock);
	if (event->error)
		slist_insert_tail(&event->list_entry, &eq->error_queue);
	else
		slist_insert_tail(&event->list_entry, &eq->event_queue);
	fastlock_release(&eq->lock);

	if (eq->wait)
		psmx2_wait_signal((struct fid_wait *)eq->wait);
}
示例#2
0
static int psmx2_cntr_set(struct fid_cntr *cntr, uint64_t value)
{
	struct psmx2_fid_cntr *cntr_priv;

	cntr_priv = container_of(cntr, struct psmx2_fid_cntr, cntr);
	cntr_priv->counter = value;

	psmx2_cntr_check_trigger(cntr_priv);

	if (cntr_priv->wait)
		psmx2_wait_signal((struct fid_wait *)cntr_priv->wait);

	return 0;
}