Product Standard: PSE52 Realtime Controller 1003.13-2003 System


Organization Wind River Systems, Inc.
Author Kitty Kong

1. PSE52 Realtime Controller 1003.13-2003 System

Product Information

Product Identification Version/Release Number Product Supplier
VxWorks 7 Wind River Systems, Inc.

Environment Specification

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
 

1. POSIX Conformance Document

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.


2. System Interfaces

2.1 System Interfaces, General Attributes

2.1.1 System Interfaces, Supported Features

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.


2.1.2 System Interfaces, Optional Features

Question SI-2: Which options from the PSE52-2003 Product Standard does this implementation claim support for?

Response

2.1.2 System Interfaces, Optional Features

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.


2.1.3 Float, Stdio, and Limit Values

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>.


2.1.4 Error Conditions

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.


2.1.5 Mathematical Interfaces

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().


2.3 File Handling

2.3.1 Access Control

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.


2.3.2 Files and Directories

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().


2.4 Internationalized System Interfaces

2.4.1 Coded Character Sets

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.


2.5 Threads

2.5.1 Cancellation Points

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.


2.6 Realtime

2.6.1 Prioritized I/O

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


2.7 Realtime Threads

2.7.1 Scheduling Policies

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.

2.7.2 Scheduling Contention Scope

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.

2.7.3 Default 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.

2.7.4 Scheduling Allocation Domain

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).


2.9 C-language Compilation Environment

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).


3. Appendix

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)


4. Change History

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.