A generic driver for reading and writing PCI(e) BARs via character device files