summaryrefslogtreecommitdiffstats
path: root/doc/posix_users/io.t
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1998-11-19 16:06:46 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1998-11-19 16:06:46 +0000
commitc4dddee3f5d2714e0a5cb9a137cb01e7cf2adf2a (patch)
tree4ff7c2624fe2f3d21024fd67d15dbb78a03e934e /doc/posix_users/io.t
parentNew files (diff)
downloadrtems-c4dddee3f5d2714e0a5cb9a137cb01e7cf2adf2a.tar.bz2
Major update/merge of POSIX manual.
Diffstat (limited to 'doc/posix_users/io.t')
-rw-r--r--doc/posix_users/io.t1085
1 files changed, 1085 insertions, 0 deletions
diff --git a/doc/posix_users/io.t b/doc/posix_users/io.t
new file mode 100644
index 0000000000..17ff64e772
--- /dev/null
+++ b/doc/posix_users/io.t
@@ -0,0 +1,1085 @@
+@c
+@c COPYRIGHT (c) 1988-1998.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Input and Output Primitives Manager
+
+@section Introduction
+
+The input and output primitives manager is ...
+
+The directives provided by the input and output primitives manager are:
+
+@itemize @bullet
+@item @code{pipe} - YYY
+@item @code{dup} - Duplicates an open file descriptor
+@item @code{dup2} - Duplicates an open file descriptor
+@item @code{close} - Closes a file
+@item @code{read} - Reads from a file
+@item @code{write} - Writes to a file
+@item @code{fcntl} - Manipulates an open file descriptor
+@item @code{lseek} - Reposition read/write file offset
+@item @code{fsync} - Synchronize a file's complete in-core state with that on disk
+@item @code{fdatasync} - synchronize a file's in-core data with that on disk
+@item @code{mount} - Mount a file system
+@item @code{umount} - Unmount file systems
+@item @code{aio_read} - YYY
+@item @code{aio_write} - YYY
+@item @code{lio_listio} - YYY
+@item @code{aio_error} - YYY
+@item @code{aio_return} - YYY
+@item @code{aio_cancel} - YYY
+@item @code{aio_suspend} - YYY
+@item @code{aio_fsync} - YYY
+@end itemize
+
+@section Background
+
+There is currently no text in this section.
+
+@section Operations
+
+There is currently no text in this section.
+
+@section Directives
+
+This section details the input and output primitives manager's directives.
+A subsection is dedicated to each of this manager's directives
+and describes the calling sequence, related constants, usage,
+and status codes.
+
+@page
+@subsection pipe -
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+int pipe(
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item E
+The
+
+@end table
+
+@subheading DESCRIPTION:
+
+@subheading NOTES:
+
+This routine is not currently supported by RTEMS but could be
+in a future version.
+
+@page
+@subsection dup - Duplicates an open file descriptor
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+#include <unistd.h>
+
+int dup(
+ int fildes
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item EBADF
+Invalid file descriptor.
+
+@item EINTR
+Function was interrupted by a signal.
+
+@item EMFILE
+The process already has the maximum number of file descriptors open
+and tried to open a new one.
+@end table
+
+@subheading DESCRIPTION:
+
+The @code{dup} function returns the lowest numbered available file
+descriptor. This new desciptor refers to the same open file as the
+original descriptor and shares any locks.
+
+@subheading NOTES:
+
+NONE
+
+@page
+@subsection dup2 - Duplicates an open file descriptor
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+#include <unistd.h>
+
+int dup2(
+ int fildes,
+ int fildes2
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item EBADF
+Invalid file descriptor.
+
+@item EINTR
+Function was interrupted by a signal.
+
+@item EMFILE
+The process already has the maximum number of file descriptors open
+and tried to open a new one.
+@end table
+
+@subheading DESCRIPTION:
+
+@code{Dup2} creates a copy of the file descriptor @code{oldfd}.
+
+The old and new descriptors may be used interchangeably. They share locks, file
+position pointers and flags; for example, if the file position is modified by using
+@code{lseek} on one of the descriptors, the position is also changed for the other.
+
+@subheading NOTES:
+
+NONE
+
+@page
+@subsection close - Closes a file.
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+#include <unistd.h>
+
+int close(
+ int fildes
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item EBADF
+Invalid file descriptor
+
+@item EINTR
+Function was interrupted by a signal.
+@end table
+
+@subheading DESCRIPTION:
+
+The @code{close()} function deallocates the file descriptor named by
+@code{fildes} and makes it available for reuse. All outstanding
+record locks owned by this process for the file are unlocked.
+
+@subheading NOTES:
+
+A signal can interrupt the @code{close()} function. In that case,
+@code{close()} returns -1 with @code{errno} set to EINTR. The file
+may or may not be closed.
+
+@page
+@subsection read - Reads from a file.
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+#include <unistd.h>
+
+int read(
+ int fildes,
+ void *buf,
+ unsigned int nbyte
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+On error, this routine returns -1 and sets @code{errno} to one of
+the following:
+
+@table @b
+@item EAGAIN
+The O_NONBLOCK flag is set for a file descriptor and the process
+would be delayed in the I/O operation.
+
+@item EBADF
+Invalid file descriptor
+
+@item EINTR
+Function was interrupted by a signal.
+
+@item EIO
+Input or output error
+
+@end table
+
+@subheading DESCRIPTION:
+
+The @code{read()} function reads @code{nbyte} bytes from the file
+associated with @code{fildes} into the buffer pointed to by @code{buf}.
+
+The @code{read()} function returns the number of bytes actually read
+and placed in the buffer. This will be less than @code{nbyte} if:
+
+@itemize @bullet
+
+@item The number of bytes left in the file is less than @code{nbyte}.
+
+@item The @code{read()} request was interrupted by a signal.
+
+@item The file is a pipe or FIFO or special file with less than @code{nbytes}
+immediately available for reading.
+
+@end itemize
+
+When attempting to read from any empty pipe or FIFO:
+
+
+@itemize @bullet
+
+@item If no process has the pipe open for writing, zero is returned to
+indicate end-of-file.
+
+@item If some process has the pipe open for writing and O_NONBLOCK is set,
+-1 is returned and @code{errno} is set to EAGAIN.
+
+@item If some process has the pipe open for writing and O_NONBLOCK is clear,
+@code{read()} waits for some data to be written or the pipe to be closed.
+
+@end itemize
+
+
+When attempting to read from a file other than a pipe or FIFO and no data
+is available.
+
+@itemize @bullet
+
+@item If O_NONBLOCK is set, -1 is returned and @code{errno} is set to EAGAIN.
+
+@item If O_NONBLOCK is clear, @code{read()} waits for some data to become
+available.
+
+@item The O_NONBLOCK flag is ignored if data is available.
+
+@end itemize
+
+@subheading NOTES:
+
+NONE
+
+@page
+@subsection write - Writes to a file
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+#include <unistd.h>
+
+int write(
+ int fildes,
+ const void *buf,
+ unsigned int nbytes
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item EAGAIN
+The O_NONBLOCK flag is set for a file descriptor and the process
+would be delayed in the I/O operation.
+
+@item EBADF
+Invalid file descriptor
+
+@item EFBIG
+An attempt was made to write to a file that exceeds the maximum file
+size
+
+@item EINTR
+The function was interrupted by a signal.
+
+@item EIO
+Input or output error.
+
+@item ENOSPC
+No space left on disk.
+
+@item EPIPE
+Attempt to write to a pope or FIFO with no reader.
+
+@end table
+
+@subheading DESCRIPTION:
+
+The @code{write()} function writes @code{nbyte} from the array pointed
+to by @code{buf} into the file associated with @code{fildes}.
+
+If @code{nybte} is zero and the file is a regular file, the @code{write()}
+function returns zero and has no other effect. If @code{nbyte} is zero
+and the file is a special file, te results are not portable.
+
+The @code{write()} function returns the number of bytes written. This
+number will be less than @code{nbytes} if there is an error. It will never
+be greater than @code{nbytes}.
+
+@subheading NOTES:
+
+NONE
+
+@page
+@subsection fcntl - Manipulates an open file descriptor
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+#include <sys/types.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+int fcntl(
+ int fildes,
+ int cmd
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item EACCESS
+Search permission is denied for a direcotry in a file's path
+prefix.
+
+@item EAGAIN
+The O_NONBLOCK flag is set for a file descriptor and the process
+would be delayed in the I/O operation.
+
+@item EBADF
+Invalid file descriptor
+
+@item EDEADLK
+An @code{fcntl} with function F_SETLKW would cause a deadlock.
+
+@item EINTR
+The functioin was interrupted by a signal.
+
+@item EINVAL
+Invalid argument
+
+@item EMFILE
+Too many file descriptor or in use by the process.
+
+@item ENOLCK
+No locks available
+
+@end table
+
+@subheading DESCRIPTION:
+
+@code{fcntl()} performs one of various miscellaneous operations on
+@code{fd}. The operation in question is determined by @code{cmd}:
+
+@table @b
+
+@item F_DUPFD
+Makes @code{arg} be a copy of @code{fd}, closing @code{fd} first if necessary.
+
+The same functionality can be more easily achieved by using @code{dup2()}.
+
+The old and new descriptors may be used interchangeably. They share locks,
+file position pointers and flags; for example, if the file position is
+modified by using @code{lseek()} on one of the descriptors, the position is
+also changed for the other.
+
+The two descriptors do not share the close-on-exec flag, however. The
+close-on-exec flag of the copy is off, meaning that it will be closed on
+exec.
+
+On success, the new descriptor is returned.
+
+@item F_GETFD
+Read the close-on-exec flag. If the low-order bit is 0, the file will
+remain open across exec, otherwise it will be closed.
+
+@item F_SETFD
+Set the close-on-exec flag to the value specified by @code{arg} (only the least
+significant bit is used).
+
+@item F_GETFL
+Read the descriptor's flags (all flags (as set by open()) are returned).
+
+@item F_SETFL
+Set the descriptor's flags to the value specified by @code{arg}. Only
+@code{O_APPEND} and @code{O_NONBLOCK} may be set.
+
+The flags are shared between copies (made with @code{dup()} etc.) of the same
+file descriptor.
+
+The flags and their semantics are described in @code{open()}.
+
+@item F_GETLK, F_SETLK and F_SETLKW
+Manage discretionary file locks. The third argument @code{arg} is a pointer to a
+struct flock (that may be overwritten by this call).
+
+@item F_GETLK
+Return the flock structure that prevents us from obtaining the lock, or set the
+@code{l_type} field of the lock to @code{F_UNLCK} if there is no obstruction.
+
+@item F_SETLK
+The lock is set (when @code{l_type} is @code{F_RDLCK} or @code{F_WRLCK}) or
+cleared (when it is @code{F_UNLCK}. If lock is held by someone else, this
+call returns -1 and sets @code{errno} to EACCES or EAGAIN.
+
+@item F_SETLKW
+Like @code{F_SETLK}, but instead of returning an error we wait for the lock to
+be released.
+
+@item F_GETOWN
+Get the process ID (or process group) of the owner of a socket.
+
+Process groups are returned as negative values.
+
+@item F_SETOWN
+Set the process or process group that owns a socket.
+
+For these commands, ownership means receiving @code{SIGIO} or @code{SIGURG}
+signals.
+
+Process groups are specified using negative values.
+
+@end table
+
+@subheading NOTES:
+
+The errors returned by @code{dup2} are different from those returned by
+@code{F_DUPFD}.
+
+@page
+@subsection lseek - Reposition read/write file offset
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+#include <sys/types.h>
+#include <unistd.h>
+
+int lseek(
+ int fildes,
+ off_t offset,
+ int whence
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item EBADF
+@code{Fildes} is not an open file descriptor.
+
+@item ESPIPE
+@code{Fildes} is associated with a pipe, socket or FIFO.
+
+@item EINVAL
+@code{Whence} is not a proper value.
+
+@end table
+
+@subheading DESCRIPTION:
+
+The @code{lseek} function repositions the offset of the file descriptor
+@code{fildes} to the argument offset according to the directive whence.
+The argument @code{fildes} must be an open file descriptor. @code{Lseek}
+repositions the file pointer fildes as follows:
+
+@itemize @bullet
+
+@item
+If @code{whence} is SEEK_SET, the offset is set to @code{offset} bytes.
+
+@item
+If @code{whence} is SEEK_CUR, the offset is set to its current location
+plus offset bytes.
+
+@item
+If @code{whence} is SEEK_END, the offset is set to the size of the
+file plus @code{offset} bytes.
+
+@end itemize
+
+The @code{lseek} function allows the file offset to be set beyond the end
+of the existing end-of-file of the file. If data is later written at this
+point, subsequent reads of the data in the gap return bytes of zeros
+(until data is actually written into the gap).
+
+Some devices are incapable of seeking. The value of the pointer associated
+with such a device is undefined.
+
+@subheading NOTES:
+
+NONE
+
+@page
+@subsection fsync - Synchronize a file's complete in-core state with that on disk
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+int fsync(
+ int fd
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+On success, zero is returned. On error, -1 is returned, and @code{errno}
+is set appropriately.
+
+@table @b
+@item EBADF
+@code{fd} is not a valid descriptor open for writing
+
+@item EINVAL
+@code{fd} is bound to a special file which does not support support synchronization
+
+@item EROFS
+@code{fd} is bound to a special file which does not support support synchronization
+
+@item EIO
+An error occurred during synchronization
+
+@end table
+
+@subheading DESCRIPTION:
+
+@code{fsync} copies all in-core parts of a file to disk.
+
+@subheading NOTES:
+
+NONE
+
+@page
+@subsection fdatasync - synchronize a file's in-core data with that on disk.
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+int fdatasync(
+ int fd
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+On success, zero is returned. On error, -1 is returned, and @code{errno} is
+set appropriately.
+
+@table @b
+@item EBADF
+@code{fd} is not a valid file descriptor open for writing.
+
+@item EINVAL
+@code{fd} is bound to a special file which does not support synchronization.
+
+@item EIO
+An error occurred during synchronization.
+
+@item EROFS
+@code{fd} is bound to a special file which dows not support synchronization.
+
+@end table
+
+@subheading DESCRIPTION:
+
+@code{fdatasync} flushes all data buffers of a file to disk (before the system call
+returns). It resembles @code{fsync} but is not required to update the metadata such
+as access time.
+
+Applications that access databases or log files often write a tiny data fragment
+(e.g., one line in a log file) and then call @code{fsync} immediately in order to
+ensure that the written data is physically stored on the harddisk. Unfortunately,
+fsync will always initiate two write operations: one for the newly written data and
+another one in order to update the modification time stored in the inode. If the
+modification time is not a part of the transaction concept @code{fdatasync} can be
+used to avoid unnecessary inode disk write operations.
+
+@subheading NOTES:
+
+NONE
+
+@page
+@subsection mount - Mount a file system
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+#include <sys/mount.h>
+#include <linux/fs.h>
+
+int mount(
+ const char *specialfile,
+ const char * dir,
+ const char * filesystemtype,
+ unsigned long rwflag,
+ const void * data
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item EPERM
+The user is not the super-user.
+
+@item ENODEV
+@code{filesystemtype} not configured in the kernel.
+
+@item ENOTBLK
+@code{specialfile} is not a block device (if a device was required).
+
+@item EBUSY
+@code{specialfile} is already mounted. Or, it cannot be remounted
+read-only, because it still holds files open for writing. Or, it
+cannot be mounted on @code{dir} because @code{dir} is still busy
+(it is the working directory of some task, the mount point of another
+device, has open files, etc.).
+
+@item EINVAL
+@code{specialfile} had an invalid superblock. Or, a remount was
+attempted, while @code{specialfile} was not already mounted on @code{dir}.
+Or, an umount was attempted, while @code{dir} was not a mount point.
+
+@item EFAULT
+One of the pointer arguments points outside the user address space.
+
+@item ENOMEM
+The kernel could not allocate a free page to copy filenames or data into.
+
+@item ENAMETOOLONG
+A pathname was longer than MAXPATHLEN.
+
+@item ENOTDIR
+A pathname was empty or had a nonexistent component.
+
+@item EACCES
+A component of a path was not searchable. Or, mounting a read-only
+filesystem was attempted without giving the MS_RDONLY flag. Or, the
+block device @code{specialfile} is located on a filesystem mounted with
+the MS_NODEV option.
+
+@item ENXIO
+The major number of the block device @code{specialfile} is out of
+range.
+
+@item EMFILE
+(In case no block device is required:) Table of dummy devices is full.
+
+@end table
+
+@subheading DESCRIPTION:
+
+@code{Mount} attaches the filesystem specified by @code{specialfile}
+(which is often a device name) to the directory specified by @code{dir}.
+
+Only the super-user may mount filesystems.
+
+The @code{filesystemtype} argument may take one of the values listed in
+/proc/filesystems (link "minix", "ext2", "msdos", "proc", "nfs",
+"iso9660" etc.).
+
+The @code{rwflag} argument has the magic number 0xCOED in the top 16 bits,
+and various mount flags in the low order 16 bits. If the magic number is
+absent, then the last two arguments are not used.
+
+The @code{data} argument is interpreted by the different file systems.
+
+@subheading NOTES:
+
+NONE
+
+@page
+@subsection umount - Umount file systems
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+#include <sys/mount.h>
+#include <linux/fs.h>
+
+int umount(
+ const char *specialfile
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item EPERM
+The user is not the super-user.
+
+@item ENODEV
+@code{Filesystemtype} not configured in the kernel.
+
+@item ENOTBLK
+@code{Specialfile} is not a block device (if a device was required).
+
+@item EBUSY
+@code{Specialfile} is already mounted. Or, it cannot be remounted
+read-only, because it still holds files open for writing. Or, it
+cannot be mounted on @code{dir} because @code{dir} is still busy
+(it is the working directory of some task, the mount point of another
+device, has open files, etc.).
+
+@item EINVAL
+@code{specialfile} had an invalid superblock. Or, a remount was
+attempted, while @code{specialfile} was not already mounted on @code{dir}.
+Or, an umount was attempted, while @code{dir} was not a mount point.
+
+@item EFAULT
+One of the pointer arguments points outside the user address space.
+
+@item ENOMEM
+The kernel could not allocate a free page to copy filenames or data into.
+
+@item ENAMETOOLONG
+A pathname was longer than MAXPATHLEN.
+
+@item ENOTDIR
+A pathname was empty or had a nonexistent component.
+
+@item EACCES
+A component of a path was not searchable. Or, mounting a read-only
+filesystem was attempted without giving the MS_RDONLY flag. Or, the
+block device @code{specialfile} is located on a filesystem mounted with
+the MS_NODEV option.
+
+@item ENXIO
+The major number of the block device @code{specialfile} is out of
+range.
+
+@item EMFILE
+(In case no block device is required:) Table of dummy devices is full.
+
+@end table
+
+@subheading DESCRIPTION:
+
+@code{Umount} removes the attachment of the filesystem specified
+by @code{specialfile} or @code{dir}.
+
+Only the super-user may umount filesystems.
+
+@subheading NOTES:
+
+NONE
+
+@page
+@subsection aio_read -
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+int aio_read(
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item E
+The
+
+@end table
+
+@subheading DESCRIPTION:
+
+@subheading NOTES:
+
+This routine is not currently supported by RTEMS but could be
+in a future version.
+
+@page
+@subsection aio_write -
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+int aio_write(
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item E
+The
+
+@end table
+
+@subheading DESCRIPTION:
+
+@subheading NOTES:
+
+This routine is not currently supported by RTEMS but could be
+in a future version.
+
+@page
+@subsection lio_listio -
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+int lio_listio(
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item E
+The
+
+@end table
+
+@subheading DESCRIPTION:
+
+@subheading NOTES:
+
+This routine is not currently supported by RTEMS but could be
+in a future version.
+
+@page
+@subsection aio_error -
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+int aio_error(
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item E
+The
+
+@end table
+
+@subheading DESCRIPTION:
+
+@subheading NOTES:
+
+This routine is not currently supported by RTEMS but could be
+in a future version.
+
+@page
+@subsection aio_return -
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+int aio_return(
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item E
+The
+
+@end table
+
+@subheading DESCRIPTION:
+
+@subheading NOTES:
+
+This routine is not currently supported by RTEMS but could be
+in a future version.
+
+@page
+@subsection aio_cancel -
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+int aio_cancel(
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item E
+The
+
+@end table
+
+@subheading DESCRIPTION:
+
+@subheading NOTES:
+
+This routine is not currently supported by RTEMS but could be
+in a future version.
+
+@page
+@subsection aio_suspend -
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+int aio_suspend(
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item E
+The
+
+@end table
+
+@subheading DESCRIPTION:
+
+@subheading NOTES:
+
+This routine is not currently supported by RTEMS but could be
+in a future version.
+
+@page
+@subsection aio_fsync -
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@example
+int aio_fsync(
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@end ifset
+
+@subheading STATUS CODES:
+
+@table @b
+@item E
+The
+
+@end table
+
+@subheading DESCRIPTION:
+
+@subheading NOTES:
+
+This routine is not currently supported by RTEMS but could be
+in a future version.