Beispiel #1
0
static int uinput_request_send(struct uinput_device *udev,
                               struct uinput_request *request)
{
    int retval;

    retval = mutex_lock_interruptible(&udev->mutex);
    if (retval)
        return retval;

    if (udev->state != UIST_CREATED) {
        retval = -ENODEV;
        goto out;
    }

    init_completion(&request->done);

    /*
     * Tell our userspace application about this new request
     * by queueing an input event.
     */
    uinput_dev_event(udev->dev, EV_UINPUT, request->code, request->id);

out:
    mutex_unlock(&udev->mutex);
    return retval;
}
Beispiel #2
0
static int uinput_request_submit(struct input_dev *dev, struct uinput_request *request)
{
    /* Tell our userspace app about this new request by queueing an input event */
    uinput_dev_event(dev, EV_UINPUT, request->code, request->id);

    /* Wait for the request to complete */
    wait_for_completion(&request->done);
    return request->retval;
}
Beispiel #3
0
static int uinput_request_submit(struct uinput_device *udev, struct uinput_request *request)
{
	int retval;

	retval = uinput_request_reserve_slot(udev, request);
	if (retval)
		return retval;

	retval = mutex_lock_interruptible(&udev->mutex);
	if (retval)
		return retval;

	if (udev->state != UIST_CREATED) {
		retval = -ENODEV;
		goto out;
	}

	/* Tell our userspace app about this new request by queueing an input event */
	uinput_dev_event(udev->dev, EV_UINPUT, request->code, request->id);

 out:
	mutex_unlock(&udev->mutex);
	return retval;
}
Beispiel #4
0
static int uinput_dev_playback(struct input_dev *dev, int effect_id, int value)
{
	return uinput_dev_event(dev, EV_FF, effect_id, value);
}
Beispiel #5
0
static void uinput_dev_set_autocenter(struct input_dev *dev, u16 magnitude)
{
	uinput_dev_event(dev, EV_FF, FF_AUTOCENTER, magnitude);
}
Beispiel #6
0
static void uinput_dev_set_gain(struct input_dev *dev, u16 gain)
{
	uinput_dev_event(dev, EV_FF, FF_GAIN, gain);
}