This patch set removes the FreeBSD file descriptors. The VFS is no longer used if only the USB, SD/MMC, network, PCI, and NVMe support is used by the application. This change significantly reduce the memory usage of LibBSD for these applications. Using the media01 test case for the arm/lpc32xx BSP as a benchmark, the heap usage dropped from 14.3MiB to 10.2MiB. The "_BSD bufdaemon", "_BSD vnlru", "_BSD syncer", and "_BSD bufspacedaemon-" tasks are no longer present in media01. The code size is reduced by about 8KiB. The data size is reduced by about 30KiB. The throughput with a simple FTP test increased by about 1%.
The "Remove FreeBSD file descriptors" change removes more lines than there are added. This change makes it easier to port the NFS support to the master branch since now the changes are more localized. Sebastian Huber (22): Fix default NET_CFG_NFS_MOUNT_PATH Fix redefinition warnings Update kernel namespace Move setfib() back to route.c Remove duplicate sysctl(), etc. definitions nfsclient: Include header for rtems_version() nfsclient: Fix extra token after #else warning devfs: Do not use FreeBSD file descriptors Remove FreeBSD file descriptors Update CONTRIBUTING.rst Add struct file wrapper Move kqueue() and kevent(), avoid VFS cryptodev: Do not use VFS Move select(), pselect(), and poll(), avoid VFS Use define for maxfiles and maxfilesperproc Move socket system calls, avoid VFS Move bio_transient_maxcnt Move unmapped_buf_allowed Move VFS BIO initialization Remove unused rtems_bsd_sysgen_imfsnodeops Make rtems_bsd_iop_to_file() static Disable UNIX Domain Sockets credentials CONTRIBUTING.rst | 79 ++ freebsd/sys/fs/devfs/devfs_int.h | 3 +- freebsd/sys/fs/devfs/devfs_vnops.c | 4 +- freebsd/sys/fs/nfsclient/nfs_clrpcops.c | 5 +- freebsd/sys/kern/kern_descrip.c | 58 +- freebsd/sys/kern/kern_event.c | 288 ++++-- freebsd/sys/kern/kern_sysctl.c | 4 + freebsd/sys/kern/sys_generic.c | 247 ++++- freebsd/sys/kern/sys_socket.c | 271 +++++- freebsd/sys/kern/uipc_socket.c | 3 + freebsd/sys/kern/uipc_syscalls.c | 532 ++++++++++- freebsd/sys/kern/uipc_usrreq.c | 24 +- freebsd/sys/kern/vfs_bio.c | 30 +- freebsd/sys/kern/vfs_cache.c | 2 + freebsd/sys/kern/vfs_lookup.c | 4 + freebsd/sys/kern/vfs_mount.c | 2 + freebsd/sys/kern/vfs_subr.c | 4 + freebsd/sys/kern/vfs_syscalls.c | 18 + freebsd/sys/net/route.c | 18 + freebsd/sys/netinet/in_pcb.h | 4 + freebsd/sys/opencrypto/cryptodev.c | 81 +- freebsd/sys/sys/eventvar.h | 2 + freebsd/sys/sys/file.h | 103 +- freebsd/sys/sys/filedesc.h | 89 +- freebsd/sys/sys/namei.h | 2 + freebsd/sys/sys/proc.h | 2 +- freebsd/sys/sys/socketvar.h | 5 +- freebsd/sys/sys/syscallsubr.h | 5 + freebsd/sys/sys/sysctl.h | 8 + freebsd/sys/sys/sysproto.h | 20 +- freebsd/sys/sys/unpcb.h | 2 +- libbsd.py | 1 + .../machine/rtems-bsd-kernel-namespace.h | 418 +++++++- .../include/machine/rtems-bsd-kernel-space.h | 5 - rtemsbsd/include/machine/rtems-bsd-libio.h | 207 +--- rtemsbsd/include/rtems/bsd/sys/file.h | 248 +++++ rtemsbsd/rtems/rtems-bsd-libio.c | 61 -- rtemsbsd/rtems/rtems-bsd-syscall-api.c | 898 ++---------------- rtemsbsd/rtems/rtems-kernel-fget.c | 79 ++ rtemsbsd/rtems/rtems-kernel-get-file.c | 9 +- rtemsbsd/rtems/rtems-kernel-init.c | 32 +- rtemsbsd/sys/fs/devfs/devfs_devs.c | 181 +--- testsuite/syscalls01/test_main.c | 13 +- waf_libbsd.py | 2 +- 44 files changed, 2544 insertions(+), 1529 deletions(-) create mode 100644 rtemsbsd/include/rtems/bsd/sys/file.h create mode 100644 rtemsbsd/rtems/rtems-kernel-fget.c -- 2.35.3 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel