Exemplo n.º 1
0
BOOL
visorchannel_signalinsert(struct visorchannel *channel, u32 queue, void *msg)
{
	BOOL rc;

	if (channel->needs_lock) {
		spin_lock(&channel->insert_lock);
		rc = signalinsert_inner(channel, queue, msg);
		spin_unlock(&channel->insert_lock);
	} else {
		rc = signalinsert_inner(channel, queue, msg);
	}

	return rc;
}
Exemplo n.º 2
0
/**
 * visorchannel_signalinsert() - inserts a message into the designated
 *                               channel/queue
 * @channel: the channel the message will be added to
 * @queue:   the queue the message will be added to
 * @msg:     the message to insert
 *
 * Return: integer error code indicating the status of the insertion
 */
int
visorchannel_signalinsert(struct visorchannel *channel, u32 queue, void *msg)
{
	int rc;
	unsigned long flags;

	if (channel->needs_lock) {
		spin_lock_irqsave(&channel->insert_lock, flags);
		rc = signalinsert_inner(channel, queue, msg);
		spin_unlock_irqrestore(&channel->insert_lock, flags);
	} else {
		rc = signalinsert_inner(channel, queue, msg);
	}

	return rc;
}