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