Notes, Memory management posix section 12, Functions implemented – Comtrol eCos User Manual

Page 463: Functions omitted, Memory management [posix section 12

Advertising
background image

Chapter 31. POSIX Standard Support

int pshared );

int

pthread_condattr_getpshared( const pthread_condattr_t

attr,

int

pshared);

int

pthread_condattr_setpshared( const pthread_condattr_t

attr,

int pshared);

Notes

The presence of semaphores is controlled by the CYGPKG_POSIX_SEMAPHORES option. This in turn causes

the _POSIX_SEMAPHORES feature test macro to be defined and the semaphore API to be made available.

The pshared argument to sem_init() is not implemented, its value is ignored.

Functions sem_open(), sem_close() and sem_unlink() are present but always return an error (ENOSYS).

The

exact

priority

inversion

protocols

supported

may

be

controlled

with

the

_POSIX_THREAD_PRIO_INHERIT and _POSIX_THREAD_PRIO_PROTECT configuration options.

{_POSIX_THREAD_PROCESS_SHARED} is not defined, so the process-shared mutex and condition

variable attributes are not supported, and neither are the functions pthread_mutexattr_getpshared(),
pthread_mutexattr_setpshared(), pthread_condattr_getpshared() and pthread_condattr_setpshared().

Condition variables do not become bound to a particular mutex when pthread_cond_wait() is called. Hence

different threads may wait on a condition variable with different mutexes. This is at variance with the standard,
which requires a condition variable to become (dynamically) bound by the first waiter, and unbound when the
last finishes. However, this difference is largely benign, and the cost of policing this feature is non-trivial.

Memory Management [POSIX Section 12]

Functions Implemented

<none>

Functions Omitted

int mlockall( int flags );

int munlockall( void );

int mlock( const void

addr, size_t len );

int munlock( const void

addr, size_t len );

void mmap( void

addr, size_t len, int prot, int flags,

int fd, off_t off );

int munmap( void

addr, size_t len );

int mprotect( const void

addr, size_t len, int prot );

int msync( void

addr, size_t len, int flags );

int shm_open( const char

name, int oflag, mode_t mode );

int shm_unlink( const char

name );

359

Advertising