#
#  Operating System Characteristics - required for 'lsb-os' subset

#
# test cases derived from VSX
#

#	Invalid mode argument to popen().
#	Set to "unsup" if popen() does not detect EINVAL.
VSX_INVALID_POPEN_MODE=z


#
# test cases derived from VSRT
#

# Compiler flags necessary to build an application using threads and
# real time features.  This parameter is normally set to the same as the
# value of THR_COPTS in SRC/vsxparams.
VSRT_CFLAGS=-D_REENTRANT

# Libraries necessary to build an application using threads and
# real time features.  This value is set during test suite installation
# based the information supplied to config.sh.
VSRT_LIBS=

# Libraries necessary to build an application using just real time features.
# This value is set during test suite installation
# based the information supplied to config.sh.
VSRT_RT_LIB=

# Does the system support the UNIX98 Realtime Feature Group.
# This value is only used in UNIX98 testing.
# It controls what is expected in some sysconf and unistd.h tests.
# Set to y if the Feature Group is supported and n otherwise.
VSRT_SUPPORTS_RT_FG=y

# Indicates if message queues are implemented as a distinct file type.
# Set to y if this is the case on the implementation and n otherwise.
VSRT_MQUEUE_IS_DISTINCT=n

# Indicates if semaphores are implemented as a distinct file type.
# Set to y if this is the case on the implementation and n otherwise.
VSRT_SEM_IS_DISTINCT=n

# Indicates if shared memory objects are implemented as a distinct file type.
# Set to y if this is the case on the implementation and n otherwise.
VSRT_SHM_IS_DISTINCT=n

# Indicates if message queue descriptors are implemented as file descriptors.
# Set to y if this is the case on the implementation and n otherwise.
VSRT_MQDES_IS_FILEDES=n

# A path prefix to which an arbitrary name can be appended to form a valid
# name for a message queue.
VSRT_MQUEUE_PREFIX=/

# A path prefix to which an arbitrary name can be appended to form an invalid
# name for a message queue.  Leave blank after the = if no such prefix
# exists.
VSRT_MQUEUE_PREFIX_INVALID=./

# A path prefix to which an arbitrary name can be appended to form a valid
# name for a shared memory object.
VSRT_SHM_PREFIX=/

# A path prefix to which an arbitrary name can be appended to form an invalid
# name for a shared memory object.  Leave blank after the = if no such prefix
# exists.
VSRT_SHM_PREFIX_INVALID=./

# Indicates if named semaphores are implemented with file descriptors.
# Set to y if this is the case on the implementation and n otherwise.
VSRT_SEM_IS_FILEDES=n

# A path prefix to which an arbitrary name can be appended to form a valid
# name for a named semaphore.
VSRT_SEM_PREFIX=/

# A path prefix to which an arbitrary name can be appended to form an invalid
# name for a named semaphore.  Leave blank after the = if no such prefix
# exists.
VSRT_SEM_PREFIX_INVALID=./

# The absolute pathname of a file for which the implementation
# does not support mmap().
# The file must exist the user vsx0 must have read and write access to it.
# Leave blank after the = if no such files exists.
VSRT_FILE_NO_MMAP=

# The absolute pathname of file for which the implementation supports
# Asynchronous I/O.
# The user vsx0 must have permission to create the file and then read
# and write to it.  The file will be deleted and recreated during testing.
# Leave blank after the = if no such files exists.
VSRT_FILE_ASYNC_IO=/tmp/vsrt_aio_file

# The absolute pathname of a file or device for which the implementation
# does not support Asynchronous I/O.
# The file or device must exist the user vsx0 must have read and write
# access to it.
# Leave blank after the = if no such files exists.
VSRT_FILE_NO_ASYNC_IO=

# The names of two terminal devices connected in a loopback configuration
# for use in Asynchronous I/O testing.
# User vsx0 must have read and write access to these devices.
# If Asynchronous I/O is not supported for terminal devices or no such
# devices exist leave blank after the =.
# Device names may be the same as VSX_TERMIOS_TTY and VSX_TERMIOS_LOOP.
VSRT_TERMIOS_TTY=
VSRT_TERMIOS_LOOP=

# The name of a master pty device for use in Asynchronous I/O testing.
# User vsx0 must have read and write access to this device.
# If Asynchronous I/O is not supported for ptys, leave blank after the =.
# VSRT_MASTER_PTY may be set to the same name as VSX_MASTER_TTY.
VSRT_MASTER_PTY=/dev/ptmx

# The absolute pathname of file for which the implementation supports
# Synchronized I/O.
# The file or device must exist the user vsx0 must have read and write
# access to it.
# Leave blank after the = if no such files exists.
VSRT_FILE_SYNC_IO=

# The absolute pathname of a file or device for which the implementation
# does not support Synchronized I/O.
# The file or device must exist the user vsx0 must have read and write
# access to it.
# Leave blank after the = if no such files exists.
VSRT_FILE_NO_SYNC_IO=

# The absolute pathname of file for which the implementation supports
# Prioritized I/O.
# The user vsx0 must have permission to create the file and then read
# and write to it.  The file will be deleted and recreated during testing.
# Leave blank after the = if no such files exists.
VSRT_FILE_PRIO_IO=

# The absolute pathname of a file or device for which the implementation
# does not support Prioritized I/O.
# The file or device must exist the user vsx0 must have read and write
# access to it.
# Leave blank after the = if no such files exists.
VSRT_FILE_NO_PRIO_IO=

# Indicates if the implementation relaxes the restriction on ordering
# of asynchronous writes to devices not capable of seeking or when
# the O_APPEND flag is set (for example the implementation is a 
# multiprocessor) as discussed in Section 2.7.2 of the specification.
# Set to y if this is the case on the implementation and n otherwise.
VSRT_RELAX_WRITE_ORDER=n

# Indicates a value which is invalid when used as aio_nbytes in an
# aiocb in an AIO read operation.  Leave blank after the = if all values
# are valid on this implementation.
VSRT_INVALID_AIO_NBYTES_READ=

# The maximum size of a process' address space, in pages.  This value
# is used in mmap testing (mmap 26 and 31 and mmap_P 29 and 34) to
# verify ENOMEM is returned when memory allocation is not possible
# due to address space boundaries.  On some systems where this value
# is very large, using the actual value may cause mmap to fail with
# an invalid value error.  These tests are constructed so that they
# completely validate their assertions using any value between 1/2 the
# size of the address space and its full size can be used, and in this
# circumstance a smaller value in this range should be configured here.
VSRT_ADDR_SPACE_PAGES=349300

# VSRT_MMAP_UNSUPPORTED_PROT indicates the unsupported access or
# combination of accesses for the data mapped by mmap or changed
# by mprotect
# 0 - No unsupported access(es)
# 1 - PROT_EXEC unsupported
# 2 - PROT_EXEC|PROT_WRITE unsupported
# 3 - PROT_EXEC|PROT_READ unsupported
VSRT_MMAP_UNSUPPORTED_PROT=0

# A clock id which is not valid on the implementation.  Set to a 
# numeric value.
# Leave blank after the = if there is no such value.
VSRT_BAD_CLOCKID=2048

# The seconds component of the resolution of CLOCK_REALTIME.
# Set to a numeric value.
VSRT_REALTIME_RES_SEC=0

# The nanoseconds component of the resolution of CLOCK_REALTIME.
# Set to a numeric value.
VSRT_REALTIME_RES_NSEC=1000

# The numeric value of the signal sent by default when the evp argument to
# timer_create is NULL.
# Set to a numeric value.
VSRT_DEF_TIMER_SIG=15

# The numeric value of a signal which is not in the range SIGRTMIN to SIGRTMAX,
# for which realtime signal behavior is supported, and for which the
# default action is to ignore the signal.
# Set to a numeric value.
# Leave blank after the = if there is no such value.
VSRT_RT_SIG_DEF_IGN=28

# A numeric value which is an invalid scheduling policy of the implementation.
# Set to a numeric value.
# Leave blank after the = if there is no such value.
VSRT_SCHED_INVALID=-1

# Indicates if the implementation supports each of the functions specific
# to the Realtime Feature Group.  These variables are used in POSIX
# testing where whether a function is to be tested is contingent on
# the definition of symbolic constants indicating support of a 
# group of functions, and otherwise on support of individual functions.
# These variables are used only in POSIX testing, to determine if
# an individual function is to be tested if its corresponding
# symbolic constant(s) are not set.
# Set to y or n.  If set to n the function will be required to always
# indicate an error and set errno to ENOSYS.

# _POSIX_ASYNCHRONOUS_IO
VSRT_SUPPORTS_AIO_CANCEL=y
VSRT_SUPPORTS_AIO_ERROR=y
VSRT_SUPPORTS_AIO_FSYNC=y
VSRT_SUPPORTS_AIO_READ=y
VSRT_SUPPORTS_AIO_RETURN=y
VSRT_SUPPORTS_AIO_SUSPEND=y
VSRT_SUPPORTS_AIO_WRITE=y
VSRT_SUPPORTS_LIO_LISTIO=y

# _POSIX_MEMLOCK
VSRT_SUPPORTS_MLOCKALL=y
VSRT_SUPPORTS_MUNLOCKALL=y

# _POSIX_MEMLOCK_RANGE
VSRT_SUPPORTS_MLOCK=y
VSRT_SUPPORTS_MUNLOCK=y

# _POSIX_MEMORY_PROTECTION
VSRT_SUPPORTS_MPROTECT=y

# _POSIX_MAPPED_FILES or _POSIX_SHARED_MEMORY_OBJECTS
VSRT_SUPPORTS_MMAP=y
VSRT_SUPPORTS_MUNMAP=y
VSRT_SUPPORTS_FTRUNCATE=y

# _POSIX_MAPPED_FILES and _POSIX_SYNCHRONIZED_IO
VSRT_SUPPORTS_MSYNC=y

# _POSIX_MESSAGE_PASSING
VSRT_SUPPORTS_MQ_CLOSE=y
VSRT_SUPPORTS_MQ_GETATTR=y
VSRT_SUPPORTS_MQ_NOTIFY=y
VSRT_SUPPORTS_MQ_OPEN=y
VSRT_SUPPORTS_MQ_RECEIVE=y
VSRT_SUPPORTS_MQ_SEND=y
VSRT_SUPPORTS_MQ_SETATTR=y
VSRT_SUPPORTS_MQ_UNLINK=y

# _POSIX_THREAD_PRIORITY_SCHEDULING
VSRT_SUPPORTS_PTHREAD_GETSCHEDPARAM=y
VSRT_SUPPORTS_PTHREAD_ATTR_SETINHERITSCHED=y
VSRT_SUPPORTS_PTHREAD_ATTR_SETSCHEDPOLICY=y
VSRT_SUPPORTS_PTHREAD_ATTR_SETSCOPE=y

# _POSIX_PRIORITY_SCHEDULING
VSRT_SUPPORTS_SCHED_GET_PRIORITY_MAX=y
VSRT_SUPPORTS_SCHED_GET_PRIORITY_MIN=y
VSRT_SUPPORTS_SCHED_GET_PARAM=y
VSRT_SUPPORTS_SCHED_GETSCHEDULER=y
VSRT_SUPPORTS_SCHED_RR_GET_INTERVAL=y
VSRT_SUPPORTS_SCHED_SETPARAM=y
VSRT_SUPPORTS_SCHED_SETSCHEDULER=y
VSRT_SUPPORTS_SCHED_YIELD=y

# _POSIX_REALTIME_SIGNALS
VSRT_SUPPORTS_SIGQUEUE=y
VSRT_SUPPORTS_SIGTIMEDWAIT=y
VSRT_SUPPORTS_SIGWAITINFO=y

# _POSIX_SEMAPHORES
VSRT_SUPPORTS_SEM_CLOSE=y
VSRT_SUPPORTS_SEM_DESTROY=y
VSRT_SUPPORTS_SEM_GETVALUE=y
VSRT_SUPPORTS_SEM_INIT=y
VSRT_SUPPORTS_SEM_OPEN=y
VSRT_SUPPORTS_SEM_POST=y
VSRT_SUPPORTS_SEM_TRYWAIT=y
VSRT_SUPPORTS_SEM_UNLINK=y
VSRT_SUPPORTS_SEM_WAIT=y

# _POSIX_SYNCHRONIZED_IO
VSRT_SUPPORTS_FDATASYNC=y

# _POSIX_SHARED_MEMORY_OBJECTS
VSRT_SUPPORTS_SHM_OPEN=y
VSRT_SUPPORTS_SHM_UNLINK=y

# _POSIX_TIMERS
VSRT_SUPPORTS_CLOCK_GETRES=y
VSRT_SUPPORTS_CLOCK_GETTIME=y
VSRT_SUPPORTS_CLOCK_SETTIME=y
VSRT_SUPPORTS_NANOSLEEP=y
VSRT_SUPPORTS_TIMER_CREATE=y
VSRT_SUPPORTS_TIMER_DELETE=y
VSRT_SUPPORTS_TIMER_GETOVERRUN=y
VSRT_SUPPORTS_TIMER_GETTIME=y
VSRT_SUPPORTS_TIMER_SETTIME=y

