next up previous contents
Next: alloc_dma: allocate DMA memory Up: MOSS ``A Soft Blanket Previous: Features supported by MOSS's

MOSS system calls

For the most part, MOSS presents a standard ANSI/POSIX application programming interface; since its C library is based on the BSD C library, all of the functions in the BSD C library are available. This document does not attempt to describe these functions; you can find documentation on the ANSI/POSIX interfaces in many easily-available books and on-line repositories. If you're cross-developing MOSS programs from a Un*x-like system, you should be able to get all the documentation you need simply using man.

Of course, if you try to use some of the more exotic C library functions that depend on having a ``real'' Un*x-like OS underneath (which DOS definitely isn't), the program probably won't work quite right. Typically one of two things will happen: either the program will fail to link due to an undefined symbol, or the unsupported function will fail with an error at run-time. Undefined symbols at link time are usually caused by the absence of a MOSS ``system call'' corresponding to a particular BSD system call that the C library function you are trying to use depends on.

The following sections describe the system calls supported by MOSS. Most of these system calls correspond exactly to BSD system calls and/or standard POSIX functions; for these, only the differences between MOSS's behavior and the ``standard'' behavior are described.

Bryan Ford