RTEMS currently supports POSIX named FIFOs (aka unnamed pipes) but has no tests for them. It does support most of the filesystem and system call infrastructure for FIFOs but the lowest levels are not there yet. For pipes, the details would be similar but we would have to figure out how to treat them as unnamed to the user while accessing the same infrastructure. This page describes what is required technically to implement them.
The call tree for FIFOs is as follows:
mkfifo() mknod( path, mode | S_IFIFO, 0LL ); indirect call to filesystem specific mknod_h entry point
In RTEMS, POSIX FIFOs would be supported by the In Memory File System (IMFS). The mknod_h handler in cpukit/libfs/src/imfs/imfs_mknod.c currently does not recognize the S_IFIFO argument and returns an error when an attempt is made to create one.
- Implement tests to ensure 100% coverage.
- Analyse code while writing tests to ensure all POSIX defined conditions are handled.