On Wed, Aug 02, 2017 at 01:27:50PM +0200, Hans Petter Selasky wrote: > On 08/02/17 13:17, Konstantin Belousov wrote: > > But y must be dev_t. > > Sure, but "struct cdev" 's si_drv0 is only "int" . How can it contain > dev_t ?
Why should it contain dev_t ? Linux KPI abused that field it seems. Lets change the focus of the discussion. You cited the struct linux_cdev * linux_find_cdev(const char *name, unsigned major, unsigned minor) function which finds cdev (or some mockup of the native cdev) by major/minor. Where does these major/minor numbers come from ? I mean that if they are contructed as major(struct stat.st_rdev) and minor(struct stat.st_rdev), then even the original code looks wrong without the ino64 addition. Since devfs reports the internal inode number into st_rdev, which formally is not accessible outside the devfs filesystem. So should the code for linux_find_cdev() changed to match cdevs against inode number ? cdp_inode is serially generated so on real machine it is really a small number for any /dev node. You can watch that by ls -l /dev. _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"