diff options
author | Kevin Kirspel <kevin-kirspel@idexx.com> | 2017-05-12 08:16:27 -0400 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-05-12 14:20:33 +0200 |
commit | 817cbf7201ebd2c27d8e1b8e47a9090762bb010e (patch) | |
tree | e2d315cfbe7498d2c3f49473cafb02bcd61e6d6e /freebsd | |
parent | Updating scripts for USB Serial Drivers (diff) | |
download | rtems-libbsd-817cbf7201ebd2c27d8e1b8e47a9090762bb010e.tar.bz2 |
devfs: Fix some issues
Fix issue with cdev private data usage with RTEMS iop structure. Add
support for cdev alias device names. Add support for cdev fstat.
Diffstat (limited to 'freebsd')
-rw-r--r-- | freebsd/sys/fs/devfs/devfs_vnops.c | 4 | ||||
-rw-r--r-- | freebsd/sys/kern/kern_conf.c | 4 | ||||
-rw-r--r-- | freebsd/sys/sys/file.h | 7 |
3 files changed, 7 insertions, 8 deletions
diff --git a/freebsd/sys/fs/devfs/devfs_vnops.c b/freebsd/sys/fs/devfs/devfs_vnops.c index b585178f..31231fdd 100644 --- a/freebsd/sys/fs/devfs/devfs_vnops.c +++ b/freebsd/sys/fs/devfs/devfs_vnops.c @@ -204,7 +204,11 @@ devfs_destroy_cdevpriv(struct cdev_privdata *p) free(p, M_CDEVPDATA); } +#ifndef __rtems__ static void +#else /* __rtems__ */ +void +#endif /* __rtems__ */ devfs_fpdrop(struct file *fp) { struct cdev_privdata *p; diff --git a/freebsd/sys/kern/kern_conf.c b/freebsd/sys/kern/kern_conf.c index 20f2e2c3..f008fc0c 100644 --- a/freebsd/sys/kern/kern_conf.c +++ b/freebsd/sys/kern/kern_conf.c @@ -854,9 +854,7 @@ make_dev_sv(struct make_dev_args *args1, struct cdev **dres, #endif /* __rtems__ */ devfs_create(dev); -#ifndef __rtems__ clean_unrhdrl(devfs_inos); -#endif /* __rtems__ */ dev_unlock_and_free(); notify_create(dev, args.mda_flags); @@ -1020,9 +1018,7 @@ make_dev_alias_v(int flags, struct cdev **cdev, struct cdev *pdev, dev->si_flags |= SI_NAMED; devfs_create(dev); dev_dependsl(pdev, dev); -#ifndef __rtems__ clean_unrhdrl(devfs_inos); -#endif /* __rtems__ */ dev_unlock(); notify_create(dev, flags); diff --git a/freebsd/sys/sys/file.h b/freebsd/sys/sys/file.h index 8f91f52c..c52dc7a9 100644 --- a/freebsd/sys/sys/file.h +++ b/freebsd/sys/sys/file.h @@ -199,14 +199,11 @@ struct file { void *f_label; /* Place-holder for MAC label. */ #else /* __rtems__ */ rtems_libio_t f_io; - union { - struct cdev_privdata *fvn_cdevpriv; - /* (d) Private data for the cdev. */ - } f_vnun; #endif /* __rtems__ */ }; #ifdef __rtems__ #define f_data f_io.pathinfo.node_access_2 +#define f_cdevpriv f_io.data1 static inline struct file * rtems_bsd_iop_to_fp(rtems_libio_t *iop) @@ -283,8 +280,10 @@ rtems_bsd_error_to_status_and_errno(int error) } #endif /* __rtems__ */ +#ifndef __rtems__ #define f_cdevpriv f_vnun.fvn_cdevpriv #define f_advice f_vnun.fvn_advice +#endif /* __rtems__ */ #define FOFFSET_LOCKED 0x1 #define FOFFSET_LOCK_WAITING 0x2 |