Organization | Wind River Systems, Inc. |
---|---|
Author | Kitty Kong |
Product Identification | Version/Release Number | Product Supplier |
---|---|---|
VxWorks | 7 | Wind River Systems, Inc. |
Level of Certification | Binary-compatible Family |
---|---|
Platform Specific Certification |
Not Applicable |
Testing Environment | Indicator of Compliance Details |
---|---|
VxWorks 7's Real Time Process environment , on a Freescale/NXP i.MX6Q SABRE Lite board based on the ARMARCH7 architecture.
|
Test Suite Name:
Test Suite Name: VSPSE52-2003
Test Suite Version: N/A
Comprising: VSTH-PSE5.5.15, VSRT-PSE5.4.17, VSX4-PSE4.7.16 |
Question PCD-1: How can a copy of the POSIX Conformance Document for this product be obtained?
Response
Contact Kitty Kong at Wind River Systems: kitty.kong@windriver.com, 510-749-2064
Rationale
Implementations claiming conformance to IEEE Std 1003.13-2003 are required to create a conformance document or to cite a reference to an existing conformance document for IEEE Std 1003.1.
Reference
IEEE Std 1003.1, 2003 Edition, Base Definitions Volume, Issue 6, Section 2.1 Implementation Conformance, Section 2.1.2 Documentation.
IEEE Std 1003.13-2003, Section 5: Conformance.
Question SI-1: Are the required features below supported for all system configurations?
Response
Macro Name | Meaning | Provided |
---|---|---|
_POSIX_NO_TRUNC | Pathname components longer than {NAME_MAX) generate an error. | Yes |
Rationale
Although all implementations conforming to IEEE Std 1003.1-2001 support the features described above, there may be system-dependent or file system-dependent configuration procedures that can remove or modify any or all of these features. Such configurations should not be made if strict compliance is required.
Reference
IEEE Std 1003.1, 2003 Edition, Section 2.1.3, POSIX Conformance.
Question SI-2: Which options from the PSE52-2003 Product Standard does this implementation claim support for?
Response
Question SI-2: Which options from the PSE52-2003 Product Standard does this implementation claim support for?
Response
Option | Provided |
---|---|
_POSIX_TRACE | Yes |
_POSIX_TRACE_EVENT_LOG | Yes |
_POSIX_TRACE_LOG | Yes |
POSIX 1003.26-2003 | Yes |
POSIX.5c Interfaces (Ada Language Option) | No |
Rationale
These features are optional in the PSE52 Realtime Controller 1003.13TM-2003 System Product Standard.
Reference
PSE52 Realtime Controller 1003.13TM-2003 System Product Standard
Question SI-3: Which POSIX.1 options and POSIX.13 units of functionality not mandated by this product standard does the system claim support for?
Response
POSIX.1 Options:
_POSIX_ASYNCHRONOUS_IO
_POSIX_BARRIERS
_POSIX_MEMORY_PROTECTION
_POSIX_THREAD_PROCESS_SHARED
POSIX.13 Units of Functionality:
POSIX_FIFO
POSIX_FILE_ATTRIBUTES
POSIX_NETWORKING
POSIX_PIPE
POSIX_REGEXP
POSIX_RW_LOCKS
POSIX_SIGNAL_JUMP
POSIX_SYMBOLIC_LINKS
POSIX_USER_GROUPS
POSIX_WIDE_CHAR_IO
XSI_DYNAMIC_LINKING
XSI_FD_MGMT
XSI_SYSTEM_LOGGING
Rationale
It is optional whether an implementation claims support for the features associated with these options. This is useful information for procurers and application writers.
Reference
PSE52 Realtime Controller 1003.13-2003 System Product Standard.
Question SI-4: What are the values associated with the following constants specified in the <float.h> header file?
Response
Macro Name | Meaning | Value |
---|---|---|
FLT_RADIX | Radix of the exponent representation. | 2 |
FLT_MANT_DIG | Number of base-FLT_RADIX digits in the float significand | 24 |
DBL_MANT_DIG | Number of base-FLT_RADIX digits in the double significand | 53 |
LDBL_MANT_DIG | Number of base-FLT_RADIX digits in the long double significand | 53 |
FLT_DIG | Number of decimal digits, q, such that any floating-point number with q digits can be rounded into a float representation and back again without change to the q digits. | 6 |
DBL_DIG | Number of decimal digits, q, such that any floating-point number with q digits can be rounded into a double representation and back again without change to the q digits. | 15 |
LDBL_DIG | Number of decimal digits, q, such that any floating-point number with q digits can be rounded into a long double representation and back again without change to the q digits. | 15 |
FLT_MIN_EXP | Minimum negative integer such that FLT_RADIX raised to that power minus 1 is a normalised float. | -125 |
DBL_MIN_EXP | Minimum negative integer such that FLT_RADIX raisedto that power minus 1 is a normalised double. | -1021 |
LDBL_MIN_EXP | Minimum negative integer such that FLT_RADIX raised to that power minus 1 is a normalised long double. | -1021 |
FLT_MIN_10_EXP | Minimum negative integer such that 10 raised to that power is in the range of normalised floats. | -37 |
DBL_MIN_10_EXP | Minimum negative integer such that 10 raised to that power is in the range of normaliseddoubles. | -307 |
LDBL_MIN_10_EXP | Minimum negative integer such that 10 raised to that power is in the range of normalised long doubles. | -307 |
FLT_MAX_EXP | Maximum integer such that FLT_RADIX raised to that power minus 1 is a representable finite float. | 128 |
DBL_MAX_EXP | Maximum integer such that FLT_RADIX raised to that power minus 1 is a representable finite double. | 1024 |
LDBL_MAX_EXP | Maximum integer such that FLT_RADIX raised to that power minus 1 is a representable finite long double. | 1024 |
FLT_MAX_10_EXP | Maximum integer such that 10 raised to that power is in the range of representable finite floats. | 38 |
DBL_MAX_10_EXP | Maximum integer such that 10 raised to that power is in the range of representable finite doubles. | 308 |
LDBL_MAX_10_EXP | Maximum integer such that 10 raised to that power is in the range of representablefinite long doubles. | 308 |
FLT_MAX | Maximum representable finite float. | 0xf.fffffp+124F |
DBL_MAX | Maximum representable finite double. | 0xf.ffffffffffff8p+1020 |
LDBL_MAX | Maximum representable finite long double. | 0xf.ffffffffffff8p+1020L |
FLT_EPSILON | Difference between 1.0 and the least value greater than 1.0 that is representable as a float. | 0x8p-26F |
DBL_EPSILON | Difference between 1.0 and the least value greater than 1.0 that is representable as a double. | 0x8p-55 |
LDBL_EPSILON | Difference between 1.0 and the least value greater than 1.0 that is representable as a long double. | 0x8p-55L |
FLT_MIN | Minimum normalised positive float. | 0x8p-129F |
DBL_MIN | Minimum normalised positive double. | 0x8p-1025 |
LDBL_MIN | Minimum normalised positive long double. | 0x8p-1025L |
Rationale
This set of constants provides useful information regarding the underlying architecture of the implementation.
Reference
IEEE Std 1003.1, 2003 Edition, The Base Definitions Volume, Chapter 13, Headers, <float.h>.
Question SI-5: What are the values associated with the following constants (optionally specified in the <limits.h> header file)?
Response
For the lines in the table below, add the minimum and maximum values for your implementation. This value may be stated to be "Unlimited" if your implementation does not impose a limit. The minimum should be the smallest value that is returned from sysconf() or pathconf(), or as defined in <limits.h>. The maximum value should be the largest value that is returned from sysconf() or pathconf().
Macro Name | Meaning | Minimum | Maximum |
---|---|---|---|
DELAYTIMER_MAX | Maximum number of timer expiration overruns. | 32 | 32 |
FILESIZEBITS | Minimum number of bits needed to represent as a signed integer value the maximum size of a regular file. | 64 | 64 |
LINK_MAX | Maximum number of links to a single file. | 65535 | 65535 |
MQ_OPEN_MAX | The maximum number of open message queue descriptors a process may hold. | No defined maximum | No defined maximum |
MQ_PRIO_MAX | The maximum number of message priorities supported by the implementation. | 32 | 32 |
NAME_MAX | Maximum number of bytes in a filename (not including terminating null). | 255 | 255 |
OPEN_MAX | Maximum number of open files that one process can have open at any one time. | No defined maximum | No defined maximum |
PAGESIZE | Size of a page in bytes. | 4096 (ARMARCH7 architecture) | 4096 (ARMARCH7 architecture) |
PATH_MAX | Maximum number of bytes in a pathname (including the terminating null). | 1024 | 1024 |
PTHREAD_DESTRUCTOR_ITERATIONS | Maximum number of attempts made to destroy a thread's thread-specific data values on thread exit. | 4 | 4 |
PTHREAD_KEYS_MAX | Maximum number of data keys that can be created by a process. | 256 | 256 |
PTHREAD_STACK_MIN | Minimum size in bytes of thread stack storage. | 4096 | 4096 |
PTHREAD_THREADS_MAX | Maximum number of threads that can be created per process. | No defined maximum | No defined maximum |
RTSIG_MAX | Maximum number of realtime signals reserved for application use in this implementation. | 16 | 16 |
SEM_NSEMS_MAX | Maximum number of semaphores that a process may have. | No defined maximum | No defined maximum |
SEM_VALUE_MAX | The maximum value a semaphore may have. | 32767 | 32767 |
SIGQUEUE_MAX | Maximum number of queued signals that a process may send and have pending at the receiver(s) at any time. | 32 | 32 |
SS_REPL_MAX | The maximum number of replenishment operations that may be simultaneously pending for a particular sporadic server scheduler. | No defined maximum | No defined maximum |
STREAM_MAX | Number of streams that one process can have open at one time. | 20 | 20 |
TIMER_MAX | Maximum number of timers per process supported by the implementation. | No defined maximum | No defined maximum |
TRACE_EVENT_NAME_MAX | Maximum length of the trace event name. | 64 | 64 |
TRACE_NAME_MAX | Maximum length of the trace generation version string or of the trace stream name. | 64 | 64 |
TRACE_SYS_MAX | Maximum number of trace streams that may simultaneously exist in the system. | No defined maximum | No defined maximum |
TRACE_USER_EVENT_MAX | Maximum number of user trace event type identifiers that may simultaneously exist in a traced process, including the predefined user trace event POSIX_TRACE_UNNAMED_USER_EVENT. | 256 | 256 |
TZNAME_MAX | Maximum number of bytes supported for the name of a time zone. | 6 | 6 |
Rationale
Each of these limits can vary within bounds set by the Base Definitions Volume. Except as noted below the minimum permitted value is specified in Chapter 13, <limits.h>.
IEEE Std 1003.13-2003 Chapter 7 states that the value of TIMER_MAX shall be at least 64, and the value of RTSIG_MAX shall be at least 16.
Reference
IEEE Std 1003.1, 2003 Edition, The Base Definitions Volume, Chapter 13, Headers, <limits.h>.
IEEE Std 1003.13, 2003 Edition, Section 7, Realtime Controller System Profile (PSE52).
Question SI-6: What are the values associated with the following numerical constants specified in the <limits.h> header file?
Response
Macro Name | Meaning | Value |
---|---|---|
CHAR_MAX | Maximum value of a char. | 255 |
INT_MAX | Maximum value of an int. | 2147483647 |
LONG_MAX | Maximum value of a long int. | 2147483647L |
LLONG_MAX | Maximum value of a long long. | 9223372036854775807LL |
SHRT_MAX | Maximum value of a short. | 32767 |
SSIZE_MAX | Maximum value of an object of type ssize_t | 2147483647 |
UINT_MAX | Maximum value of an unsigned int. | 4294967295 |
ULONG_MAX | Maximum value of an unsigned long int. | 4294967295 |
ULLONG_MAX | Maximum value of a unigsned long long. | 18446744073709551615ULL |
USHRT_MAX | Maximum value of an unsigned short int. | 65535 |
Rationale
This set of constants provides useful information regarding the underlying architecture of the implementation.
Reference
IEEE Std 1003.1, 2003 Edition, The Base Definitions Volume, Chapter 13, Headers, <limits.h>.
Question SI-7: What are the values associated with the following numerical constants specified in the <stdio.h> header file?
Response
Macro Name | Meaning | Value |
---|---|---|
FILENAME_MAX | Maximum size in bytes of the longest filename string that the implementation guarantees can be opened. | 256 |
FOPEN_MAX | Number of streams which the implementation guarantees can be open simultaneously. | 20 |
L_tmpnam | Maximum size of character array to hold tmpnam() output. | 16 |
TMP_MAX | Minimum number of unique filenames generated by tmpnam(), which is the maximum number of times an application can call tmpnam() reliably. | 32 |
Rationale
This set of constants provides useful information about the implementation.
Reference
IEEE Std 1003.1, 2003 Edition, The Base Definitions Volume, Chapter 13, Headers, <stdio.h>.
Question SI-8: Which of the following option errors, ( denoted by "may fail" within the specification ), listed in the System Interfaces Volume are detected in the circumstances specified?
Response
Function | Error | Detected |
---|---|---|
access() | EINVAL | Yes |
ENAMETOOLONG | Yes | |
ETXTBSY | No | |
chdir() | ENAMETOOLONG | Yes |
ELOOP | Yes | |
clock_settime() | EPERM | Yes |
close() | EIO | Yes |
closedir() | EBADF | Yes |
EINTR | No | |
erfc() * | Range Error | Yes |
exp() * | Range Error | Yes |
exp2() * | Range Error | Yes |
expm1() * | Range Error | Yes |
fchdir() | EINTR | Yes |
EIO | No | |
fclose() | ENXIO | No |
fcntl() | EDEADLK | Yes |
fdim() * | Range Error | No |
fdopen() | EBADF | Yes |
EINVAL | Yes | |
EMFILE | Yes | |
ENOMEM | Yes | |
fflush() | ENXIO | Yes |
fgetc() | ENOMEM | Yes |
ENXIO | Yes | |
fgetpos() | EBADF | Yes |
ESPIPE | No | |
fgetwc() | ENOMEM | Yes |
ENXIO | Yes | |
fileno() | EBADF | No |
fmod() * | Range Error | Yes |
fopen() | EINVAL | Yes |
ELOOP | Yes | |
EMFILE | Yes | |
ENAMETOOLONG | Yes | |
ENOMEN | Yes | |
ETXTBSY | No | |
fpathconf() | EBADF | Yes |
EINVAL | Yes | |
fputc() | ENOMEM | Yes |
ENXIO | Yes | |
fread() | ENOMEM | Yes |
ENXIO | Yes | |
freopen() | EINVAL | Yes |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
ENOMEM | Yes | |
ENXIO | Yes | |
ETXTBSY | No | |
fscanf() | ENOMEM | Yes |
ENXIO | No | |
fstat() | EOVERFLOW | No |
ftell() | ESPIPE | No |
getcwd() | EACCES | No |
ENOMEM | No | |
ldexp() * | Range Error | Yes |
link() | ELOOP | Yes |
ENAMETOOLONG | Yes | |
mkdir() | ELOOP | Yes |
ENAMETOOLONG | Yes | |
mktime() | EOVERFLOW | No |
mlock() | EINVAL | No |
ENOMEM | Yes | |
munlock() | EINVAL | No |
mlockall() | ENOMEM | No |
ENOPERM | No | |
mq_getattr() | EBADF | Yes |
mq_receive() | EBADF | Yes |
mq_timedreceive() | EBADF | Yes |
open() | EAGAIN | No |
EINVAL | Yes | |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
ETXTBSY | No | |
opendir() | ELOOP | Yes |
EMFILE | Yes | |
ENAMETOOLONG | Yes | |
ENFILE | Yes | |
pathconf() | EACCES | Yes |
EINVAL | Yes | |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
ENOENT | Yes | |
ENOTDIR | No | |
posix_trace_attr_destroy() | EINVAL | Yes |
posix_trace_attr_getclockres() | EINVAL | Yes |
posix_trace_attr_getcreatetime() | EINVAL | Yes |
posix_trace_attr_getgenversion() | EINVAL | Yes |
posix_trace_attr_getname() | EINVAL | Yes |
posix_trace_attr_getinherited() | EINVAL | Yes |
posix_trace_attr_getlogfullpolicy() | EINVAL | Yes |
posix_trace_attr_getstreamfullpolicy() | EINVAL | Yes |
posix_trace_attr_setinherited() | EINVAL | UNSUPPORTED (Not PSE52) |
posix_trace_attr_setlogfullpolicy() | EINVAL | Yes |
posix_trace_attr_setstreamfullpolicy() | EINVAL | Yes |
posix_trace_attr_getlogsize() | EINVAL | Yes |
posix_trace_attr_getmaxdatasize() | EINVAL | Yes |
posix_trace_attr_getmaxsystemeventsize() | EINVAL | Yes |
posix_trace_attr_getmaxusereventsize() | EINVAL | Yes |
posix_trace_attr_getstreamsize() | EINVAL | Yes |
posix_trace_attr_setlogsize() | EINVAL | Yes |
posix_trace_attr_setstreamsize() | EINVAL | Yes |
posix_trace_close() | EINVAL | Yes |
posix_trace_rewind() | EINVAL | Yes |
posix_trace_eventset_add() | EINVAL | Yes |
posix_trace_eventset_del() | EINVAL | Yes |
posix_trace_eventset_empty() | EINVAL | Yes |
posix_trace_eventset_fill() | EINVAL | Yes |
posix_trace_eventset_ismember() | EINVAL | Yes |
pow() * | Range Error | Yes |
pthread_attr_destroy() | EINVAL | Yes |
pthread_attr_init() | EBUSY | No |
pthread_attr_getdetachstate() | EINVAL | Yes |
pthread_attr_setdetachstate() | EINVAL | Yes |
pthread_attr_getguardsize() | EINVAL | Yes |
pthread_attr_setguardsize() | EINVAL | Yes |
pthread_attr_getinheritsched() | EINVAL | Yes |
pthread_attr_setinheritsched() | EINVAL | Yes |
ENOSUP | No | |
pthread_attr_getschedparam() | EINVAL | Yes |
pthread_attr_setschedparam() | EINVAL | Yes |
ENOSUP | No | |
pthread_attr_getschedpolicy() | EINVAL | Yes |
pthread_attr_setschedpolicy() | EINVAL | Yes |
ENOSUP | Yes | |
pthread_attr_getscope() | EINVAL | Yes |
pthread_attr_setscope() | EINVAL | Yes |
ENOSUP | Yes | |
pthread_attr_getstack() | EINVAL | Yes |
pthread_attr_setstack() | EINVAL | Yes |
EBUSY | No | |
pthread_attr_getstackaddr() | EINVAL | Yes |
pthread_attr_setstackaddr() | EINVAL | Yes |
pthread_attr_getstacksize() | EINVAL | Yes |
pthread_attr_setstacksize() | EINVAL | Yes |
pthread_cancel() | ESRCH | Yes |
pthread_cond_broadcast() | EINVAL | Yes |
pthread_cond_signal() | EINVAL | Yes |
pthread_cond_destroy() | EBUSY | Yes |
EINVAL | Yes | |
pthread_cond_init() | EBUSY | No |
EINVAL | Yes | |
pthread_cond_timedwait() | EINVAL | Yes |
EPERM | Yes | |
pthread_cond_wait() | EINVAL | Yes |
EPERM | Yes | |
pthread_condattr_destroy() | EINVAL | Yes |
pthread_condattr_getclock() | EINVAL | Yes |
pthread_condattr_setclock() | EINVAL | Yes |
pthread_condattr_getpshared() | EINVAL | Yes |
pthread_condattr_setpshared() | EINVAL | Yes |
pthread_create() | EINVAL | Yes |
pthread_detach() | EINVAL | Yes |
ESRCH | Yes | |
pthread_getcpuclockid() | ESRCH | Yes |
pthread_getschedparam() | ESRCH | Yes |
pthread_setschedparam() | EINVAL | Yes |
ENOTSUP | Yes | |
EPERM | Yes | |
ESRCH | Yes | |
pthread_setspecific() | ESRCH | No |
pthread_join() | EDEADLK | Yes |
EINVAL | Yes | |
pthread_keydelete() | EINVAL | Yes |
pthread_mutex_destroy() | EBUSY | Yes |
EINVAL | Yes | |
pthread_mutex_init() | EBUSY | No |
EINVAL | Yes | |
pthread_mutex_lock() | EINVAL | Yes |
EDEADLK | Yes | |
pthread_mutex_trylock() | EINVAL | Yes |
pthread_mutex_unlock() | EINVAL | Yes |
EPERM | Yes | |
pthread_mutex_timedlock() | EINVAL | Yes |
EDEADLK | Yes | |
pthread_mutexattr_destroy() | EINVAL | No |
pthread_mutexattr_getprioceiling() | EINVAL | Yes |
EPERM | No | |
pthread_mutexattr_setprioceiling() | EINVAL | Yes |
EPERM | No | |
pthread_mutexattr_getprotocol() | EINVAL | Yes |
EPERM | No | |
pthread_mutexattr_setprotocol() | EINVAL | Yes |
EPERM | Yes | |
pthread_mutexattr_getpshared() | EINVAL | Yes |
pthread_mutexattr_setpshared() | EINVAL | Yes |
pthread_mutexattr_gettype() | EINVAL | Yes |
pthread_mutexattr_settype() | EINVAL | Yes |
pthread_once() | EINVAL | Yes |
pthread_setcancelstate() | EINVAL | Yes |
pthread_setcanceltype() | EINVAL | Yes |
pthread_schedprio() | EINVAL | Yes |
ENOTSUP | No | |
EPERM | Yes | |
ESRCH | Yes | |
putc() | ENOMEM | Yes |
ENXIO | Yes | |
putchar() | ENOMEM | Yes |
ENXIO | Yes | |
puts() | ENOMEM | Yes |
ENXIO | Yes | |
read() | EIO | Yes |
ENOBUFS | No | |
ENOMEM | Yes | |
ENXIO | Yes | |
readdir() | EBADF | Yes |
ENOENT | Yes | |
remove() | EBUSY | Yes |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
ETXTBSY | No | |
rename() | ELOOP | Yes |
ENAMETOOLONG | Yes | |
ETXTBSY | No | |
rmdir() | ELOOP | Yes |
ENAMETOOLONG | Yes | |
sem_close() | EINVAL | Yes |
sem_destroy() | EINVAL | Yes |
EBUSY | Yes | |
sem_getvalue() | EINVAL | Yes |
sem_post() | EINVAL | Yes |
sem_timedwait() | EDEADLK | No |
EINTR | Yes | |
EINVAL | Yes | |
sem_trywait() | EDEADLK | No |
EINTR | No | |
EINVAL | Yes | |
sem_wait() | EDEADLK | No |
EINTR | Yes | |
EINVAL | Yes | |
setvbuf() | EBADF | No |
sigaction() | EINVAL | Yes |
sigaddset() | EINVAL | Yes |
sigdelset() | EINVAL | Yes |
sigismember() | EINVAL | Yes |
signal() | EINVAL | Yes |
sigtimedwait() | EINVAL | Yes |
sigwait() | EINVAL | Yes |
sigwaitinfo() | EINVAL | Yes |
stat() | ELOOP | Yes |
ENAMETOOLONG | Yes | |
EOVERFLOW | No | |
strcoll() | EINVAL | No |
strerror() | EINVAL | No |
strerror_r() | ERANGE | No |
strtod() | EINVAL | No |
strtoimax() | EINVAL | No |
strtol() | EINVAL | No |
strtoul() | EINVAL | No |
strtoumax() | EINVAL | No |
strxfrm() | EINVAL | No |
timer_delete() | EINVAL | Yes |
timer_getoverrun() | EINVAL | Yes |
timer_gettime() | EINVAL | Yes |
timer_settime() | EINVAL | Yes |
tmpfile() | EMFILE | Yes |
ENOMEM | Yes | |
unlink() | ELOOP | Yes |
ENAMETOOLONG | Yes | |
ETXTBSY | No | |
utime() | ELOOP | Yes |
ENAMETOOLONG | Yes | |
vfscanf() | EILSEQ | Yes |
EINVAL | No | |
ENOMEM | No | |
ENXIO | No | |
write() | ENETDOWN | No |
ENETUNREACH | No | |
ENXIO | Yes |
Rationale
Each of the above error conditions is marked as optional in the System Interfaces Volume and an implementation may return this error in the circumstances specified or may not provide the error indication.
Reference
IEEE Std 1003.1, 2003 Edition, the System Interfaces Volume, Section 2.3, Error Numbers.
Question SI-9: What format of floating-point numbers is supported by this implementation?
Response
The floating point implementation follows the ANSI/IEEE Standard 754/1985.
Rationale
Most implementations support IEEE floating-point format either in hardware or software. Some implementations support other formats with different exponent and mantissa accuracy. These differences need to be defined.
Reference
IEEE Std 1003.1, 2003 Edition, the System Interfaces Volume, Section 1.7, Relationship to Other Formal Standards.
Question SI-10: Which floating-point exceptions are supported by this implementation for the fegetexecptflag (), feraiseexcept(), fesetexecptflag(), and fetestexecptflag() functions?
Response
FE_DIVBYZERO
FE_INEXACT
FE_INVALID
FE_OVERFLOW
FE_UNDERFLOW
Rationale
The behavior of a conforming implementation in this area is not mandated in the specification and needs to be defined.
Reference
IEEE Std 1003.1, 2003 Edition, The Base Definitions Volume, Chapter 13, Headers, <fenv.h>.
Question SI-11: Which floating-point rounding directions are supported by this implementation for the fegetround(), and fesetround() functions?
Response
FE_DOWNWARD
FE_TONEAREST
FE_TOWARDZERO
FE_UPWARD
Rationale
The behavior of a conforming implementation in this area is not mandated in the specification and needs to be defined.
Reference
IEEE Std 1003.1, 2003 Edition, The Base Definitions Volume, Chapter 13, Headers, <fenv.h>.
Question SI-12: Is a non-stop floating-point exception mode supported by this implementation?
Response
Yes
Rationale
The behavior of a conforming implementation in this area is not mandated in the specification and needs to be defined.
Reference
IEEE Std 1003.1, 2003 Edition, the System Interfaces Volume, Chapter 3, System Interfaces, feholdexcept().
Question SI-13: What file access control mechanisms does the implementation provide?
Response
Standard access control is provided. Refer to the POSIX Conformance Document.
Rationale
the System Interfaces Volume notes that implementations may provide additional or alternate file access control mechanisms, or both.
IEEE Std 1003.1, 2003 Edition, The Base Definitions Volume, Chapter 4, General Concepts, Section 4.4, File Access Permissions.
Question SI-14: Are any additional or alternate file access control mechanisms implemented that could cause fstat() or stat() to fail?
Response
No
Rationale
theSystem Interfaces Volume notes that there could be an interaction between additional and alternate access controls and the success of fstat() and stat(). This would suggest that an implementation can allow access to a file but not allow the process to gain information about the status of the file.
Reference
IEEE Std 1003.1, 2003 Edition, the System Interfaces Volume, Chapter 3, System Interfaces, fstat() and stat().
Question SI-15: What coded character sets are supported by the implementation?
Response
The portable character set is supported.
Rationale
The Base Definitions Volume states that conforming implementations support one or more coded character sets, and that each of these includes the portable character set.
Reference
IEEE Std 1003.1, 2003 Edition, The Base Definitions Volume, Chapter 6, Character Set.
Question SI-16: What is the implementation's underlying internal codeset?
Response
Only the ISO/IEC 646:1991 standard is supported.
Rationale
It is useful to be aware of the underlying codeset of the implementation.
Reference
IEEE Std 1003.1, 2003 Edition, The Base Definitions Volume, Chapter 6, Character Set.
Question SI-17: Which functions have cancellation points that occur when a thread is executing?
Response
aio_suspend()
clock_nanosleep()
creat()
open()
read()
readv()
write()
writev()
close()
fcntl()
fsync()
fdatasync()
mq_receive()
mq_send()
mq_timedreceive()
mq_timedsend()
msync()
posix_devctl()
pthread_cond_timedwait()
pthread_cond_wait()
pthread_join()
pthread_testcancel()
sem_timedwait()
sem_wait()
pause()
sigsuspend()
sigtimedwait()
sigwait()
sigwaitinfo()
waitpid()
sleep()
nanosleep()
Rationale
IEEE Std 1003.1, 2003 Edition, Base Definitions Volume, states that a cancellation point may occur for these functions.
Reference
IEEE Std 1003.1, 2003 Edition, System Interfaces Volume, Section 2.9.5.2, Cancellation Points.
Question SI-18: Which file types does the implementation support _POSIX_PRIORITIZED_IO on?
Response
UNSUPPORTED (not PSE52)
Rationale
Reference
Technical Standard, IEEE Std 1003.1, 2003 Edition, Base Definitions Volume, Section 2.1.5.2 IEEE Std 1003.1, 2003 Edition, System Interfaces Volume, Section 2.8
Question SI-19: What scheduling policy is associated with SCHED_OTHER?
Response
The SCHED_OTHER policy is associated with the currently active VxWorks native scheduling policy, which can be either a priority-based preemptive scheduling policy or a priority-based round-robin scheduling policy. These native scheduling policies are described in the Multitasking chapter of the VxWorks Kernel Programmer's Guide. The scheduling parameters used with pthread_getschedparam() and pthread_setschedparam() are the thread's priority (0 to 255) and the members used for the SCHED_SPORADIC policy: sched_ss_low_priority, sched_ss_repl_period, sched_ss_init_budget, sched_ss_max_repl.
Rationale
IEEE Std 1003.1, 2003 Edition, Base Definitions Volume, states that conforming implementations must support a scheduling policy identified as SCHED_OTHER but define its effects as implementation-defined.
Reference
IEEE Std 1003.1, 2003 Edition, System Interfaces Volume, Section 2.8.4, Scheduling Policies.
Question SI-20: What scheduling contention scopes are supported: PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM, or both?
Response
PTHREAD_SCOPE_SYSTEM
Rationale
System Interfaces, Issue 6 states that conforming implementations will support PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM, or both.
Reference
IEEE Std 1003.1, 2003 Edition, System Interfaces Volume, Section 2.9.4, Thread Scheduling Contention Scope.
Question SI-21: What is the default scheduling contention scope when a thread is created?
Response
PTHREAD_SCOPE_SYSTEM
Rationale
The specification defines the default scheduling contention scope as implementation-defined.
Reference
IEEE Std 1003.1, 2003 Edition, System Interfaces Volume, Section 2.9.4, Thread Scheduling Attributes.
Question SI-22: What is the mechanism to configure the system so that the scheduling allocation domain has size one, so that the binding of threads to scheduling allocation domains remains static?
Response
VxWorks supports only one scheduling allocation domain so there is no configuration mechanism required for this.
Rationale
An implementation conforming to PSE52 shall provide a mechanism to configure the system so that the scheduling allocation domain has size one, and so that the binding of threads to scheduling allocation domains remains static. The mechanism by which this requirement is achieved shall be implementation defined.
Reference
IEEE Std 1003.13, 2003 Edition, Section 7, Realtime Controller System Profile (PSE52).
Question SI-23: What C-language compilation environments are provided?
Response
Programming Environment | Provided |
---|---|
The implementation provides a C-language compilation environment with 32-bit int, long, pointer and off_t types. | No |
The implementation provides a C-language compilation environment with 32-bit int, long and pointer types and an off_t type using at least 64 bits. | Yes |
The implementation provides a C-language compilation environment with 32-bit int, and 64-bit long, pointer and off_t types. | No |
The implementation provides a C-language compilation environment with int using at least 32-bits, and long, pointer and off_t types using at least 64 bits. | No |
Rationale
The Base Definitions Volume defines these scenarios as possible C-language compilation environment offerings.
Reference
IEEE Std 1003.1, 2003 Edition, The Base Definitions Volume, Chapter 13, Headers, <unistd.h>.
Question SI-24: What execution environments are provided on the system under test?
Response
Execution Environment | Provided |
---|---|
The implementation provides an execution environment with 32-bit int, long, pointer and off_t types. | No |
The implementation provides an execution environment with 32-bit int, long and pointer types and an off_t type using at least 64 bits. | Yes |
The implementation provides an execution environment with 32-bit int, and 64-bit long, pointer and off_t types. | No |
The implementation provides an execution environment with int using at least 32-bits, and long, pointer and off_t types using at least 64 bits. | No |
Rationale
The Base Definitions Volume defines four scenarios as possible C-language compilation environment offerings but does not define which corresponding execution environments are supported.
Reference
IEEE Std 1003.1, 2003 Edition, The Base Definitions Volume, Chapter 13, Headers, <unistd.h>.
Question SI-25: What is the largest type that can be stored in type off_t ?
Response
long long
Rationale
The type off_t shall be capable of storing any value contained in type long.
Reference
IEEE Std 1003.13-2003, Section 9.2.1 POSIX.1 Interfaces (C Language Option).
This appendix contains additional, explanatory material that was provided by the vendor. This should include any setup required to define a conforming environment on the system.
The POSIX tests must be executed against a standardized target configuration. The target must have support for, among other things, a VxWorks ROMFS file system and a RAM disk formatted with HRFS. The various composition elements are as follows:
Bundles:
BUNDLE_STANDALONE_SHELL
BUNDLE_RTP_DEVELOP
BUNDLE_EDR
BUNDLE_RTP_POSIX_PSE52
vxprj bundle add BUNDLE_STANDALONE_SHELL BUNDLE_RTP_DEVELOP BUNDLE_EDR BUNDLE_RTP_POSIX_PSE52
Individual components:
INCLUDE_FSL_IMX6Q_SABRELITE
INCLUDE_HRFS
INCLUDE_HRFS_FORMAT
INCLUDE_XBD_RAMDRV
INCLUDE_RAM_DISK
INCLUDE_RAM_DISK_FORMAT_ANY
INCLUDE_ROMFS
INCLUDE_STANDALONE_SYM_TBL
INCLUDE_POSIXTEST_SERVER
INCLUDE_END
INCLUDE_IFCONFIG
INCLUDE_PING
INCLUDE_NET_REM_IO
vxprj component add INCLUDE_FSL_IMX6Q_SABRELITE INCLUDE_HRFS INCLUDE_HRFS_FORMAT INCLUDE_XBD_RAMDRV INCLUDE_RAM_DISK INCLUDE_RAM_DISK_FORMAT_ANY INCLUDE_ROMFS INCLUDE_STANDALONE_SYM_TBL INCLUDE_POSIXTEST_SERVER INCLUDE_END INCLUDE_IFCONFIG INCLUDE_PING INCLUDE_NET_REM_IO
Parameter values:
RAM_DISK_SIZE 0x100000
HRFS_DEFAULT_MAX_FILES 20
vxprj parameter set RAM_DISK_SIZE 0x100000
vxprj parameter set HRFS_DEFAULT_MAX_FILES 20
ROMFS directory:
The project must hold a "romfs" directory (empty) and be built as follows:
make ROMFS_DIR=./romfs
or
vxprj buildmacro add ROMFS_DIR
vxprj buildmacro set ROMFS_DIR ./romfs
Required Execution Environment Elements
Once the board has booted, the RAM disk must be formatted with the HRFS file system as follows:
hrfsDiskFormat ("/ram0", 1000, 0, 0, 0)
Also, a file named vsrt_sio_file must be created on /ram0. This can be done as follows:
fd = creat ("/ram0/vsrt_sio_file", 0511)
write (fd, "word", 4)
close (fd)
Finally a 'tmp' directory must appear on the VRFS file system. A "/tmp" RAM disk device must be created and formatted as an HRFS file system:
xbdRamDiskDevCreate (512, 0x80000, 0, "/tmp")
hrfsDiskFormat ("/tmp", 1000, 0, 0, 0)
Date | Name | Comment |
---|---|---|
October 28, 2019 | Kitty Kong | Version 1.0 |
November 18, 2019 | Kitty Kong | Version 1.1 - updated FILESIZEBITS and LINK_MAX values |
Version 1.02 9 October 2006 Copyright © 1998-2019 The Open Group. All Rights Reserved. The Open Group and Boundaryless Information Flow are trademarks and UNIX is a registered trademark of The Open Group in the United States and other countries. POSIX is a registered trademark of the IEEE. All other trademarks are the property of their respective owners.