/dev/uinput (or /dev/input/uinput), a process can create a virtual input device with specific capabilities. Once this virtual device is created, the process can send events through it, that will be delivered to userspace and in-kernel consumers. inputN under /sys/devices/virtual/input.