Named Pipes in RTEMS (mkfifo type)?

Joel Sherrill joel.sherrill at oarcorp.com
Wed Feb 21 23:56:55 UTC 2007


Amalaye Oyake wrote:
> What is the status of named pipes (of the mkfifo flavor) in RTEMS. I see the
> mkfifo code, but the RTEMS documentation is loaded with preamble warning
> about its current status ... the docs seem to be dated 2003, so I must ask -
> What is the current status of mkfifo? Are FIFOs implemented? Can I create
> UNIX flavor file system named pipes in RTEMS?
>
>
>   
I thought I replied to this.. hhhmmmm.. must have thought I needed to reply.

Not implemented... implementable for sure.
> ----------
>
> {RTEMS documentation says} RTEMS supports many of the process and user/group
> oriented services in a "single user/single process" manner. This means that
> although these services may be of limited usefulness or functionality, they
> are provided and do work in a coherent manner. This is significant when
> porting existing code from UNIX to RTEMS.
> -  Implementation
> -  The current implementation of dup() is insufficient.
> -  FIFOs mkfifo() are not currently implemented. ***
> -  Asynchronous IO is not implemented.
> -  The flockfile() family is not implemented
> -  getc/putc unlocked family is not implemented
> -  Shared Memory is not implemented
> -  Mapped Memory is not implemented
>
>   
I think the above list is still accurate although I would add that
of that list, only Shared Memory and Mapped Memory is probably
unimplementable in RTEMS.

Everything else is implementable just not there yet.  If you want it,
that's what I'm here for.  Please send work so my kids eat. :)

> NOTES:
> -  For Shared Memory and Mapped Memory services, it is unclear what
>    level of support is appropriate and possible for RTEMS.
> -  Functional Testing
>
>   
The POSIX functional testing is pretty good for the POSIX functionality
implemented in the RTEMS tree (NOT in newlib). 
> -  Tests for unimplemented services
>   
This is checking that if we say it isn't there, it really returns -1.
> -  Performance Testing
> -  There are no POSIX Performance Tests.
>   
Nothing but a good Google Summer of Code project.
> -  Documentation
>   
Can always improve but since it is POSIX we tend to rely on the user
reading the OpenGroup spec.  There is some documentaition just not
enough to make me happy.
> -  Many of the service description pages are not complete in this manual. 
>
> These need to be completed and information added to the background and
> operations sections.
> -  Example programs (not just tests) would be very nice.
>
>   
I have some from the class which are in RTEMS CVS.  Not as many as I 
would like
but they cover the basics.
> 5.4.2 Make a FIFO Special File
> mkfifo(), Function, Untested Implementation
> NOTE: mkfifo() is implemented but no filesystem supports FIFOs.
>
>
> 4.4.17 mkfifo - Makes a FIFO special file . . . . . . . . . . . . . 83
>
> ----------
>
> {Source code search says}
>
> ~/RTEMS/rtems-4.6.99.3$ find ./ -iname '*.c' -exec grep -i mkfifo {} \;
> -print
>
>   puts("mkfifo /c/my_dir" );
>   status = mkfifo( "/c/my_dir", S_IRWXU );
> ./testsuites/psxtests/psxfile01/test.c
>  *  mkfifo() - POSIX 1003.1b 5.4.1 - Make a FIFO Special File
>  *  $Id: mkfifo.c,v 1.4 2003/09/04 18:54:13 joel Exp $
> int mkfifo(
> ./cpukit/libcsupport/src/mkfifo.c
>
>   
I think the IMFS has hooks for it but doesn't get there.  I would have 
to check
to be sure. 

If you really need some of the missing POSIX functionality, we need to 
talk so I
can give you an estimate on the effort required to implement it. 
> ~/RTEMS/rtems-4.6.99.3$
>
>
>
> * Amalaye Oyake                                    *
> * Flight Software Applications & Data Product Mgmt */\
> * 818.393.7168 work   818.653.4748 cell            *||
> * Jet Propulsion Laboratory, Pasadena  CA 91109   */||\
>
> @@@ personal opinions expressed represent only the views of the author @@@
>
>
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.com
> http://rtems.rtems.org/mailman/listinfo/rtems-users
>   




More information about the users mailing list