Date: Sun, 3 Dec 2017 12:13:16 -0500 From: Lee D <embaudarm@gmail.com> To: freebsd-hackers@freebsd.org Subject: How do I make my device driver respond to lseek? Message-ID: <CANC_bnNWfk3-QgwCEiRhMyjmQOBH%2Bt%2BXxW8zFp%2B=943nRWvJ4g@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hi, I've been trying to figure out how to make my device driver respond to lseek(). There doesn't seem to be an appropriate entry in the cdevsw structure (in src/sys/sys/conf.h). Obviously I can make an ioctl() call for this (and I have, in the interim), but I'd like to do it it the right way. I have a feeling like I am misunderstanding some critical abstraction layer... But at some point the device driver must be told what position to start reading from/writing to, right? FWIW, this is a device driver interface to a SPI flash in my custom ARM embedded system. I need to be able to locate to a point in the flash to read and write my app config info, without disturbing my boot loader. I want to be able to write code like this: int fd = open ("/dev/my_spi_flash0", O_RDWR); lseek(fd, 0x10000, SEEK_SET); write(fd, buf, 100); close(fd); Does anyone know the proper way to implement lseek?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANC_bnNWfk3-QgwCEiRhMyjmQOBH%2Bt%2BXxW8zFp%2B=943nRWvJ4g>