Home
RTEMS POSIX API User's Guide
Contents
1. 272 pthread_attr_getstacksize 270 pthread attr init ese eared 265 pthread attr setdetachstate 267 pthread_attr_setinheritsched 219 pthread attr setschedparam 279 pthread_attr_setschedpolicy 2T pthread attr setscope 23 pthread attr setstackaddr oak pthread attr setstacksize 269 pthread cancel oct eissiees pop haere eee 298 pthread cleanup pop ds ees 303 pthread cleanup p sh 2 Res 302 pthread cond broadcast LL 213 pthread cond destroy csresr eeraa iaaii neis 211 pthread cond inito poe eR 210 pthread cond signal suse sss 212 pthread cond timedwait Ls 215 pthread cond vait lesse 214 pthread condattr destroy 207 pthread_condattr_getpshared 209 pthread condattr init 206 pthread condattr setpshared 208 pthread create eus e bem pes 281 pthread detach ENEE ER eee RR 284 pthread equal 2 222222249 Des 287 pthread exit oss cones capes ads 283 pthread_getschedparam 290 pthread join EE EE Ee erig 285 pthread kills an Ee EE E AEN 23 pthread mutex destroy 198 pthread mutex getprioceiling 204 pthread mutex init sess 197 pthread mutex Locke 199 pthread mutex setprioceiling 203
2. 197 10 4 10 pthread mutex destroy Destroy a Mutex 198 10 4 11 pthread mutex lock Lock a Mutex 199 10 4 12 pthread_mutex_trylock Poll to Lock a Mutex rre p 200 10 4 13 pthread_mutex_timedlock Lock a Mutex with RTE 201 10 4 14 pthread_mutex_unlock Unlock a Mutex 202 10 4 15 pthread mutex setprioceiling Dynamically Set the Priority Ceiling 0 020 e ee Diaa 203 10 4 16 pthread_mutex_getprioceiling Get the Current Priority CGelmg 0 0 0 cee cece eee eee eee 204 11 Condition Variable Manager 205 LL IntrOductlOna scere ree hee nato e 205 11 2 Background eure tee a o Bru 205 11 3 Operations 205 ILA DireGUves ded aee rx odd exo eio ol rest E 205 11 4 1 pthread_condattr_init Initialize a Condition Variable Attribute Set 206 11 4 2 pthread condattr destroy Destroy a Condition Variable Attribute Set 207 11 4 3 pthread_condattr_setpshared Set Process Shared Attribute aree Rer ES eek kh Eis 208 vii viii RTEMS POSIX API User s Guide 11 4 4 pthread_condattr_getpshared Get Process Shared AC DUTO ee eet ud 209 11 4 5 pthread_cond_init Initialize a Condition Variable E E EUM 210 11 4 6 pthread cond destroy Destroy a Condition Variables upon peut ber epe e torpe aote SI 11 4 7 pthread cond signal Signal a Condition Variable PEE 212 11 4 8 pthread cond broadcast Broadcast a Condition Variable css peana ieee sland ndings Ers qus qd g
3. Chapter 8 System Databases Manager 171 8 4 8 getpwnam r Reentrant Get Password File Entry for Name CALLING SEQUENCE int getpwnam r STATUS CODES E The DESCRIPTION NOTES 172 RTEMS POSIX API User s Guide Chapter 9 Semaphore Manager 173 9 Semaphore Manager 9 1 Introduction The semaphore manager provides functions to allocate delete and control semaphores This manager is based on the POSIX 1003 1 standard The directives provided by the semaphore manager are e sem init Initialize an unnamed semaphore e sem destroy Destroy an unnamed semaphore e sem open Open a named semaphore e sem close Close a named semaphore e sem unlink Remove a named semaphore e sem wait Lock a semaphore e sem trywait Lock a semaphore e sem timedwait Wait on a Semaphore for a Specified Time e sem post Unlock a semaphore e sem getvalue Get the value of a semeaphore 9 2 Background 9 2 1 Theory Semaphores are used for synchronization and mutual exclusion by indicating the availability and number of resources The task the task which is returning resources notifying other tasks of an event increases the number of resources held by the semaphore by one The task the task which will obtain resources waiting for the event decreases the number of resources held by the semaphore by one If the number of resources held by a semaphore is insufficient namely 0 the task requiring resources will wait unt
4. NOTES Chapter 7 Language Specific Services for the C Programming Language Manager 7 4 5 ftrylockfile Poll to Acquire Ownership of File Stream CALLING SEQUENCE int ftrylockfile STATUS CODES E The DESCRIPTION NOTES 145 146 RIEMS POSIX API User s Guide 7 4 6 funlockfile Release Ownership of File Stream CALLING SEQUENCE int funlockfile 25 STATUS CODES E The DESCRIPTION NOTES Chapter 7 Language Specific Services for the C Programming Language Manager 7 4 7 getc unlocked Get Character without Locking CALLING SEQUENCE int getc unlocked 3 STATUS CODES E The DESCRIPTION NOTES 147 148 RTEMS POSIX API User s Guide 7 4 8 getchar unlocked Get Character from stdin without Locking CALLING SEQUENCE int getchar_unlocked 25 STATUS CODES E The DESCRIPTION NOTES Chapter 7 Language Specific Services for the C Programming Language Manager 7 4 9 putc unlocked Put Character without Locking CALLING SEQUENCE int putc unlocked 3 STATUS CODES E The DESCRIPTION NOTES 149 150 RIEMS POSIX API User s Guide 7 4 10 putchar unlocked Put Character to stdin without Locking CALLING SEQUENCE int putchar unlocked 25 STATUS CODES E The DESCRIPTION NOTES Chapter 7 Language Specific Services for the C Programming Language Manager 7 4 11 setjmp Save Context for Non Local Goto CALLING SEQUENCE
5. int open const char path int oflag mode_t mode i STATUS CODES EACCES Search permission is denied for a directory in a file s path prefix EEXIST The named file already exists EINTR Function was interrupted by a signal EISDIR Attempt to open a directory for writing or to rename a file to be a directory EMFILE Too many file descriptors are in use by this process ENAMETOOLONG Length of a filename string exceeds PATH MAX and POSIX NO TRUNC is in effect ENFILE Too many files are currently open in the system ENOENT A file or directory does not exist ENOSPC No space left on disk ENOTDIR A component of the specified pathname was not a directory when a directory was expected ENXIO No such device This error may also occur when a device is not ready for example a tape drive is off line EROFS Read only file system DESCRIPTION The open function establishes a connection between a file and a file descriptor The file descriptor is a small integer that is used by I O functions to reference the file The path argument points to the pathname for the file The oflag argument is the bitwise inclusive OR of the values of symbolic constants The programmer must specify exactly one of the following three symbols O RDONLY Open for reading only 72 O_WRONLY O_RDWR RTEMS POSIX API User s Guide Open for writing only Open for reading and writing Any combination of the following symbols may also
6. v s nn nnn 120 ftruntate A es 4 eve EEE Qe e 93 alo suspend Rye xc pudet eR 122 ftrylockfile 2 1 2122 d Pet ee 145 aio WIlte 0g keclexxeRe tated E S CODY LES funlockfile ooa Re diee ns 146 SU EIE nd EE Ee sakes gigs 34 aSCbime EE 157 G getc unloCk6ed 1 rior ee 147 C getchar unlocked loose tei PER Der is 148 E ERECTA 126 EOELCWd 5 spate we eaqui aro erp d adr dea 70 cfgetospeed i4 RR eae ned ae toed 127 gotdents ee S cfsetispe ed ee EEN EE EELER dane de us ue d 128 T EE 53 oe EE El Gei EE 41 chmod WEE 88 getgrgid i ssi 164 Chen 91 EE 165 CLOCK getr s neg ea coded b ts 238 EE 166 Clock gettime csi ieee eesdet heen dE EROS 235 TEE 167 clock_settime lessen 23T EOtErOUDS Lihbeseerbed le de ee AE rs 45 enk EE 105 Eetlogin i zsiectesteseirhrl isersseseeRgu ded 46 Closediti cb 4 2408 Is vexr dee y ee rE eS 68 Betlogin Y coss e peers OE eed EE Ay Great cies ag terie paani ER eats Dies 73 PStPSIP scat ewe oes a hie aye PERI d 48 CLermid Scie AER 55 Betpids rrr EE 37 EE EE 158 Betppid eese n nn 38 EStpwham EEN 170 getpwnam E 2 mies nk Ret Ee a Zei D getpwiuld o iens i EE ERES eR b n id 168 rg EE 169 ae NS gettimeofday ee RARO PII PIPERIS 241 EE 104 Eetuld 2s iege rsr An ed Eege 39 Entime E soita ia ae e und mue eds 159 E execl loics i gc reges qme danse ite us 5 I C E m 4 lsatty isseltesisgeb4 e e R E b teni fb RESTE 58 Steeg eege a ee ed Desv eir uie ure 9 OXOCV sg rive LN pem need mises ARM
7. 1 4 2 execl Execute a File CALLING SEQUENCE int execl const char path const char arg es STATUS CODES ENOSYS This routine is not supported by RTEMS DESCRIPTION This routine is not supported by RTEMS NOTES NONE 6 RIEMS POSIX API User s Guide 1 4 3 execv Execute a File CALLING SEQUENCE int execv const char path char const argv TE STATUS CODES ENOSYS This routine is not supported by RTEMS DESCRIPTION This routine is not supported by RTEMS NOTES NONE Chapter 1 Process Creation and Execution Manager 1 4 4 execle Execute a File CALLING SEQUENCE int execle const char path const char arg es STATUS CODES ENOSYS This routine is not supported by RTEMS DESCRIPTION This routine is not supported by RTEMS NOTES NONE 8 RTEMS POSIX API User s Guide 1 4 5 execve Execute a File CALLING SEQUENCE int execve const char path char const argv char const envp STATUS CODES ENOSYS This routine is not supported by RTEMS DESCRIPTION This routine is not supported by RTEMS NOTES NONE Chapter 1 Process Creation and Execution Manager 1 4 6 execlp Execute a File CALLING SEQUENCE int execlp const char file const char arg es STATUS CODES ENOSYS This routine is not supported by RTEMS DESCRIPTION This routine is not supported by RTEMS NOTES NONE 10 RTEMS POSIX API User s Gui
8. DESCRIPTION NOTES Chapter 16 Message Passing Manager 249 16 Message Passing Manager 16 1 Introduction The message passing manager is the means to provide communication and synchronization capabilities using POSIX message queues The directives provided by the message passing manager are e mq open Open a Message Queue e mq close Close a Message Queue e mq unlink Remove a Message Queue e mq send Send a Message to a Message Queue e mq receive Receive a Message from a Message Queue e mq notify Notify Process that a Message is Available e mq setattr Set Message Queue Attributes e mq getattr Get Message Queue Attributes 16 2 Background 16 2 1 Theory Message queues are named objects that operate with readers and writers In addition a message queue is a priority queue of discrete messages POSIX message queues offer a certain basic amount of application access to and control over the message queue geometry that can be changed 16 2 2 Messages A message is a variable length buffer where information can be stored to support com munication The length of the message and the information stored in that message are user defined and can be actual data pointer s or empty There is a maximum acceptable length for a message that is associated with each message queue 16 2 3 Message Queues Message queues are named objects similar to the pipes of POSIX They are a means of communicating data between
9. ENOSYS The function sem open is not supported by this implementation DESCRIPTION The sem open function establishes a connection between a specified semaphore and a process After a call to sem open with a specified semaphore name a process can reference to semaphore by the associated name using the address returned by the call The oflag arguments listed above control the state of the semaphore by determining if the semaphore is created or accessed by a call to sem open 178 RTEMS POSIX API User s Guide NOTES Chapter 9 Semaphore Manager 179 9 4 4 sem close Close a named semaphore CALLING SEQUENCE int sem close sem t sem close d STATUS CODES EACCES The semaphore argument is not a valid semaphore descriptor ENOSYS The function sem close is not supported by this implementation DESCRIPTION The sem close function is used to indicate that the calling process is finished using the named semaphore indicated by sem The function sem close deallocates any system re sources that were previously allocated by a sem open system call If sem close completes successfully it returns a 1 otherwise a value of 1 is return and errno is set NOTES 180 RTEMS POSIX API User s Guide 9 4 5 sem unlink Unlink a semaphore CALLING SEQUENCE int sem unlink const char name 23 STATUS CODES EACCESS Permission is denied to unlink a semaphore ENAMETOOLONG The length of the strong name exceed NAME MAX
10. NONE Chapter 4 Files and Directories Manager 4 4 31 pathconf Gets configuration values for files CALLING SEQUENCE include lt unistd h gt int pathconf const char path int name 25 STATUS CODES EINVAL Invalid argument EACCES Permission to write the file is denied ENAMETOOLONG Length of a filename string exceeds POSIX NO TRUNC is in effect ENOENT A file or directory does not exist ENOTDIR A component of the specified path was not a directory whan a di rectory was expected DESCRIPTION pathconf gets a value for the configuration option name for the open file descriptor filedes The possible values for name are PC LINK MAX returns the maximum number of links to the file If filedes or path refer to a directory then the value applies to the whole directory The corresponding macro is POSIX LINK MAX PC_MAX_CANON returns the maximum length of a formatted input line where filedes or path must refer to a terminal The corresponding macro is POSIX MAX CANON PCMAX INPUT returns the maximum length of an input line where filedes or path must refer to a terminal The corresponding macro is POSIX MAX INPUT PC NAME MAX returns the maximum length of a filename in the directory path or filedes T he process is allowed to create The corresponding macro is POSIX NAME MAX PC PATH MAX returns the maximum length of a relative pathname when path or filedes is the current w
11. This routine returns the process times DESCRIPTION times stores the current process times in buf struct tms is as defined in usr include sys times h times returns the number of clock ticks that have elapsed since the systm has been up NOTES NONE Chapter 3 Process Environment Manager 3 4 17 getenv Get Environment Variables CALLING SEQUENCE int getenv STATUS CODES E The DESCRIPTION NOTES 53 54 RIEMS POSIX API User s Guide 3 4 18 setenv Set Environment Variables CALLING SEQUENCE int setenv 25 STATUS CODES E The DESCRIPTION NOTES Chapter 3 Process Environment Manager 3 4 19 ctermid Generate Terminal Pathname CALLING SEQUENCE int ctermid 25 STATUS CODES E The DESCRIPTION NOTES 55 56 RIEMS POSIX API User s Guide 3 4 20 ttyname Determine Terminal Device Name CALLING SEQUENCE int ttyname STATUS CODES E The DESCRIPTION NOTES Chapter 3 Process Environment Manager 3 4 21 ttyname r Reentrant Determine Terminal Device Name CALLING SEQUENCE int ttyname r 25 STATUS CODES E The DESCRIPTION NOTES 57 58 RIEMS POSIX API User s Guide 3 4 22 isatty Determine if File Descriptor is Terminal CALLING SEQUENCE int isatty STATUS CODES E The DESCRIPTION NOTES Chapter 3 Process Environment Manager 3 4 23 sysconf Get Configurable System Variables CALLING SEQUENCE int s
12. int policy LE STATUS CODES On error this routine returns 1 and sets errno to one of the following EINVAL The indicated policy is invalid DESCRIPTION This routine return the maximum numerically and logically highest priority for the spec ified policy NOTES NONE Chapter 13 Scheduler Manager 233 13 4 3 sched rr get interval Get Timeslicing Quantum CALLING SEQUENCE include lt sched h gt int sched_rr_get_interval pid_t pid struct timespec interval 25 STATUS CODES On error this routine returns 1 and sets errno to one of the following ESRCH The indicated process id is invalid EINVAL The specified interval pointer parameter is invalid DESCRIPTION This routine returns the length of the timeslice quantum in the interval parameter for the specified pid NOTES The pid argument should be 0 to indicate the calling process 234 RTEMS POSIX API User s Guide 13 4 4 sched yield Yield the Processor CALLING SEQUENCE include lt sched h gt int sched_yield void STATUS CODES This routine always returns zero to indicate success DESCRIPTION This call forces the calling thread to yield the processor to another thread Normally this is used to implement voluntary round robin task scheduling NOTES NONE Chapter 14 Clock Manager 235 14 Clock Manager 14 1 Introduction The clock manager The directives provided by the clock manager are e clock get
13. int setjmp STATUS CODES E The DESCRIPTION NOTES 151 152 RIEMS POSIX API User s Guide 7 4 12 longjmp Non Local Jump to a Saved Context CALLING SEQUENCE int longjmp STATUS CODES E The DESCRIPTION NOTES Chapter 7 Language Specific Services for the C Programming Language Manager 153 7 4 13 sigsetjmp Save Context with Signal Status for Non Local Goto CALLING SEQUENCE int sigsetjmp STATUS CODES E The DESCRIPTION NOTES 154 RIEMS POSIX API User s Guide 7 4 14 siglongjmp Non Local Jump with Signal Status to a Saved Context CALLING SEQUENCE int siglongjmp STATUS CODES E The DESCRIPTION NOTES Chapter 7 Language Specific Services for the C Programming Language Manager 155 7 4 15 tzset Initialize Time Conversion Information CALLING SEQUENCE int tzset 25 STATUS CODES E The DESCRIPTION NOTES 156 RIEMS POSIX API User s Guide 7 4 16 strtok r Reentrant Extract Token from String CALLING SEQUENCE int strtok r 25 STATUS CODES E The DESCRIPTION NOTES Chapter 7 Language Specific Services for the C Programming Language Manager 157 7 4 17 asctime r Reentrant struct tm to ASCII Time Conversion CALLING SEQUENCE int asctime r 25 STATUS CODES E The DESCRIPTION NOTES 158 RIEMS POSIX API User s Guide 7 4 18 ctime r Reentrant time t to ASCII Time Conversion CALLING SEQUENCE int ct
14. returns 0 upon successful completion If an error occurs the function returns 1 and sets errno to the appropriate error code NOTES Multiprocessing is not supported in this implementation Chapter 9 Semaphore Manager 185 9 4 10 sem getvalue Get the value of a semaphore CALLING SEQUENCE int sem getvalue sem t sem int sval 25 STATUS CODES EINVAL The sem argument does not refer to a valid semaphore ENOSYS The function sem getvalue is not supported by this implementation DESCRIPTION The sem getvalue functions sets the location referenced by the sval argument to the value of the semaphore without affecting the state of the semaphore The updated value represents a semaphore value that occurred at some point during the call but is not necessarily the actual value of the semaphore when it returns to the calling process If sem is locked the value returned by sem getvalue will be zero or a negative number whose absolute value is the number of processes waiting for the semaphore at some point during the call NOTES If the functions completes successfully it shall return a value of zero Otherwise it shall return a value of 1 and set errno to specify the error that occurred 186 RTEMS POSIX API User s Guide Chapter 10 Mutex Manager 187 10 Mutex Manager 10 1 Introduction The mutex manager implements the functionality required of the mutex manager as defined by POSIX 1003 1b 1996 This st
15. 143 asynchronous file synchronization 123 asynchronous read i cesses p e re an e 116 asynchronous write 000 eee IE A B broadcast a condition variable 213 C cancel asynchronous i o request 121 cancel execution of a thread 298 change access and or modification times of an Odee eae ne Ree AR IEEE 92 change memory protection esses 224 changes file mode emen 88 changes permissions of a file 89 changes the current working directory 69 changes the owner and or group of a file 91 check permissions for a file 87 close a message dee 256 close a named semaphore sssssuuuunuc 179 elos s a EE 105 compare thread de 287 create a directory thie de Ree RR 99 create a new file or rewrite an existing one To create EE 4 create a thread sie NENNEN banean 281 Create dn IUBE oo nIeLPLeBISLerfReLipP reg s 102 create cancellation point s lusus 301 create session and set process group id 49 creates a link toable 75 creates a symbolic link to a file 76 D delay process execution 00000 239 delay with high resolution 240 delete a directory oue matinaa inea 81 delete a signal from a signal set 18 destroy a condition variable SEN destroy a condition variable attribute set 207 destroy a
16. 16 2 JBackgro und iiis inserere deeded 4 38 249 16 2 1 Theory been eoe a t e ee 249 16 2 2 Messages sos Lent reete lari ah n e 249 16 2 3 Message Queues essere 249 16 2 4 Building a Message Queue Attribute Set 250 16 2 5 Notification of a Message on the Queue 250 16 2 6 POSIX Interpretation Issues 251 16 3 Operations 5090 Cbex DURS He ria ted Re 251 16 3 1 Opening or Creating a Message Queue 251 16 3 2 Closing a Message Queue 251 16 3 8 Removing a Message Queue e 251 16 3 4 Sending a Message to a Message Queue 252 16 3 5 Receiving a Message from a Message Queue 252 16 3 6 Notification of Receipt of a Message on an Empty UU Em 252 16 3 7 Setting the Attributes of a Message Queue 253 16 3 8 Getting the Attributes of a Message Queue 253 16 4 DirecUves uu c Ud aee da ace dd dh iret a 253 16 4 1 mq open Open a Message Queue 254 16 4 2 mq close Close a Message Queue 256 16 4 3 mq unlink Remove a Message Queue 257 16 4 4 mq send Send a Message to a Message Queue crc PE 258 16 4 5 mq receive Receive a Message from a Message TEE 259 16 4 6 mq notify Notify Process that a Message is Available eL ere ne ek eer Rae d 260 16 4 7 mq setattr Set Message Queue Attributes 261 16 4 8 mq getattr Get Message Queue Attributes 262 17 Thread Manager ees 263 rl Introduc
17. EINVAL EINVAL EDEADLK DESCRIPTION NOTES The specified mutex is invalid The mutex has the protocol attribute PTHREAD PRIO PROTECT and the priority of calling thread is higher than the current priority ceiling The current thread already owns the mutex of the Chapter 10 Mutex Manager 201 10 4 13 pthread mutex timedlock Lock a Mutex with Timeout CALLING SEQUENCE include lt pthread h gt include lt time h gt int pthread_mutex_timedlock pthread_mutex_t mutex const struct timespec timeout A7 STATUS CODES EINVAL EINVAL EINVAL EDEADLK DESCRIPTION NOTES The specified mutex is invalid The nanoseconds field of timeout is invalid The mutex has the protocol attribute of PTHREAD_PRIO_PROTECT and the priority of the calling thread is higher than the current priority ceiling The current thread already owns the mutex 202 RIEMS POSIX API User s Guide 10 4 14 pthread mutex unlock Unlock a Mutex CALLING SEQUENCE include lt pthread h gt int pthread_mutex_unlock pthread_mutex_t mutex 3 STATUS CODES EINVAL The specified mutex is invalid DESCRIPTION NOTES Chapter 10 Mutex Manager 10 4 15 pthread mutex setprioceiling Dynamically Set the Priority Ceiling CALLING SEQUENCE include lt pthread h gt int pthread mutex setprioceiling pthread mutex t mutex int prioceiling int oldceiling J5 STATUS CODES EINVAL The oldceiling
18. e exp Exponential e expm1 Exponential of x and 1 e fabs Absolute value magnitude e floor Floor and ceiling floor and ceil e fmod Floating point remainder modulo e frexp Split floating point number e gamma Logarithmic gamma function e hypot Distance from origin e ilogb Get exponent e infinity Floating infinity e isnan Check type of number e ldexp Load exponent e log Natural logarithms e log10 Base 10 logarithms e logip Logofl X e matherr Modifiable math error handler e modf Split fractional and integer parts e nan Floating Not a Number e nextafter Get next representable number 314 RTEMS POSIX API User s Guide e pow X to the power Y e remainder remainder of X divided by Y e scalbn scalbn e sin Sine or cosine sin and cos e sinh Hyperbolic sine e sqrt Positive square root e tan Tangent e tanh Hyperbolic tangent Chapter 22 Status of Implementation 315 22 Status of Implementation This chapter provides an overview of the status of the implementation of the POSIX API for RTEMS The POSIX 1003 10 Compliance Guide provides more detailed information regarding the implementation of each of the numerous functions constants and macros specified by the POSIX 1003 1b standard RTEMS supports many of the process and user group oriented services in a single user single process manner This means that although these services may be of limited usefulness or functio
19. include lt pthread h gt int pthread attr destroy pthread attr t attr 3 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized DESCRIPTION The pthread_attr_destroy routine is used to destroy a thread attributes object The behavior of using an attributes object after it is destroyed is implementation dependent NOTES NONE Chapter 17 Thread Manager 267 17 4 3 pthread_attr_setdetachstate Set Detach State CALLING SEQUENCE include lt pthread h gt int pthread attr setdetachstate pthread attr t attr int detachstate i STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The detachstate argument is invalid DESCRIPTION The pthread_attr_setdetachstate routine is used to value of the detachstate attribute This attribute controls whether the thread is created in a detached state The detachstate can be either PTHREAD_CREATE_DETACHED or PTHREAD_CREATE_JOINABLE The default value for all threads is PTHREAD_CREATE_JOINABLE NOTES If a thread is in a detached state then the use of the ID with the pthread_detach or pthread_join routines is an error 268 RIEMS POSIX API User s Guide 17 4 4 pthread attr getdetachstate Get Detach State CALLING SEQUENCE include lt pthread h gt int pthread_attr_getdetachstate const pthread attr t attr int detachstate 25 STATUS
20. write or execute permission for the file is not required but all directories listed in path must be searchable The stat function obtains information about the named file and writes it to the area pointed to by buf NOTES NONE Chapter 4 Files and Directories Manager 85 4 4 21 fstat Gets file status CALLING SEQUENCE include lt sys types h gt include sys stat h int fstat int fildes struct stat buf E STATUS CODES EBADF Invalid file descriptor DESCRIPTION The fstat function obtains information about the file associated with fildes and writes it to the area pointed to by the buf argument NOTES If the filesystem object referred to by fildes is a link then the information returned in buf refers to the destination of that link This is in contrast to lstat which does not follow the link 86 RIEMS POSIX API User s Guide 4 4 22 lstat Gets file status CALLING SEQUENCE include lt sys types h gt include sys stat h int lstat int fildes struct stat buf Ji STATUS CODES EBADF Invalid file descriptor DESCRIPTION The 1stat function obtains information about the file associated with fildes and writes it to the area pointed to by the buf argument NOTES If the filesystem object referred to by fildes is a link then the information returned in buf refers to the link itself This is in contrast to fstat which follows the link The 1stat O routine is defined
21. 3 op edel E RH Penida maaan 280 17 4 17 pthread create Create a Thread 281 17 4 18 pthread exit Terminate the Current Thread DOS 283 17 4 19 pthread detach Detach a Thread 284 17 4 20 pthread_join Wait for Thread Termination 285 17 4 21 pthread self Get Thread ID 286 17 4 22 pthread_equal Compare Thread IDs 287 17 4 23 pthread_once Dynamic Package Initialization plv MUI Lu EE 288 17 4 24 pthread_setschedparam Set Thread Scheduling Parameters ANNE EEN her n e RR p a ee RURAL e 289 17 4 25 pthread getschedparam Get Thread Scheduling Paramotis od aus Senecio n tob ene EE 290 18 Key Manager Zea s gegen do o y E 291 18 1 Introduction ehe 291 18 2 Background br UR b EHE E 291 18 3 Operations aca estes ae ea debeo Robien Rees ads 291 18 4 Directive 291 18 4 1 pthread key create Create Thread Specific Data cru 292 18 4 2 pthread key delete Delete Thread Specific Data Gy eege aed tebe Eeer dq uu Ss 293 18 4 3 pthread setspecific Set Thread Specific Key Value PPP 294 xi xii RIEMS POSIX API User s Guide 18 4 4 pthread getspecific Get Thread Specific Key Value rr 295 19 Thread Cancellation Manager 297 19 1 Introduction net eens 297 19 2 Background ging im edere dat dae A 297 19 3 Operations ose ret trente Sa de Dee ene sae aes 297 19 4 Directives soi ics ENT hm tA Rt n AER A 297 1
22. 4 20 aio fsync Asynchronous File Synchronization CALLING SEQUENCE int aio fsync 3 STATUS CODES E The DESCRIPTION NOTES This routine is not currently supported by RTEMS but could be in a future version 123 124 RTEMS POSIX API User s Guide Chapter 6 Device and Class Specific Functions Manager 125 6 Device and Class Specific Functions Manager 6 1 Introduction The device and class specific functions manager is The directives provided by the device and class specific functions manager are e cfgetispeed Reads terminal input baud rate e cfgetospeed Reads terminal output baud rate e cfsetispeed Sets terminal input baud rate e cfsetospeed Set terminal output baud rate e tcgetattr Gets terminal attributes e tcsetattr Set terminal attributes e tcsendbreak Sends a break to a terminal e tcdrain Waits for all output to be transmitted to the terminal e tcflush Discards terminal data e tcflow Suspends restarts terminal output e tcgetpgrp Gets foreground process group ID e tcsetpgrp Sets foreground process group ID 6 2 Background There is currently no text in this section 6 3 Operations There is currently no text in this section 6 4 Directives This section details the device and class specific functions manager s directives A sub section is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status
23. API User s Guide 8 System Databases Manager 163 ST Introduction ciae zoe bea xS a 163 8 2 Background 2 dada geet Rr IUD EA eid 163 Sid Operatlohs scenseibene veneen peer SE ce p eoo AE 163 8 amp 4 Directives saos tour pates ti ra PU e n d 163 8 4 1 getgrgid Get Group File Entry for ID 164 8 4 2 getgrgid r Reentrant Get Group File Entry 165 8 4 8 getgrnam Get Group File Entry for Name 166 8 4 4 getgrnam r Reentrant Get Group File Entry for INanmieu 2a id dedere bre s Dl eoe E edit etes 167 8 4 5 getpwuid Get Password File Entry for UID 168 8 4 6 getpwuid_r Reentrant Get Password File Entry for MDT sth de tet ash a ths ade In diac eee heed Oe ea died Ss 169 8 4 7 getpwnam Password File Entry for Name 170 8 4 8 getpwnam r Reentrant Get Password File Entry for Name deserere rede thee eee rede e 171 9 Semaphore Manager 173 9 1 Introduction 0 00 hh 173 9 2 Backeroumnd cee nn e 9 2 1 Clees cerem anea eeh geet aedi d ped A 173 9 2 2 sem t Structure eretara akaa E a 173 9 2 3 Building a Semaphore Attribute Set 173 93 Operations uides meena an eb ei ood a ras 174 9 3 1 Using as a Binary Semaphore ssaaaaaesa 174 9 4 Directive 174 9 4 1 seminit Initialize an unnamed semaphore 175 9 4 2 sem destroy Destroy an unnamed semaphore 176 9 4 3 sem open Open a named semaphore D 9 4 4 sem close
24. Asynchronous I O Request e aio_fsync Asynchronous File Synchronization 5 2 Background There is currently no text in this section 5 3 Operations There is currently no text in this section 5 4 Directives This section details the input and output primitives manager s directives A subsection is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status codes 102 RIEMS POSIX API User s Guide 5 4 1 pipe Create an Inter Process Channel CALLING SEQUENCE int pipe STATUS CODES E The DESCRIPTION NOTES This routine is not currently supported by RTEMS but could be in a future version Chapter 5 Input and Output Primitives Manager 103 5 4 2 dup Duplicates an open file descriptor CALLING SEQUENCE include lt unistd h gt int dup int fildes Ji STATUS CODES EBADF Invalid file descriptor EINTR Function was interrupted by a signal EMFILE The process already has the maximum number of file descriptors open and tried to open a new one DESCRIPTION The dup function returns the lowest numbered available file descriptor This new desciptor refers to the same open file as the original descriptor and shares any locks NOTES NONE 104 RIEMS POSIX API User s Guide 5 4 3 dup2 Duplicates an open file descriptor CALLING SEQUENCE include lt unistd h gt int dup2 int fildes int fildes2 25 STATUS CODES EBAD
25. CALLING SEQUENCE include lt pthread h gt int pthread mutexattr getprotocol pthread mutexattr t attr int protocol 5 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The protocol pointer argument is invalid DESCRIPTION The pthread_mutexattr_getprotocol routine is used to obtain the value of the protocol attribute This attribute controls the order in which threads waiting on this mutex will receive it NOTES NONE Chapter 10 Mutex Manager 193 10 4 5 pthread mutexattr setprioceiling Set the Priority Ceiling CALLING SEQUENCE include lt pthread h gt int pthread mutexattr setprioceiling pthread mutexattr t attr int prioceiling 5 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The prioceiling argument is invalid DESCRIPTION The pthread_mutexattr_setprioceiling routine is used to set value of the prioceiling attribute This attribute specifies the priority that is the ceiling for threads obtaining this mutex Any task obtaining this mutex may not be of greater priority that the ceiling If it is of lower priority then its priority will be elevated to prioceiling NOTES NONE 194 RIEMS POSIX API User s Guide 10 4 6 pthread mutexattr getprioceiling Get the Priority Ceiling CALLING SEQUENCE include lt pthread h gt int pthread mutexattr get
26. CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The detatchstate pointer argument is invalid DESCRIPTION The pthread_attr_getdetachstate routine is used to obtain the current value of the detachstate attribute as specified by the attr thread attribute object NOTES NONE Chapter 17 Thread Manager 269 17 4 5 pthread attr setstacksize Set Thread Stack Size CALLING SEQUENCE include lt pthread h gt int pthread attr setstacksize pthread attr t attr size t stacksize 5 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized DESCRIPTION The pthread_attr_setstacksize routine is used to set the stacksize attribute in the attr thread attribute object NOTES As required by POSIX RTEMS defines the feature symbol _POSIX_THREAD_ATTR_ STACKSIZE to indicate that this routine is supported If the specified stacksize is below the minimum required for this CPU PTHREAD_STACK_MIN then the stacksize will be set to the minimum for this CPU 270 RTEMS POSIX API User s Guide 17 4 6 pthread_attr_getstacksize Get Thread Stack Size CALLING SEQUENCE include lt pthread h gt int pthread attr getstacksize const pthread attr t attr size t stacksize 25 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The stacksize poin
27. Get Maximum Priority EE 232 13 4 3 sched rr get interval Get Timeslicing Quantum rer 233 13 4 4 sched yield Yield the Processor 234 14 Clock Mlanager 2 9 Rs 235 14 1 Introduction re ere e ed eee EES 235 14 22 Background dax ve geg EE eer eR UE ER 235 14 3 Operations 0 0 parea daka aei hn 235 144 Directives 0 0 cc ene nee teen ee nenes 235 14 4 1 clock_gettime Obtain Time of Day 235 14 4 2 clock settime Set Time of Day 297 14 4 3 clock getres Get Clock Resolution 238 14 4 4 sleep Delay Process Execution 239 14 4 5 nanosleep Delay with High Resolution 240 14 4 0 gettimeofday Get the Time of Day 241 14 4 7 time Get time in seconds 242 15 Timer JEE re oh xi On eos 243 15 Introduction e eens 243 15 2 Background eda bet ere eR eee arts 243 15 3 OperatioliSa 2227 AE ee hebraice da heed eae 243 15 4 System Calls eere ete ete Ra NEE oe 243 15 4 1 timer create Create a Per Process Timer 244 15 4 2 timer delete Delete a Per Process Timer 245 15 4 3 timer settime Set Next Timer Expiration 246 15 4 4 timer gettime Get Time Remaining on Timer DEEPER EREE KEE TEE AER Meee ees 247 15 4 5 timer getoverrun Get Timer Overrun Count 248 x RTEMS POSIX API User s Guide 16 Message Passing Manager 249 l6 L Tntrod ctionss szos saali ma xod n NC 249
28. Set 21 2 4 0 sigaction Examine and Change Signal Action 22 2 4 7 pthread kill Send a Signal to a Thread 23 2 4 8 sigprocmask Examine and Change Process Blocked NEE 24 2 4 9 pthread sigmask Examine and Change Thread Blocked ienals eese 25 2 4 10 kill Send a Signal to a Process 26 2 4 11 sigpending Examine Pending Signals St 2 4 12 sigsuspend Wait for a Signal 28 2 4 13 pause Suspend Process Execution 29 2 4 14 sigwait Synchronously Accept a Signal 30 RTEMS POSIX API User s Guide ii 2 4 15 sigwaitinfo Synchronously Accept a Signal 31 2 4 16 sigtimedwait Synchronously Accept a Signal with AULT CO PPP 32 2 4 17 sigqueue Queue a Signal to a Process 33 2 4 18 alarm Schedule Alarm 4 34 3 Process Environment Manager 35 34 Introd ctlon iecore s dan eae n RR A AEN 29 3 2 Background esed dE rr Eee racks eae Rn 35 3 9 ODerabloDB Ee LG agas teg edu ha dee Qu dod de 35 ov DpeeUlVeSua uus nore drag Ee E SUCRE de 36 3 4 1 getpid Get Process D 3T 3 4 2 getppid Get Parent Process ID 38 3 4 3 getuid Get User ID 39 3 4 4 geteuid Get Effective User ID 40 3 4 5 getgid Get Real Group ID 41 3 4 6 getegid Get Effective Group ID 42 3 4 7 setuid Set User Ui 43 3 4 8 setgid Set Group in 44 3 4 9 getgroups Get Suppl
29. a specified length e truncate Truncate a file to a specified length e pathconf Gets configuration values for files e fpathconf Get configuration values for files e mknod Create a directory 62 RTEMS POSIX API User s Guide 4 2 Background 4 2 1 Path Name Evaluation A pathname is a string that consists of no more than PATH MAX bytes including the ter minating null character A pathname has an optional beginning slash followed by zero or more filenames separated by slashes If the pathname refers to a directory it may also have one or more trailing slashes Multiple successive slahes are considered to be the same as one slash POSIX allows a pathname that begins with precisely two successive slashes to be interpreted in an implementation defined manner RTEMS does not currently recognize this as a special condition Any number of successive slashes is treated the same as a single slash POSIX requires that an implementation treat more than two leading slashes as a single slash 4 3 Operations There is currently no text in this section 4 4 Directives This section details the files and directories manager s directives A subsection is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status codes Chapter 4 Files and Directories Manager 63 4 4 1 opendir Open a Directory CALLING SEQUENCE include lt sys types h gt include lt dirent h gt i
30. attr int pshared 25 STATUS CODES EINVAL Invalid argument passed DESCRIPTION NOTES 209 210 RIEMS POSIX API User s Guide 11 4 5 pthread cond init Initialize a Condition Variable CALLING SEQUENCE include lt pthread h gt int pthread cond init pthread cond t cond const pthread condattr t attr 25 STATUS CODES EAGAIN The system lacked a resource other than memory necessary to create the initialize the condition variable object ENOMEM Insufficient memory is available to initialize the condition variable object EBUSY The specified condition variable has already been initialized EINVAL The specified attribute value is invalid DESCRIPTION NOTES Chapter 11 Condition Variable Manager 11 4 6 pthread cond destroy Destroy a Condition Variable CALLING SEQUENCE include lt pthread h gt int pthread cond destroy pthread cond t cond 3 STATUS CODES EINVAL The specified condition variable is invalid EBUSY The specified condition variable is currently in use DESCRIPTION NOTES 211 212 RIEMS POSIX API User s Guide 11 4 7 pthread cond signal Signal a Condition Variable CALLING SEQUENCE include lt pthread h gt int pthread_cond_signal pthread cond t cond 3 STATUS CODES EINVAL The specified condition variable is not valid DESCRIPTION NOTES This routine should not be invoked from a handler from an asynchronous signal handler or an interru
31. be used O APPEND O CREAT O EXCL O NOCTTY O_NONBLOCK O TRUNC Set the file offset to the end of file prior to each write If the file does not exist allow it to be created This flag indicates that the mode argument is present in the call to open This flag may be used only if O CREAT is also set It causes the call to open to fail if the file already exists If path identifies a terminal this flag prevents that teminal from becoming the controlling terminal for thi9s process See Chapter 8 for a description of terminal I O Do no wait for the device or file to be ready or available After the file is open the read and write calls return immediately If the process would be delayed in the read or write opermation 1 is returned and errno is set to EAGAIN instead of blocking the caller This flag should be used only on ordinary files opened for writing It causes the file to be tuncated to zero length Upon successful completion open returns a non negative file descriptor NOTES NONE Chapter 4 Files and Directories Manager 73 4 4 10 creat Create a new file or rewrite an existing one CALLING SEQUENCE include lt sys types h gt include lt sys stat h gt include fcntl h int creat const char path mode_t 25 mode STATUS CODES EEXIST EISDIR ETXTBSY EFAULT EACCES ENAMETOOLONG ENOENT ENOTDIR EMFILE ENFILE ENOMEM EROFS DESCRIPTION path already exis
32. by BSD 4 3 and SVR4 and not included in POSIX 1003 1b 1996 Chapter 4 Files and Directories Manager 87 4 4 23 access Check permissions for a file CALLING SEQUENCE include lt unistd h gt int access const char pathname int mode STATUS CODES EACCES The requested access would be denied either to the file itself or one of the directories in pathname EFAULT pathname points outside your accessible address space EINVAL Mode was incorrectly specified ENAMETOOLONG pathname is too long ENOENT A directory component in pathname would have been accessible but does not exist or was a dangling symbolic link ENOTDIR A component used as a directory in pathname is not in fact a di rectory ENOMEM Insufficient kernel memory was available DESCRIPTION Access checks whether the process would be allowed to read write or test for existence of the file or other file system object whose name is pathname If pathname is a symbolic link permissions of the file referred by this symbolic link are tested Mode is a mask consisting of one or more of RLOK W_OK X_OK and F_OK NOTES NONE 88 RIEMS POSIX API User s Guide 4 4 24 chmod Changes file mode CALLING SEQUENCE include lt sys types h gt include lt sys stat h gt int chmod const char path mode_t 5 mode STATUS CODES EACCES ENAMETOOLONG ENOENT ENOTDIR EPERM EROFS DESCRIPTION Search permission is denied f
33. call If the call is unsuccessful then the function returns 1 and sets errno to the appropriate error code NOTES Multiprocessing is not supported in this implementation 182 RIEMS POSIX API User s Guide 9 4 7 sem trywait Non blocking Wait on a Semaphore CALLING SEQUENCE int sem trywait sem t sem 23 STATUS CODES EAGAIN The semaphore is not available i e the semaphore value is zero so the semaphore could not be locked EINVAL The sem argument does not refewr to a valid semaphore DESCRIPTION This function attempts to lock a semaphore specified by sem If the semaphore is available then the semaphore is locked i e the semaphore value is decremented and the function returns a value of 0 The semaphore remains locked until released by a sem post call If the semaphore is unavailable i e the semaphore value is zero then the function will return a value of 1 immediately and set errno to EAGAIN If the call is unsuccessful then the function returns 1 and sets errno to the appropriate error code NOTES Multiprocessing is not supported in this implementation Chapter 9 Semaphore Manager 183 9 4 8 sem timedwait Wait on a Semaphore for a Specified Time CALLING SEQUENCE int sem timedwait sem t sem const struct timespec timeout 25 STATUS CODES EAGAIN The semaphore is not available i e the semaphore value is zero so the semaphore could not be locked EINVAL The sem
34. codes 126 RIEMS POSIX API User s Guide 6 4 1 cfgetispeed Reads terminal input baud rate CALLING SEQUENCE include lt termios h gt int cfgetispeed const struct termios p J STATUS CODES The cfgetispeed function returns a code for baud rate DESCRIPTION The cfsetispeed function stores a code for the terminal speed stored in a struct termios The codes are defined in lt termios h gt by the macros BO B50 B75 B110 B134 B150 B200 B300 B600 B1200 B1800 B2400 B4800 B9600 B19200 and B38400 The cfsetispeed function does not do anything to the hardware It merely stores a value for use by tcsetattr NOTES Baud rates are defined by symbols such as B110 B1200 B2400 The actual number returned for any given speed may change from system to system Chapter 6 Device and Class Specific Functions Manager 127 6 4 2 cfgetospeed Reads terminal output baud rate CALLING SEQUENCE include lt termios h gt int cfgetospeed const struct termios p J STATUS CODES The cfgetospeed function returns the termios code for the baud rate DESCRIPTION The cfgetospeed function returns a code for the terminal speed stored in a struct termios The codes are defined in termios h by the macros BO B50 B75 B110 B134 B150 B200 B300 B600 B1200 B1800 B2400 B4800 B9600 B19200 and B38400 The cfgetospeed function does not do anything to the hardware It merely returns th
35. const pthread attr t attr int contentionscope 25 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The contentionscope pointer argument is invalid DESCRIPTION The pthread_attr_getscope routine is used to obtain the value of the contention scope field in the thread attributes object attr The current value is returned in contentionscope NOTES As required by POSIX RTEMS defines the feature symbol POSIX THREAD PRIORITY SCHEDULING to indicate that the family of routines to which this routine belongs is sup ported Chapter 17 Thread Manager 275 17 4 11 pthread_attr_setinheritsched Set Inherit Scheduler Flag CALLING SEQUENCE include lt pthread h gt int pthread_attr_setinheritsched pthread_attr_t attr int inheritsched 5 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The specified scheduler inheritance argument is invalid DESCRIPTION The pthread_attr_setinheritsched routine is used to set the inherit scheduler field in the thread attribute object attr to the value specified by inheritsched The contentionscope must be either PTHREAD_INHERIT_SCHED to indicate that the thread is to inherit the scheduling policy and parameters fromthe creating thread or PTHREAD_ EXPLICIT_SCHED to indicate that the scheduling policy and parameters for this thread are to be set
36. created file NOTES NONE The cmask argument should have only permission bits set All other bits should be zero In a system which supports multiple processes the file creation mask is inherited across fork and exec calls This makes it possible to alter the default permission bits of created files RTEMS does not support multiple processes so this behavior is not possible Chapter 4 Files and Directories Manager 15 4 4 12 link Creates a link to a file CALLING SEQUENCE include lt unistd h gt int link const char existing const char new 25 STATUS CODES EACCES Search permission is denied for a directory in a file s path prefix EEXIST The named file already exists EMLINK The number of links would exceed LINK MAX ENAMETOOLONG Length of a filename string exceeds PATH MAX and POSIX NO TRUNC is in effect ENOENT A file or directory does not exist ENOSPC No space left on disk ENOTDIR A component of the specified pathname was not a directory when a directory was expected EPERM Operation is not permitted Process does not have the appropriate priviledges or permissions to perform the requested operations EROFS Read only file system EXDEV Attempt to link a file to another file system DESCRIPTION The link function atomically creates a new link for an existing file and increments the link count for the file If the link function fails no directories are modified The existing arg
37. int sigaction int sig const struct sigaction act struct sigaction oact A7 STATUS CODES EINVAL Invalid argument passed ENOTSUP Realtime Signals Extension option not supported DESCRIPTION This function is used to change the action taken by a process on receipt of the specfic signal sig The new action is specified by act and the previous action is returned via oact NOTES The signal number cannot be SIGKILL Chapter 2 Signal Manager 23 2 4 7 pthread kill Send a Signal to a Thread CALLING SEQUENCE include signal h int pthread kill pthread t thread int sig 5 STATUS CODES ESRCH The thread indicated by the parameter thread is invalid EINVAL Invalid argument passed DESCRIPTION This functions sends the specified signal sig to thread NOTES NONE 24 RIEMS POSIX API User s Guide 2 4 8 sigprocmask Examine and Change Process Blocked Signals CALLING SEQUENCE include signal h int sigprocmask int how const sigset t set sigset t oset 23 STATUS CODES EINVAL Invalid argument passed DESCRIPTION This function is used to alter the set of currently blocked signals on a process wide basis A blocked signal will not be received by the process The behavior of this function is dependent on the value of how which may be one of the following SIG_BLOCK The set of blocked signals is set to the union of set and those signals currently blocked SIG_UNBLOCK The si
38. is NULL all entries are selected NOTES The routine is implemented in Cygnus newlib Chapter 4 Files and Directories Manager 67 4 4 5 telldir Return current location in directory stream CALLING SEQUENCE include dirent h off t telldir DIR dir 25 STATUS CODES EBADF Invalid directory stream descriptor dir DESCRIPTION The telldir function returns the current location associated with the directory stream dir NOTES The routine is implemented in Cygnus newlib 68 RIEMS POSIX API User s Guide 4 4 6 closedir Ends directory read operation CALLING SEQUENCE include lt sys types h gt include lt dirent h gt int closedir DIR dirp 3 STATUS CODES EBADF Invalid file descriptor DESCRIPTION The directory stream associated with dirp is closed The value in dirp may not be usable after a call to closedir NOTES NONE The argument to closedir must be a pointer returned by opendir If it is not the results are not portable and most likely unpleasant The routine is implemented in Cygnus newlib Chapter 4 Files and Directories Manager 69 4 4 7 chdir Changes the current working directory CALLING SEQUENCE include lt unistd h gt int chdir const char path 3 STATUS CODES EACCES Search permission is denied for a directory in a file s path prefix ENAMETOOLONG Length of a filename string exceeds PATH MAX and POSIX NO TRUNC is in effect E
39. numbers of the newly created device special file otherwise it is ignored The newly created node will be owned by the effective uid of the process If the directory containing the node has the set group id bit set or if the filesystem is mounted with BSD group semantics the new node will inherit the group ownership from its parent directory otherwise it will be owned by the effective gid of the process NOTES NONE Chapter 5 Input and Output Primitives Manager 101 5 Input and Output Primitives Manager 5 1 Introduction The input and output primitives manager is The directives provided by the input and output primitives manager are e pipe Create an Inter Process Channel e dup Duplicates an open file descriptor e dup2 Duplicates an open file descriptor e close Closes a file e read Reads from a file e write Writes to a file e fcntl Manipulates an open file descriptor e lseek Reposition read write file offset e fsync Synchronize file complete in core state with that on disk e fdatasync Synchronize file in core data with that on disk e mount Mount a file system e unmount Unmount file systems e aio_read Asynchronous Read e aio_write Asynchronous Write e lio_listio List Directed I O e aio_error Retrieve Error Status of Asynchronous I O Operation e aio_return Retrieve Return Status Asynchronous I O Operation e aio_cancel Cancel Asynchronous I O Request e aio_suspend Wait for
40. of routines to which this routine belongs is sup ported Chapter 17 Thread Manager 281 17 4 17 pthread create Create a Thread CALLING SEQUENCE include lt pthread h gt int pthread_create pthread_t thread const pthread attr t attr void void E start routine void zi arg STATUS CODES EINVAL EINVAL EINVAL ENOTSUP EINVAL EINVAL EINVAL EINVAL EAGAIN EINVAL DESCRIPTION The attribute set is not initialized The user specified a stack address and the size of the area was not large enough to meet this processor s minimum stack requirements The specified scheduler inheritance policy was invalid The specified contention scope was PTHREAD SCOPE PROCESS The specified thread priority was invalid The specified scheduling policy was invalid The scheduling policy was SCHED SPORADIC and the specified replenishment period is less than the initial budget The scheduling policy was SCHED SPORADIC and the specified low priority is invalid The system lacked the necessary resources to create another thread or the self imposed limit on the total number of threads in a process PTHREAD THREAD MAX would be exceeded Invalid argument passed The pthread create routine is used to create a new thread with the attributes specified by attr If the attr argument is NULL then the default attribute set will be used Modification of the contents of attr after this thread is creat
41. pointed to by msg ptr whose length is of msg_len The msg_len must be at least equal to the mq msgsize attribute of the message queue The blocking behavior of the message queue is set by O NONBLOCK at mq open or by setting O NONBLOCK in mq flags in a call to mq setattr If this is a blocking queue the process blocks and waits on an empty queue If this a non blocking queue the process does not block Upon successful completion mq receive returns the length of the selected message in bytes and the message is removed from the queue Otherwise no message is removed from the queue the function returns a value of 1 and sets errno to indicate the error NOTES If the size of the buffer in bytes specified by the msg_len argument is less than the mq msgsize attribute of the message queue the function fails and returns an error 260 RIEMS POSIX API User s Guide 16 4 6 mq notify Notify Process that a Message is Available CALLING SEQUENCE include lt mqueue h gt int mq notify mod t mqdes const struct sigevent notification 25 STATUS CODES EBADF T he descriptor does not refer to a valid message queue EBUSY A notification request is already attached to the queue DESCRIPTION If the argument notification is not NULL this function registers the calling process to be notified of message arrival at an empty message queue associated with the specified message queue descriptor mqdes Every message queue has th
42. pthread mutex timedlock 201 pthread mutex trylock 200 pthread mutex Unlock rercrssciisisriitas 202 pthread mutexattr destroy 190 pthread mutexattr getprioceiling 194 pthread mutexattr getprotocol 192 pthread mutexattr getpshared 196 pthread mutexattr init 189 pthread mutexattr setprioceiling 193 pthread mutexattr setprotocol 191 pthread mutexattr setpshared 195 pthread on68 od e e ES 288 pthread sgl irora eR ber ebore 286 pthread_setcancelstate 299 Command and Variable Index pthread setcanceltype pthread setschedparam pthread sigmask ANER RE eva ES pthread testcanc l 22 m ege p tc cunlocked plv SR UBI putchar unlocked ees ade domes Scandir i diee veu ES bee dee kee Sched get priority max sched get priority min i 6d rne Sched rr get interval sched yield lolo Sate RIRs eee dg Sem clOB6 i 0 axe v LA Gaeta reds uini sem destroy 220690 1 amp Gb bebe Res sem getval eec inr at ERATIS Sm IUL EE sem timedW it pcci redit deren ka ae bid ch ES SOMUTTYWALG EEEEEEEEEEEEE Sem CIE ege dee S m vart EE BOeLOnV s leserc nre Rack xe qe x P E NY ess SOC LEE Pace ERA Setlocale 3 eek e Pe RM peces Shm Open ice lee beheben mE Sim unlink pessit vwd
43. section details the timer manager s services A subsection is dedicated to each of this manager s services and describes the calling sequence related constants usage and status codes 244 RIEMS POSIX API User s Guide 15 4 1 timer create Create a Per Process Timer CALLING SEQUENCE include time bz include signal h int timer create clockid t clock id struct sigevent evp timer t timerid 25 STATUS CODES EXXX DESCRIPTION NOTES Chapter 15 Timer Manager 15 4 2 timer delete Delete a Per Process Timer CALLING SEQUENCE include lt time h gt int timer_delete timer_t timerid A STATUS CODES EXXX DESCRIPTION NOTES 245 246 RIEMS POSIX API User s Guide 15 4 3 timer settime Set Next Timer Expiration CALLING SEQUENCE include lt time h gt int timer settime timer t timerid int flags const struct itimerspec value struct itimerspec ovalue 25 STATUS CODES EXXX DESCRIPTION NOTES Chapter 15 Timer Manager 247 15 4 4 timer_gettime Get Time Remaining on Timer CALLING SEQUENCE include lt time h gt int timer_gettime timer_t timerid struct itimerspec value 3 STATUS CODES EXXX DESCRIPTION NOTES 248 RIEMS POSIX API User s Guide 15 4 5 timer getoverrun Get Timer Overrun Count CALLING SEQUENCE include lt time h gt int timer getoverrun timer t timerid A STATUS CODES EXXX
44. stream or file fputs Write a character string in a file or stream fread Read array elements from a file freopen Open a file using an existing file descriptor fseek Set file position fsetpos Restore position of a stream or file ftell Return position in a stream or file fwrite Write array elements from memory to a file or stream getc Get a character from a file or stream macro getchar Get a character from standard input macro Chapter 20 Services Provided by C Library libc 307 gets Get character string from standard input obsolete iprintf Write formatted output integer only mktemp Generate unused file name perror Print an error message on standard error putc Write a character on a stream or file macro putchar Write a character on standard output macro puts Write a character string on standard output remove Delete a file s name rename Rename a file rewind Reinitialize a file or stream setbuf Specify full buffering for a file or stream setvbuf Specify buffering for a file or stream siprintf Write formatted output integer only printf Write formatted output scanf Scan and format input tmpfile Create a temporary file tmpnam Generate name for a temporary file vprintf Format variable argument list Strings and Memory string h bcmp Compare two memory areas bcopy Copy memory regions bzero Initialize memory to zero index Search for character in str
45. to arithmetic representation strftime Flexible calendar time formatter time Get current calendar time as single number Locale locale h setlocale Select or query locale Reentrant Versions of Functions Equivalent for errno variable e errno_r XXX Locale functions Chapter 20 Services Provided by C Library libc e localeconv_r XXX e setlocale r XXX e Equivalents for stdio variables e stdin r XXX e stdout r XXX e stderr r XXX e Stdio functions e fdopen r XXX e perror r XXX e tempnam r XXX e fopen r XXX e putchar r XXX e tmpnam r XXX e getchar r XXX e puts r XXX e tmpfile r XXX e gets r XXX e remove r XXX e vfprintf r XXX e iprintf r XXX e rename r XXX e vsnprintf r XXX e mkstemp r XXX e snprintf r XXX e vsprintf r XXX e mktemp t XXX e sprintf_r XXX e Signal functions e init signal r XXX e signal r XXX e killr XXX e sigtramp r XXX e raise r XXX e Stdlib functions e calloc r XXX e nblen r XXX e srand r XXX e dtoa r XXX e mbstowcs r XXX 309 310 strtod r XXX free r XXX mbtowc r XXX strtol r XXX getenv r XXX memalign r XXX strtoul r XXX mallinfo r XXX mstats r XXX system r XXX malloc r XXX rand r XXX wcstombs r XXX malloc r XXX realloc r XXX wctomb r XXX malloc stats r XXX setenv r XXX e String functions strtok r XXX e System functions close r XXX link r XXX unlink r XXX execve r XXX lseek r XXX wa
46. while POSIX NO TRUNC is in effect ENOENT The name of the semaphore does not exist ENOSPC There is insufficient space for the creation of a new named semaphore ENOSYS The function sem_unlink is not supported by this implementation DESCRIPTION The sem unlink function shall remove the semaphore name by the string name If a process is currently accessing the name semaphore the sem_unlink command has no effect If one or more processes have the semaphore open when the sem unlink function is called the destruction of semaphores shall be postponed until all reference to semaphore are destroyed by calls to sem close exit or exec After all references have been destroyed it returns immediately If the termination is successful the function shall return 0 Otherwise a 1 is returned and the errno is set NOTES Chapter 9 Semaphore Manager 181 9 4 6 sem wait Wait on a Semaphore CALLING SEQUENCE int sem wait sem t sem 23 STATUS CODES EINVAL The sem argument does not refer to a valid semaphore DESCRIPTION This function attempts to lock a semaphore specified by sem If the semaphore is available then the semaphore is locked i e the semaphore value is decremented If the semaphore is unavailable i e the semaphore value is zero then the function will block until the semaphore becomes available It will then successfully lock the semaphore The semaphore remains locked until released by a sem post O
47. 5 STATUS CODES EINVAL The attribute set is not initialized EINVAL The specified protocol is invalid EAGAIN The system lacked the necessary resources to initialize another mu tex ENOMEM Insufficient memory exists to initialize the mutex EBUSY Attempted to reinialize the object reference by mutex a previously initialized but not yet destroyed DESCRIPTION NOTES 198 RTEMS POSIX API User s Guide 10 4 10 pthread mutex destroy Destroy a Mutex CALLING SEQUENCE include lt pthread h gt int pthread mutex destroy pthread mutex t mutex 3 STATUS CODES EINVAL The specified mutex is invalid EBUSY Attempted to destroy the object reference by mutex while it is locked or referenced by another thread DESCRIPTION NOTES Chapter 10 Mutex Manager 199 10 4 11 pthread mutex lock Lock a Mutex CALLING SEQUENCE include lt pthread h gt int pthread_mutex_lock pthread_mutex_t mutex 25 STATUS CODES EINVAL EINVAL EDEADLK DESCRIPTION NOTES The specified mutex is invalid The mutex has the protocol attribute of PTHREAD PRIO PROTECT and the priority of the calling thread is higher than the current priority ceiling The current thread already owns the mutex 200 RIEMS POSIX API User s Guide 10 4 12 pthread mutex trylock Poll to Lock a Mutex CALLING SEQUENCE include lt pthread h gt int pthread_mutex_trylock pthread_mutex_t mutex 25 STATUS CODES
48. 8 Y yield the processor 00 000 234 324 RTEMS POSIX API User s Guide Table of Contents 1 Process Creation and Execution Manager 3 l l Introduction sesasi ee not dae o ies See 3 1 2 Back ero gs oco dett t ie pelo c Ru 3 l3 Operations eek er Ra ROER RR EES EE MARY A 3 LA Directives 2 eek arte Deeded hia eet ERU E a cedi ead 3 1 4 1 fork Create a Process osios pennie nocami tangia 4 1 4 2 execl Execute ab 5 1 4 8 execv Execute a be 6 1 4 4 execle Execute a File annnnnannnnannn nnana 7 1 4 5 execve Execute a bie 8 1 4 6 execlp Execute ale 9 1 4 7 execvp Execute a be 10 1 4 8 pthread_atfork Register Fork Handlers 11 1 4 9 wait Wait for Process Termination 12 1 4 10 waitpid Wait for Process Termination 13 1 4 11 exit Terminate a Process 14 2 Signal Manager 6263563565 hh at 15 SE Introd ctiOna dd eed ade ad eed beh d e dened Bea ed 15 2 2 Baekeroundu isset LE ede ee Rd e ener 15 2 21 Signal Delivery suuseessse esses 15 2 9 Operations i or Pepe Re UR RR T e Rare ees 16 2 4 Directives sepe e ee qus e Fel hei oni dt egeta te e 16 2 4 1 sigaddset Add a Signal to a Signal Set 17 2 4 2 sigdelset Delete a Signal from a Signal Set 18 2 4 3 sigfillset Fill a Signal Set 19 2 4 4 sigismember Is Signal a Member of a Signal Set eee 2 20 2 4 5 sigemptyset Empty a Signal
49. 9 4 1 pthread cancel Cancel Execution of a Thread EE EE EE 298 19 4 2 pthread setcancelstate Set Cancelability State ERR 299 19 4 3 pthread setcanceltype Set Cancelability Type 300 19 4 4 pthread testcancel Create Cancellation Point EE 301 19 4 5 pthread_cleanup_push Establish Cancellation Handler dese qd steigt Raten qs us 302 19 4 6 pthread cleanup pop Remove Cancellation Handler ue edits t rero n o os etre bonos 303 20 Services Provided by C Library libc 305 20 1 Introduction ees n 305 20 2 Standard Utility Functions stdlib h 305 20 8 Character Type Macros and Functions ctype h 306 204 Input and Output stdio h wae teens is nn mde ioa 306 20 5 Strings and Memory string h i idee eorr bs 307 20 6 Signal Handling signal 2a uo eiue ca tete denen 308 20 7 Time Functions ime enge giga gen Ae E RE RE A 308 20 8 Locale locale h i e re rrr Ret ees 308 20 9 Reentrant Versions of Hunctions esses 308 20 10 Miscellaneous Macros and Functions 311 20 11 Variable Argument Liste 311 20 12 Reentrant System Call 311 21 Services Provided by the Math Library libm P 313 KAES IntrodUCUlODbs EE 313 21 2 Standard Math Functions math h 313 22 Status of Implementation 315 Command and Variable Index 317 Concept Index 222 RR REOR PR ac 321
50. B50 B75 B110 B134 B150 B200 B300 B600 B1200 B1800 B2400 B4800 B9600 B19200 and B38400 The cfsetospeed function does not do anything to the hardware It merely stores a value for use by tcsetattr NOTES This function merely stores a value in the termios structure It does not change the terminal speed until a tcsetattr is done It does not detect impossible terminal speeds 130 RIEMS POSIX API User s Guide 6 4 5 tcgetattr Gets terminal attributes CALLING SEQUENCE include lt termios h gt include lt unistd h gt int tcgetattr int fildes struct termios p 5 STATUS CODES EBADF Invalid file descriptor ENOOTY Terminal control function attempted for a file that is not a terminal DESCRIPTION The tcgetattr gets the parameters associated with the terminal referred to by fildes and stores them into the termios structure pointed to by termios_p NOTES NONE Chapter 6 Device and Class Specific Functions Manager 6 4 6 tcsetattr Set terminal attributes CALLING SEQUENCE include lt termios h gt include lt unistd h gt int tcsetattr int fildes int options const struct termios tp 25 STATUS CODES E The DESCRIPTION NOTES 131 132 RTEMS POSIX API User s Guide 6 4 7 tcsendbreak Sends a break to a terminal CALLING SEQUENCE int tcsendbreak int fd 23 STATUS CODES E The DESCRIPTION NOTES This routine is not currently supported b
51. Close a named semaphore 179 9 4 5 sem unlink Unlink a semaphore 180 9 4 6 sem wait Wait on a Semaphore 181 9 4 7 sem trywait Non blocking Wait on a Semaphore pue Rd UR edet uM Ge See 182 9 4 8 sem timedwait Wait on a Semaphore for a Specified llo c PD 183 9 4 9 zem post Unlock a Semaphore 184 9 4 10 sem getvalue Get the value of a semaphore 185 10 Miutex Manager i l 2ee 939 Re RS 187 10 1 Introduction ni iii enipe 187 10 2 Backeround s 220 4c4 ig eben RUE CH 187 10 2 1 Mutex Attributes 0 0 ce ccc cee eee 187 10 2 2 PTHREAD MUTEX INITIALIZER 188 10 3 Operations 188 TOA SOIVIC BT beer Ae eto tae e Ro x bt d 188 10 4 1 pthread mutexattr init Initialize a Mutex Attribute Bet 189 10 4 2 pthread mutexattr destroy Destroy a Mutex Attribute Del ss e reo ho sued ee ek s 190 10 4 3 pthread_mutexattr_setprotocol Set the Blocking IPEOUDGOL c acne aceite sah ee oceans teh Les edu 191 10 4 4 pthread_mutexattr_getprotocol Get the Blocking Protocol ir dX adie heya nine dU Rd du eee 192 10 4 5 pthread_mutexattr_setprioceiling Set the Priority el Dg Lise eu e qe RT o seated o tek AE Dn 193 10 4 6 pthread_mutexattr_getprioceiling Get the Priority e dur 194 10 4 7 pthread mutexattr setpshared Set the Visibility Ium 195 10 4 8 pthread mutexattr getpshared Get the Visibility ORT 196 10 4 9 pthread mutex init Initialize a Mutex
52. ENCE include lt mqueue h gt int mq send mod t mqdes const char msg ptr size t msg len unsigned int msg prio d STATUS CODES EBADF The descriptor does not represent a valid message queue or the queue was opened for read only O RDONLY EINVAL The value of msg prio was greater than the MQ PRIO MAX EMSGSIZE The msg_len is greater than the mq msgsize attribute of the message queue EAGAIN The message queue is non blocking and there is no room on the queue for another message as specified by the mq maxmsg EINTR The message queue is blocking While the process was waiting for free space on the queue a signal arrived that interrupted the wait DESCRIPTION The mq send function adds the message pointed to by the argument msg ptr to the message queue specified by mqdes Each message is assigned a priority from 0 to MQ PRIO MAX MO PRIO MAX is defined in lt limits h gt and must be at least 32 Mes sages are added to the queue in order of their priority The highest priority message is at the front of the queue The maximum number of messages that a message queue may accept is specified at creation by the mq maxmsg field of the attribute structure If this amount is exceeded the behavior of the process is determined according to what oflag was used when the message queue was opened If the queue was opened with O NONBLOCK flag set then the EAGAIN error is returned If the O NONBLOCK flag was not set the proces
53. F Invalid file descriptor EINTR Function was interrupted by a signal EMFILE The process already has the maximum number of file descriptors open and tried to open a new one DESCRIPTION Dup2 creates a copy of the file descriptor oldfd The old and new descriptors may be used interchangeably They share locks file position pointers and flags for example if the file position is modified by using 1seek on one of the descriptors the position is also changed for the other NOTES NONE Chapter 5 Input and Output Primitives Manager 105 5 4 4 close Closes a file CALLING SEQUENCE include lt unistd h gt int close int fildes 23 STATUS CODES EBADF Invalid file descriptor EINTR Function was interrupted by a signal DESCRIPTION The c1ose O function deallocates the file descriptor named by fildes and makes it available for reuse All outstanding record locks owned by this process for the file are unlocked NOTES A signal can interrupt the close function In that case close returns 1 with errno set to EINTR The file may or may not be closed 106 RTEMS POSIX API User s Guide 5 4 5 read Reads from a file CALLING SEQUENCE include lt unistd h gt int read int fildes void buf unsigned int nbyte 253 STATUS CODES On error this routine returns 1 and sets errno to one of the following EAGAIN The O NONBLOCK flag is set for a file descriptor and the process would be delayed in
54. Get the Time of Day CALLING SEQUENCE include lt sys time h gt include lt unistd h gt int gettimeofday struct timeval tp struct timezone tzp A7 STATUS CODES On error this routine returns 1 and sets errno as appropriate EPERM settimeofdat is called by someone other than the superuser EINVAL Timezone or something else is invalid EFAULT One of tv or tz pointed outside your accessible address space DESCRIPTION This routine returns the current time of day in the tp structure NOTES Currently the timezone information is not supported The tzp argument is ignored 242 RTEMS POSIX API User s Guide 14 4 7 time Get time in seconds CALLING SEQUENCE include lt time h gt int time time_t tloc 23 STATUS CODES This routine returns the number of seconds since the Epoch DESCRIPTION time returns the time since 00 00 00 GMT January 1 1970 measured in seconds If t1oc in non null the return value is also stored in the memory pointed to by t NOTES NONE Chapter 15 Timer Manager 243 15 Timer Manager 15 1 Introduction The timer manager is The services provided by the timer manager are e timer_create Create a Per Process Timer e timer_delete Delete a Per Process Timer e timer_settime Set Next Timer Expiration e timer_gettime Get Time Remaining on Timer e timer_getoverrun Get Timer Overrun Count 15 2 Background 15 3 Operations 15 4 System Calls This
55. IPTION NOTES RTEMS POSIX API User s Guide Chapter 3 Process Environment Manager 3 4 9 getgroups Get Supplementary Group IDs CALLING SEQUENCE int getgroups STATUS CODES E The DESCRIPTION NOTES 45 46 3 4 10 getlogin Get User Name CALLING SEQUENCE int getlogin STATUS CODES E The DESCRIPTION NOTES RTEMS POSIX API User s Guide Chapter 3 Process Environment Manager 3 4 11 getlogin r Reentrant Get User Name CALLING SEQUENCE int getlogin r STATUS CODES E The DESCRIPTION NOTES 47 48 3 4 12 getpgrp Get Process Group ID CALLING SEQUENCE int getpgrp 3 STATUS CODES E The DESCRIPTION NOTES RTEMS POSIX API User s Guide Chapter 3 Process Environment Manager 3 4 13 setsid Create Session and Set Process Group ID CALLING SEQUENCE int setsid 25 STATUS CODES E The DESCRIPTION NOTES 49 50 RIEMS POSIX API User s Guide 3 4 14 setpgid Set Process Group ID for Job Control CALLING SEQUENCE int setpgid STATUS CODES E The DESCRIPTION NOTES Chapter 3 Process Environment Manager 3 4 15 uname Get System Name CALLING SEQUENCE int uname 25 STATUS CODES E The DESCRIPTION NOTES 51 52 RIEMS POSIX API User s Guide 3 4 16 times Get process times CALLING SEQUENCE include lt sys time h gt clock t times struct tms buf 3 STATUS CODES
56. If the message queue already exists mq open opens it if the message queue does not exist mq open creates it When a message queue is created the geometry of the message queue is contained in the attribute structure that is passed in as an argument This includes mq msgsize that dictates the maximum size of a single message and the mq maxmsg that dictates the maximum number of messages the queue can hold at one time The blocking or non blocking behavior of the queue can also specified 16 3 2 Closing a Message Queue The mq close function is used to close the connection made to a message queue that was made during mq open The message queue itself and the messages on the queue are persistent and remain after the queue is closed 16 3 3 Removing a Message Queue The mq unlink function removes the named message queue If the message queue is not open when mq unlink is called then the queue is immediately eliminated Any messages that were on the queue are lost and the queue can not be opened again If processes have the queue open when mq unlink is called the removal of the queue is delayed until the last process using the queue has finished However the name of the message queue is removed so that no other process can open it 252 RIEMS POSIX API User s Guide 16 3 4 Sending a Message to a Message Queue The mq send function adds the message in priority order to the message queue Each message has an assigned a priority The hig
57. L Invalid argument passed EPERM Process does not have permission to send the signal to any receiving process ESRCH The process indicated by the parameter pid is invalid DESCRIPTION This function sends the signal sig to the process pid NOTES NONE Chapter 2 Signal Manager 27 2 4 11 sigpending Examine Pending Signals CALLING SEQUENCE include signal h int sigpending const sigset t set J STATUS CODES On error this routine returns 1 and sets errno to one of the following EFAULT Invalid address for set DESCRIPTION This function allows the caller to examine the set of currently pending signals A pending signal is one which has been raised but is currently blocked The set of pending signals is returned in set NOTES NONE 28 RTEMS POSIX API User s Guide 2 4 12 sigsuspend Wait for a Signal CALLING SEQUENCE include signal h int sigsuspend const sigset t sigmask J STATUS CODES On error this routine returns 1 and sets errno to one of the following EINTR Signal interrupted this function DESCRIPTION This function temporarily replaces the signal mask for the process with that specified by sigmask and blocks the calling thread until the signal is raised NOTES NONE Chapter 2 Signal Manager 29 2 4 13 pause Suspend Process Execution CALLING SEQUENCE include signal h int pause void STATUS CODES On error this routine returns 1
58. MUTER snider potatoe Par Eres 198 destroy a mutex attribute get 190 destroy a thread attribute set 266 destroy an unnamed semaphore 176 detach a thread sisse te LER RE 284 321 determine if file descriptor is terminal 58 determine terminal device name 56 discards terminal data 134 duplicates an open file descriptor 103 104 dynamic package initialization 288 dynamically set the priority ceiling 203 E empty a signal set 21 ends directory read operation 68 establish cancellation handler 302 examine and change process blocked signals 24 examine and change signal action 22 examine and change thread blocked signals 25 examine pending signals esucsucceeere 2T execute a We esse cuneus 5 6 7 8 9 10 F hill Signal 8665 eb 84 tse hes Ire rn 19 G generate terminal pathname 55 get character from stdin without locking 148 get character without locking 147 get clock resolution 0 238 get configurable system variables 59 get detach state ENEE rs 268 get directory entries i eese ns 90 get effective group jd 42 get effective user 1 40 get environment variables 53 get group file entry for Ad 164 get group file entry for name 166 get inherit scheduler ag 276 get maximum priority val
59. NAMETOOLONG Length of a filename string exceeds PATH MAX and POSIX NO TRUNC is in effect ENOENT A file or directory does not exist ENOTDIR A component of the specified path was not a directory when a direc tory was expected EPERM Operation is not permitted Process does not have the appropriate priviledges or permissions to perform the requested operations EROFS Read only file system DESCRIPTION The unlink function removes the link named by path and decrements the link count of the file referenced by the link When the link count goes to zero and no process has the file open the space occupied by the file is freed and the file is no longer accessible NOTES NONE Chapter 4 Files and Directories Manager 81 4 4 18 rmdir Delete a directory CALLING SEQUENCE include lt unistd h gt int rmdir const char pathname J STATUS CODES EPERM The filesystem containing pathname does not support the removal of directories EFAULT pathname points ouside your accessible address space EACCES Write access to the directory containing pathname was not allowed for the process s effective uid or one of the directories in pathname did not allow search execute permission EPERM The directory containing pathname has the stickybit S ISVTX set and the process s effective uid is neither the uid of the file to be delected nor that of the director containing it ENAMETOOLONG pathname was too long ENOENT A dir
60. NOENT A file or directory does not exist ENOTDIR A component of the specified pathname was not a directory when directory was expected DESCRIPTION The chdir function causes the directory named by path to become the current working directory that is the starting point for searches of pathnames not beginning with a slash If chdir detects an error the current working directory is not changed NOTES NONE 70 RTEMS POSIX API User s Guide 4 4 8 getcwd Gets current working directory CALLING SEQUENCE include lt unistd h gt int getcwd void STATUS CODES EINVAL Invalid argument ERANGE Result is too large EACCES Search permission is denied for a directory in a file s path prefix DESCRIPTION The getcwd function copies the absolute pathname of the current working directory to the character array pointed to by buf The size argument is the number of bytes available in buf NOTES There is no way to determine the maximum string length that fetcwd may need to return Applications should tolerate getting ERANGE and allocate a larger buffer It is possible for getcwd to return EACCES if say login puts the process into a directory without read access The 1988 standard uses int instead of size_t for the second parameter Chapter 4 Files and Directories Manager 71 4 4 9 open Opens a file CALLING SEQUENCE include lt sys types h gt include lt sys stat h gt include fcntl h
61. NVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized DESCRIPTION The pthread_mutex_attr_destroy routine is used to destroy a mutex attributes object The behavior of using an attributes object after it is destroyed is implementation dependent NOTES NONE Chapter 10 Mutex Manager 191 10 4 3 pthread mutexattr setprotocol Set the Blocking Protocol CALLING SEQUENCE include lt pthread h gt int pthread mutexattr setprotocol pthread mutexattr t attr int protocol 5 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The protocol argument is invalid DESCRIPTION The pthread_mutexattr_setprotocol routine is used to set value of the protocol at tribute This attribute controls the order in which threads waiting on this mutex will receive it The protocol can be one of the following PTHREAD_PRIO_NONE in which case blocking order is FIFO PTHREAD_PRIO_INHERIT in which case blocking order is priority with the priority inheritance protocol in effect PTHREAD_PRIO_PROTECT in which case blocking order is priority with the priority ceiling pro tocol in effect NOTES There is currently no way to get simple priority blocking ordering with POSIX mutexes even though this could easily by supported by RTEMS 192 RIEMS POSIX API User s Guide 10 4 4 pthread mutexattr getprotocol Get the Blocking Protocol
62. ODES E The DESCRIPTION NOTES Chapter 12 Memory Management Manager 12 4 2 munlockall Unlock the Address Space of a Process CALLING SEQUENCE int munlockall 25 STATUS CODES E The DESCRIPTION NOTES 219 220 RIEMS POSIX API User s Guide 12 4 3 mlock Lock a Range of the Process Address Space CALLING SEQUENCE int mlock 25 STATUS CODES E The DESCRIPTION NOTES Chapter 12 Memory Management Manager 12 4 4 munlock Unlock a Range of the Process Address Space CALLING SEQUENCE int munlock 25 STATUS CODES E The DESCRIPTION NOTES 221 222 RIEMS POSIX API User s Guide 12 4 5 mmap Map Process Addresses to a Memory Object CALLING SEQUENCE int mmap STATUS CODES E The DESCRIPTION NOTES Chapter 12 Memory Management Manager 12 4 6 munmap Unmap Previously Mapped Addresses CALLING SEQUENCE int munmap STATUS CODES E The DESCRIPTION NOTES 223 224 RIEMS POSIX API User s Guide 12 4 7 mprotect Change Memory Protection CALLING SEQUENCE int mprotect 25 STATUS CODES E The DESCRIPTION NOTES Chapter 12 Memory Management Manager 12 4 8 msync Memory Object Synchronization CALLING SEQUENCE int msync STATUS CODES E The DESCRIPTION NOTES 225 226 RIEMS POSIX API User s Guide 12 4 9 shm open Open a Shared Memory Object CALLING SEQUENCE int shm open 3 STA
63. POSIX API User s Guide 14 4 3 clock getres Get Clock Resolution CALLING SEQUENCE include lt time h gt int clock getres clockid t clock id struct timespec res 25 STATUS CODES On error this routine returns 1 and sets errno to one of the following EINVAL The res pointer parameter is invalid EINVAL The clock id specified is invalid DESCRIPTION NOTES If res is NULL then the resolution is not returned Chapter 14 Clock Manager 239 14 4 4 sleep Delay Process Execution CALLING SEQUENCE include lt time h gt unsigned int sleep unsigned int seconds STATUS CODES This routine returns the number of unslept seconds DESCRIPTION The sleep function delays the calling thread by the specified number of seconds NOTES This call is interruptible by a signal 240 RIEMS POSIX API User s Guide 14 4 5 nanosleep Delay with High Resolution CALLING SEQUENCE include time bz int nanosleep const struct timespec rqtp struct timespec rmtp E STATUS CODES On error this routine returns 1 and sets errno to one of the following EINTR The routine was interrupted by a signal EAGAIN The requested sleep period specified negative seconds or nanosec onds EINVAL The requested sleep period specified an invalid number for the nanoseconds field DESCRIPTION NOTES This call is interruptible by a signal Chapter 14 Clock Manager 241 14 4 6 gettimeofday
64. RTEMS POSIX API User s Guide Edition 1 for RTEMS 4 5 0 beta3 May 2000 On Line Applications Research Corporation On Line Applications Research Corporation TEXinfo 1999 09 25 10 COPYRIGHT 1988 2000 On Line Applications Research Corporation OAR The authors have used their best efforts in preparing this material These efforts include the development research and testing of the theories and programs to determine their effectiveness No warranty of any kind expressed or implied with regard to the software or the material contained in this document is provided No liability arising out of the application or use of any product described in this document is assumed The authors reserve the right to revise this material and to make changes from time to time in the content hereof without obligation to notify anyone of such revision or changes Any inquiries concerning RTEMS its related support components or its documentation should be directed to either On Line Applications Research Corporation 4910 L Corporate Drive Huntsville AL 35805 VOICE 256 722 9985 FAX 256 722 0985 EMAIL rtems OQARcorp com Preface 1 Preface This is the User s Guide for the POSIX API support provided in RTEMS The functionality described in this document is based on the following standards e POSIX 1003 1b 1993 e POSIX 1003 1h D3 Much of the POSIX API standard is actually implemented in the Cygnus Newlib ANSI C Library Pleas
65. S 6 eXecVe cli ib o reque quer Ep PIED EPIS 8 K CXOCVP EE 10 RILL ohiri igpay siaii e dees AE Ure tte PES 26 318 Fink EE TO EE e E EE 118 localtime r 224 2 ewe oiread Sua daer d eS 160 POM GMP c deep iie Rua ede 152 l8eek nni oe hate REIR ei P 111 lstat iolioeee B be Reeve RT Rud Rd a bx Y Em 86 Ikdirili4cseserexac gag aca xa e o P ES EE ERE 78 leg MM RR 79 le WEE 99 LOCK sie T m 220 MUO CK AU nore de ee et M PP gr by xls 218 MMA Pie Saas av ere guit RE pen EE 222 Ili OU DE oven depen hoes ene See vd ines 114 lipEOLeCb cuc RENE UMORE ERU DM CRM M 224 ng ttr G fedi espere RR EIER 250 mnq close c gb we DERI Up EA 256 mq getattr eere ER RP ICE nS 262 mq notify icoinl bee PEG dree ere dE dek de 260 nnd Open EE 254 ng receiVe ive eg Bovina IG hn ad s 259 E DEE 258 ng setattru czesekersguaccax erben d Re 261 fg DEE 254 Ihgd bna ues ed a to Ra ed e e e bo EORR UR Pr dur e 249 ENEE ere Ee DENM Ed Cpu 225 MUL ENEE 221 Munlockall cker gg ce eri ie D Erd 219 m nmap icsinee tebe hier eee bee ERR 223 PathCont fo ites shane awe Meanie were asad 95 pauses emen n EUH aie Sas Pees Gel eter 29 E EE 102 pthread atfork m e EE LT pthread attr destroy sess 266 pthread attr getdetachstate 268 RTEMS POSIX API User s Guide pthread attr getschedparam 280 pthread_attr_getschedpolicy 278 pthread attr getsCO pe oie aes 274 pthread_attr_getstackaddr
66. STATUS CODES E The DESCRIPTION NOTES 303 304 RTEMS POSIX API User s Guide Chapter 20 Services Provided by C Library libc 305 20 Services Provided by C Library libc 20 1 Introduction This section lists the routines that provided by the Newlib C Library 20 2 Standard Utility Functions stdlib h e abort Abnormal termination of a program e abs Integer absolute value magnitude e assert Macro for Debugging Diagnostics e atexit Request execution of functions at program exit e atof String to double or float e atoi String to integer e bsearch Binary search e calloc Allocate space for arrays e div Divide two integers e ecvtbuf Double or float to string of digits e ecvt Double or float to string of digits malloc result e __env_lock Lock environment list for getenv and setenv e gvcvt Format double or float as string e exit End program execution e getenv Look up environment variable e labs Long integer absolute value magnitude e ldiv Divide two long integers e malloc Allocate memory e realloc Reallocate memory e free Free previously allocated memory e mallinfo Get information about allocated memory e __malloc_lock Lock memory pool for malloc and free e mbstowcs Minimal multibyte string to wide string converter e mblen Minimal multibyte length e mbtowc Minimal multibyte to wide character converter e qsort Sort an array e rand Pseudo random nu
67. TDIR EPERM EROFS DESCRIPTION Search permission is denied for a directory in a file s path prefix Invalid argument Length of a filename string exceeds PATH MAX and POSIX NO TRUNC is in effect A file or directory does not exist A component of the specified pathname was not a directory when a directory was expected Operation is not permitted Process does not have the appropriate priviledges or permissions to perform the requested operations Read only file system The user ID and group ID of the file named by path are set to owner and path respectively For regular files the set group ID S ISGID and set user ID S ISUID bits are cleared Some systems consider it a security violation to allow the owner of a file to be changed If users are billed for disk space usage loaning a file to another user could result in incorrect billing The chown function may be restricted to privileged users for some or all files The group ID can still be changed to one of the supplementary group IDs NOTES This function may be restricted for some file The pathconf function can be used to test the PC CHOWN RESTRICTED flag 92 RIEMS POSIX API User s Guide 4 4 28 utime Change access and or modification times of an inode CALLING SEQUENCE include lt sys types h gt int utime const char filename struct utimbuf buf 25 STATUS CODES EACCES Permission to write the file is denied ENOENT Filename does not
68. TUS CODES E The DESCRIPTION NOTES Chapter 12 Memory Management Manager 12 4 10 shm_unlink Remove a Shared Memory Object CALLING SEQUENCE int shm unlink 25 STATUS CODES E The DESCRIPTION NOTES 227 228 RTEMS POSIX API User s Guide Chapter 13 Scheduler Manager 229 13 Scheduler Manager 13 1 Introduction The scheduler manager The directives provided by the scheduler manager are e sched get priority min Get Minimum Priority Value e sched get priority max Get Maximum Priority Value e sched rr get interval Get Timeslicing Quantum e sched yield Yield the Processor 13 2 Background 13 2 1 Priority In the RTEMS implementation of the POSIX API the priorities range from the low prior ity of sched get priority min to the highest priority of sched get priority max Numerically higher values represent higher priorities 13 2 2 Scheduling Policies The following scheduling policies are available SCHED FIFO SCHED RR SCHED OTHER SCHED SPORADIC Priority based preemptive scheduling with no timeslicing This is equivalent to what is called manual round robin scheduling Priority based preemptive scheduling with timeslicing Time quan tums are maintained on a per thread basis and are not reset at each context switch Thus a thread which is preempted and subsequently resumes execution will attempt to complete the unused portion of its time quantum P
69. TUS CODES EACCES ENAMETOOLONG ENOENT ENOTDIR ELOOP EINVAL EFAULT Search permission is denied for a directory in a file s path prefix Length of a filename string exceeds PATH MAX and POSIX NO TRUNC is in effect A file or directory does not exist A component of the prefix pathname was not a directory when a directory was expected Too many symbolic links were encountered in the pathname The pathname does not refer to a symbolic link An invalid pointer was passed into the readlink routine DESCRIPTION The readlink function places the symbolic link destination into buf argument and re turns the number of characters copied If the symbolic link destination is longer than bufsize characters the name will be truncated NOTES NONE 78 RTEMS POSIX API User s Guide 4 4 15 mkdir Makes a directory CALLING SEQUENCE include lt sys types h gt include sys stat h int mkdir const char path mode_t 5 mode STATUS CODES EACCES EEXIST EMLINK ENAMETOOLONG ENOENT ENOSPC ENOTDIR EROFS DESCRIPTION Search permission is denied for a directory in a file s path prefix The name file already exist The number of links would exceed LINK MAX Length of a filename string exceeds PATH MAX and POSIX NO TRUNC is in effect A file or directory does not exist No space left on disk A component of the specified pathname was not a directory when a directory was
70. X 188 RTEMS POSIX API User s Guide 10 2 2 PTHREAD MUTEX INITIALIZER This is a special value that a variable of type pthread mutex t may be statically initialized to as shown below pthread mutex t my mutex PTHREAD MUTEX INITIALIZER This indicates that my mutex will be automatically initialized by an implicit call to pthread_ mutex init the first time the mutex is used Note that the mutex will be initialized with default attributes 10 3 Operations There is currently no text in this section 10 4 Services This section details the mutex manager s services A subsection is dedicated to each of this manager s services and describes the calling sequence related constants usage and status codes Chapter 10 Mutex Manager 189 10 4 1 pthread mutexattr init Initialize a Mutex Attribute Set CALLING SEQUENCE include lt pthread h gt int pthread mutexattr init pthread mutexattr t attr 3 STATUS CODES EINVAL The attribute pointer argument is invalid DESCRIPTION The pthread_mutexattr_init routine initializes the mutex attributes object specified by attr with the default value for all of the individual attributes NOTES XXX insert list of default attributes here 190 RIEMS POSIX API User s Guide 10 4 2 pthread mutexattr destroy Destroy a Mutex Attribute Set CALLING SEQUENCE include lt pthread h gt int pthread_mutexattr_destroy pthread_mutexattr_t attr E STATUS CODES EI
71. a LER irs E e M E sigaddset sigdelset sigemnpLysot 26b yx eer E RE 319 SsigfillsSet eee EES ee 19 sigismemDGr oii todas 0 PR RO Le bees 20 KE he EE 154 Si1gpendiug fe bete Di edad AT GEET 24 Sigqueue ivi ed acd iud nip 33 SIPSCUIMP 9 bees Lees 153 Sigsuspend m E ad ae ert HER i 28 sigtimedwalt 2b RABIA IRR 32 RA GE 30 SigwaltinfO eid eR adde edm 31 See eebe e EE 239 SCAG ETT 84 Strok T 0028 bee eisie er Suv eedem es 156 EE 76 SY SCONE ss o el Dake a aie ae atta du 59 T n E c esbeid 9a ber t3 ERR a doe TEE 133 CCELOW oe eer ues eeu erp SERRE 135 DCPIushosoonieeseres eee EE 134 btcgetsttr EE 130 bLOESUDEDD eere REP ei Hei 136 tcsendbreak s sore oes eae EE 132 tcsOtattr essa cetur Gated nee ater aoe eg 131 EE BEE rege Dir deviens 137 telldi erati 6k baee deer ne arip dee Robe bus 67 TIME Soe ic dai EEN 242 TIMES eeri rack d bx PR OLEDOR Re E RR Ra 52 tr ncate rod pen eR a dee ERU D REEL sca 94 E GE 56 tbynale Y ml uc eens add Meee apa oem 5T E EE Eeer 155 U m sk m 74 UNAM MD Pn 51 unlink 22usska eere E HU EAE EE 80 unmou mt2oeee ee HH RIDERE RO eC LER EN 115 GA EEN 92 W W lbonlevtesesegtIOD MR ehh AMA RES 12 1 Wr 0 Io Ean ads 13 WIS bO Giese se pk eem eee ER ES ee PIC HS 108 320 RTEMS POSIX API User s Guide Concept Index Concept Index A acquire ownership of file stream 144 add a signal to a signal set YT associate stream with file descriptor
72. able entry t mt entry rtems filesystem operations table fs ops rtems filesystem options t fsoptions char device char mount point 25 STATUS CODES EXXX DESCRIPTION The mount routines mounts the filesystem class which uses the filesystem operations specified by Ca ops and fsoptions The filesystem is mounted at the directory mount point and the mode of the mounted filesystem is specified by fsoptions If this filesystem class requires a device then the name of the device must be specified by device If this operation succeeds the mount table entry for the mounted filesystem is returned in mt entry NOTES NONE Chapter 5 Input and Output Primitives Manager 115 5 4 12 unmount Unmount file systems CALLING SEQUENCE include lt libio h gt int unmount const char mount_path 3 STATUS CODES EXXX DESCRIPTION The unmount routine removes the attachment of the filesystem specified by mount path NOTES NONE 116 RIEMS POSIX API User s Guide 5 4 13 aio read Asynchronous Read CALLING SEQUENCE int aio read 3 STATUS CODES E The DESCRIPTION NOTES This routine is not currently supported by RTEMS but could be in a future version Chapter 5 Input and Output Primitives Manager 117 5 4 14 aio write Asynchronous Write CALLING SEQUENCE int aio write 3 STATUS CODES E The DESCRIPTION NOTES This routine is not currently supported by RTEMS but could
73. ad h gt int pthread setschedparam pthread t thread int policy struct sched param param E STATUS CODES EINVAL The scheduling parameters indicated by the parameter param is in valid EINVAL The value specified by policy is invalid EINVAL The scheduling policy was SCHED SPORADIC and the specified replenishment period is less than the initial budget EINVAL The scheduling policy was SCHED SPORADIC and the specified low priority is invalid ESRCH The thread indicated was invalid DESCRIPTION The pthread_setschedparam routine is used to set the scheduler parameters currently associated with the thread specified by thread to the policy specified by policy The contents of param are interpreted based upon the policy argument NOTES As required by POSIX RTEMS defines the feature symbol POSIX THREAD PRIORITY SCHEDULING to indicate that the family of routines to which this routine belongs is sup ported 290 RTEMS POSIX API User s Guide 17 4 25 pthread_getschedparam Get Thread Scheduling Parameters CALLING SEQUENCE include lt pthread h gt int pthread getschedparam pthread t thread int policy struct sched param param E STATUS CODES EINVAL The policy pointer argument is invalid EINVAL The scheduling parameters pointer argument is invalid ESRCH The thread indicated by the parameter thread is invalid DESCRIPTION The pthread getschedparam routine is used to obtain the scheduler pol
74. and sets errno to one of the following EINTR Signal interrupted this function DESCRIPTION This function causes the calling thread to be blocked until the signal is received NOTES NONE 30 RIEMS POSIX API User s Guide 2 4 14 sigwait Synchronously Accept a Signal CALLING SEQUENCE include signal h int sigwait const sigset t set int sig 25 STATUS CODES EINVAL Invalid argument passed EINTR Signal interrupted this function DESCRIPTION This function selects a pending signal based on the set specified in set atomically clears it from the set of pending signals and returns the signal number for that signal in sig NOTES NONE Chapter 2 Signal Manager 31 2 4 15 sigwaitinfo Synchronously Accept a Signal CALLING SEQUENCE include lt signal h gt int sigwaitinfo const sigset_t set siginfo_t info 3 STATUS CODES EINTR Signal interrupted this function DESCRIPTION This function selects a pending signal based on the set specified in set atomically clears it from the set of pending signals and returns information about that signal in info NOTES NONE 32 RIEMS POSIX API User s Guide 2 4 16 sigtimedwait Synchronously Accept a Signal with Timeout CALLING SEQUENCE include signal h int sigtimedwait const sigset t set siginfo t info const struct timespec timeout A7 STATUS CODES EAGAIN Timed out while waiting for the specified signal s
75. andard requires that a compliant operating system provide the facilties to ensure that threads can operate with mutual exclusion from one another and defines the API that must be provided The services provided by the mutex manager are e pthread_mutexattr_init Initialize a Mutex Attribute Set e pthread mutexattr destroy Destroy a Mutex Attribute Set e pthread mutexattr setprotocol Set the Blocking Protocol e pthread mutexattr getprotocol Get the Blocking Protocol e pthread_mutexattr_setprioceiling Set the Priority Ceiling e pthread mutexattr getprioceiling Get the Priority Ceiling e pthread mutexattr setpshared Set the Visibility e pthread mutexattr getpshared Get the Visibility e pthread mutex init Initialize a Mutex e pthread mutex destroy Destroy a Mutex e pthread mutex lock Lock a Mutex e pthread mutex trylock Poll to Lock a Mutex e pthread mutex timedlock Lock a Mutex with Timeout e pthread mutex unlock Unlock a Mutex e pthread mutex setprioceiling Dynamically Set the Priority Ceiling e pthread mutex getprioceiling Dynamically Get the Priority Ceiling 10 2 Background 10 2 1 Mutex Attributes Mutex attributes are utilized only at mutex creation time A mutex attribute structure may be initialized and passed as an argument to the mutex init routine Note that the priority ceiling of a mutex may be set at run time blocking protcol is the XXX priority ceiling is the XXX pshared is the XX
76. ant operating system provide the facilties to manage multiple threads of control and defines the API that must be provided The services provided by the thread manager are 17 2 pthread attr init Initialize a Thread Attribute Set pthread attr destroy Destroy a Thread Attribute Set pthread attr setdetachstate Set Detach State pthread attr getdetachstate Get Detach State pthread attr setstacksize Set Thread Stack Size pthread attr getstacksize Get Thread Stack Size pthread attr setstackaddr Set T hread Stack Address pthread attr getstackaddr Get Thread Stack Address pthread attr setscope Set Thread Scheduling Scope pthread attr getscope Get Thread Scheduling Scope pthread attr setinheritsched Set Inherit Scheduler Flag pthread attr getinheritsched Get Inherit Scheduler Flag pthread attr setschedpolicy Set Scheduling Policy pthread attr getschedpolicy Get Scheduling Policy pthread_attr_setschedparam Set Scheduling Parameters pthread_attr_getschedparam Get Scheduling Parameters pthread create Create a Thread pthread exit Terminate the Current Thread pthread detach Detach a Thread pthread join Wait for Thread Termination pthread self Get Thread ID pthread equal Compare Thread IDs pthread once Dynamic Package Initialization pthread setschedparam Set Thread Scheduling Parameters pthread getschedparam Get Thread Scheduling Parameters Background 264 RTEMS POSIX API User s Guid
77. apter 16 Message Passing Manager 253 16 3 7 Setting the Attributes of a Message Queue The mq setattr function is used to set attributes associated with the open message queue description referenced by the message queue descriptor specified by mqdes The omqstat represents the old or previous attributes If omqstat is non NULL the function mq setattr stores in the location referenced by omqstat the previous message queue attributes and the current queue status These values are the same as would be returned by a call to mq getattr at that point There is only one mq attr mq flag that can be altered by this call This is the flag that deals with the blocking and non blocking behavior of the message queue If the flag is set then the message queue is non blocking and requests to send or receive do not block while waiting for resources If the flag is not set then message send and receive may involve waiting for an empty queue or waiting for a message to arrive 16 3 8 Getting the Attributes of a Message Queue The mq getattr function is used to get status information and attributes of the message queue associated with the message queue descriptor The results are returned in the mq_attr structure referenced by the mqstat argument All of these attributes are set at create time except the blocking non blocking behavior of the message queue which can be dynamically set by using mq setattr The attribute mq curmsg is set to reflect the num
78. argument does not refewr to a valid semaphore DESCRIPTION This function attemtps to lock a semaphore specified by sem and will wait for the semaphore for an interval specified by timeout If the semaphore is available then the semaphore is locked i e the semaphore value is decremented and the function returns a value of 0 The semaphore remains locked until released by a sem_post call If the semaphore is unavailable then the function will wait for the semaphore to become available for the amount of time specified by timeout If the semaphore does not become available within the interval specified by timeout then the function returns 1 and sets errno to EAGAIN If any other error occurs the function returns 1 and sets errno to the appropriate error code NOTES Multiprocessing is not supported in this implementation 184 RTEMS POSIX API User s Guide 9 4 9 sem post Unlock a Semaphore CALLING SEQUENCE int sem post sem t sem 23 STATUS CODES EINVAL The sem argument does not refer to a valid semaphore DESCRIPTION This function attempts to release the semaphore specified by sem If other tasks are waiting on the semaphore then one of those tasks which one depends on the scheduler being used is allowed to lock the semaphore and return from its sem wait sem trywait or sem timedwait call If there are no other tasks waiting on the semaphore then the semaphore value is simply incremented sem post
79. be in a future version 118 RIEMS POSIX API User s Guide 5 4 15 lio listio List Directed I O CALLING SEQUENCE int lio listio 3 STATUS CODES E The DESCRIPTION NOTES This routine is not currently supported by RTEMS but could be in a future version Chapter 5 Input and Output Primitives Manager 5 4 16 aio error Retrieve Error Status of Asynchronous I O Operation CALLING SEQUENCE int aio error 3 STATUS CODES E The DESCRIPTION NOTES This routine is not currently supported by RTEMS but could be in a future version 119 120 RTEMS POSIX API User s Guide 5 4 17 aio return Retrieve Return Status Asynchronous I O Operation CALLING SEQUENCE int aio return 3 STATUS CODES E The DESCRIPTION NOTES This routine is not currently supported by RTEMS but could be in a future version Chapter 5 Input and Output Primitives Manager 5 4 18 aio cancel Cancel Asynchronous I O Request CALLING SEQUENCE int aio cancel 25 STATUS CODES E The DESCRIPTION NOTES This routine is not currently supported by RTEMS but could be in a future version 121 122 RIEMS POSIX API User s Guide 5 4 19 aio suspend Wait for Asynchronous I O Request CALLING SEQUENCE int aio suspend 3 STATUS CODES E The DESCRIPTION NOTES This routine is not currently supported by RTEMS but could be in a future version Chapter 5 Input and Output Primitives Manager 5
80. ber of messages on the queue at the time that mq getattr was called 16 4 Directives This section details the message passing manager s directives A subsection is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status codes 254 RIEMS POSIX API User s Guide 16 4 1 mq open Open a Message Queue CALLING SEQUENCE include lt mqueue h gt mod t mq_open const char name int oflag mode t mode struct mq attr attr STATUS CODES EACCES Either the message queue exists and the permissions requested in oflags were denied or the message does not exist and permission to create one is denied EEXIST You tried to create a message queue that already exists EINVAL An inappropriate name was given for the message queue or the values of mq maxmsg or mq msgsize were less than 0 ENOENT The message queue does not exist and you did not specify to create it EINTR The call to mq open was interrupted by a signal EMFILE The process has too many files or message queues open This is process limit error ENFILE The system has run out of resources to support more open message queues This is a system error ENAMETOOLONG mq name is too long DESCRIPTION The mq open function establishes the connection between a process and a message queue with a message queue descriptor If the message queue already exists mq open opens it if the m
81. c calloc or realloc or has been deallo cated with free or realloc the results are not portable and are probably disastrous The routine is implemented in Cygnus newlib Chapter 4 Files and Directories Manager 65 4 4 3 rewinddir Resets the readdir pointer CALLING SEQUENCE include lt sys types h gt include lt dirent h gt void rewinddir DIR dirp 3 STATUS CODES No value is returned DESCRIPTION The rewinddir function resets the position associated with the directory stream pointed to by dirp It also causes the directory stream to refer to the current state of the directory NOTES NONE If dirp is not a pointer by opendir the results are undefined The routine is implemented in Cygnus newlib 66 RIEMS POSIX API User s Guide 4 4 4 scandir Scan a directory for matching entries CALLING SEQUENCE include dirent h int scandir const char dir struct dirent namelist int select const struct dirent zi int compar const struct dirent const struct dirent 25 STATUS CODES ENOMEM Insufficient memory to complete the operation DESCRIPTION The scandir function scans the directory dir calling select on each directory entry Entries for which select returns non zero are stored in strings allocated via malloc sorted using qsort with the comparison function compar and collected in array namelist which is allocated via malloc If select
82. chedparam Set Scheduling Parameters CALLING SEQUENCE include lt pthread h gt int pthread attr setschedparam pthread attr t attr const struct sched param param 25 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The specified scheduler parameter argument is invalid DESCRIPTION The pthread attr setschedparam routine is used to set the scheduler parameters field in the thread attribute object attr to the value specified by param NOTES As required by POSIX RTEMS defines the feature symbol POSIX THREAD PRIORITY SCHEDULING to indicate that the family of routines to which this routine belongs is sup ported 280 RIEMS POSIX API User s Guide 17 4 16 pthread attr getschedparam Get Scheduling Parameters CALLING SEQUENCE include lt pthread h gt int pthread attr getschedparam const pthread attr t attr struct sched param param E STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The specified scheduler parameter argument pointer is invalid DESCRIPTION The pthread attr getschedparam routine is used to obtain the scheduler parameters field from the thread attribute object attr The value of this field is returned in param NOTES As required by POSIX RTEMS defines the feature symbol POSIX THREAD PRIORITY SCHEDULING to indicate that the family
83. cking 149 Q queue a signal to a process isses 33 R reads a ditectoryss sep eR PR EES ee 64 reads from a file ccr rrr tise die ages 106 reads terminal input baud rate 126 reads terminal output baud rate 127 receive a message from a message queue 259 reentrant determine terminal device name 5T reentrant extract token from string 156 reentrant get group file entry 165 reentrant get group file entry for name 167 reentrant get password file entry for name 171 reentrant get password file entry for uid 169 reentrant get user Dame AT reentrant local time conversion 160 reentrant random number generation 161 reentrant struct tm to ascii time conversion 157 reentrant time t to ascii time conversion 158 reentrant utc time conversion 159 register fork handlers sercirissiropinriisonis 11 release ownership of file stream 146 remove a message Ouee 2 0 2 2 nsd t eee 257 remove a shared memory object 22T remove cancellation handler 303 Concept Index removes a directory emtrg 80 renames EE 82 reposition read write file offset 111 resets the readdir pointer 65 retrieve error status of asynchronous i o operation Se Ee iere 119 retrieve return status asynchronous i o operation EE 120 return current loca
84. ction details the process environment manager s directives A subsection is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status codes Chapter 3 Process Environment Manager 3 4 1 getpid Get Process ID CALLING SEQUENCE int getpid STATUS CODES E The DESCRIPTION NOTES 37 38 3 4 2 getppid Get Parent Process ID CALLING SEQUENCE int getppid STATUS CODES E The DESCRIPTION NOTES RTEMS POSIX API User s Guide Chapter 3 Process Environment Manager 3 4 3 getuid Get User ID CALLING SEQUENCE int getuid STATUS CODES E The DESCRIPTION NOTES 39 40 3 4 4 geteuid Get Effective User ID CALLING SEQUENCE int geteuid STATUS CODES E The DESCRIPTION NOTES RTEMS POSIX API User s Guide Chapter 3 Process Environment Manager 3 4 5 getgid Get Real Group ID CALLING SEQUENCE int getgid STATUS CODES E The DESCRIPTION NOTES 41 42 3 4 6 getegid Get Effective Group ID CALLING SEQUENCE int getegid STATUS CODES E The DESCRIPTION NOTES RTEMS POSIX API User s Guide Chapter 3 Process Environment Manager 3 4 7 setuid Set User ID CALLING SEQUENCE int setuid 25 STATUS CODES E The DESCRIPTION NOTES 43 44 3 4 8 setgid Set Group ID CALLING SEQUENCE int setgid STATUS CODES E The DESCR
85. ctory component in pathname does not exist or is a dangling symbolic link ENOTDIR pathname or a component used as a directory in pathname is not in fact a directory ENOTEMPTY pathname contains entries other than and EBUSY pathname is the current working directory or root directory of some process EBUSY pathname is the current directory or root directory of some process ENOMEM Insufficient kernel memory was available EROGS pathname refers to a file on a read only filesystem ELOOP pathname contains a reference to a circular symbolic link DESCRIPTION rmdir deletes a directory which must be empty NOTES NONE 82 RTEMS POSIX API User s Guide 4 4 19 rename Renames a file CALLING SEQUENCE include lt unistd h gt int rename const char old const char new 25 STATUS CODES EACCES EBUSY EEXIST EINVAL EISDIR EMLINK ENAMETOOLONG ENOENT ENOSPC ENOTDIR ENOTEMPTY EROFS EXDEV DESCRIPTION Search permission is denied for a directory in a file s path prefix The directory is in use The named file already exists Invalid argument Attempt to open a directory for writing or to rename a file to be a directory The number of links would exceed LINK MAX Length of a filename string exceeds PATH MAX and POSIX NO TRUNC is in effect A file or directory does no exist No space left on disk A component of the specified pathname was not a directory when a dire
86. ctory was expected Attempt to delete or rename a non empty directory Read only file system Attempt to link a file to another file system The rename function causes the file known bo old to now be known as new Ordinary files may be renamed to ordinary files and directories may be renamed to di rectories however files cannot be converted using rename The new pathname may not contain a path prefix of old Chapter 4 Files and Directories Manager 83 NOTES If a file already exists by the name new it is removed The rename function is atomic If the rename detects an error no files are removed This guarantees that the rename x x does not remove x You may not rename dot or dot dot The routine is implemented in Cygnus newlib using link and unlink 84 RIEMS POSIX API User s Guide 4 4 20 stat Gets information about a file CALLING SEQUENCE include lt sys types h gt include lt sys stat h gt int statt const char path struct stat buf A STATUS CODES EACCES EBADF ENAMETOOLONG ENOENT ENOTDIR DESCRIPTION Search permission is denied for a directory in a file s path prefix Invalid file descriptor Length of a filename string exceeds PATH MAX and POSIX NO TRUNC is in effect A file or directory does not exist A component of the specified pathname was not a directory when a directory was expected The path argument points to a pathname for a file Read
87. de 1 4 7 execvp Execute a File CALLING SEQUENCE int execvp const char file char const argv TE STATUS CODES ENOSYS This routine is not supported by RTEMS DESCRIPTION This routine is not supported by RTEMS NOTES NONE Chapter 1 Process Creation and Execution Manager 1 4 8 pthread atfork Register Fork Handlers CALLING SEQUENCE include lt sys types h gt int pthread_atfork void prepare void void parent void void child void STATUS CODES ENOSYS This routine is not supported by RTEMS DESCRIPTION This routine is not supported by RTEMS NOTES NONE 11 12 RIEMS POSIX API User s Guide 1 4 9 wait Wait for Process Termination CALLING SEQUENCE include lt sys types h gt include lt sys wait h gt int wait int stat_loc d STATUS CODES ENOSYS This routine is not supported by RTEMS DESCRIPTION This routine is not supported by RTEMS NOTES NONE Chapter 1 Process Creation and Execution Manager 1 4 10 waitpid Wait for Process Termination CALLING SEQUENCE int wait pid t pid int stat loc int options E STATUS CODES ENOSYS This routine is not supported by RTEMS DESCRIPTION This routine is not supported by RTEMS NOTES NONE 13 14 RTEMS POSIX API User s Guide 1 4 11 exit Terminate a Process CALLING SEQUENCE void _exit int status 3 STATUS CODES NONE DESCRIPTION T
88. dition variable initialize a condition variable attribute set initialize a mutex 00 cee eee ees initialize a mutex attribute set initialize a thread attribute set initialize an unnamed semaphore initialize time conversion information is signal a member of a signal set L list directed 1 05 22 eere eer ert lock a Mute X s cioe bras op eERDD a lock a mutex with timeout lock a range of the process address space lock the address space of a process M makes a directory ANS seem makes a fifo special file manipulates an open file descriptor map process addresses to a memory object memory object synchronization mount a file system RTEMS POSIX API User s Guide TOD BEE 152 154 182 notify process that a message is available 260 obtain file descriptor number for this file 142 obtain the name of a symbolic link destination 77 obtain time Of day isses 235 open Ee EE eid 63 open a message Oueue esee eee 254 open a named semaphore sssssssrreuue 177 open a shared memory object 226 opens AE Zb D password file entry for name 170 poll to acquire ownership of file stream 145 poll to lock a mutex uueeeeeses 200 put character to stdin without locking 150 put character without lo
89. e 17 2 1 Thread Attributes Thread attributes are utilized only at thread creation time A thread attribute structure may be initialized and passed as an argument to the pthread create routine stack address is the address of the optionally user specified stack area for this thread If this value is NULL then RTEMS allocates the memory for the thread stack from the RTEMS Workspace Area Otherwise this is the user specified address for the memory to be used for the thread s stack Each thread must have a distinct stack area Each processor family has different alignment rules which should be fol lowed stack size is the minimum desired size for this thread s stack area If the size of this area as specified by the stack size attribute is smaller than the minimum for this processor family and the stack is not user specified then RT EMS will automatically allocate a stack of the minimum size for this processor family contention scope specifies the scheduling contention scope RT EMS only supports the PTHREAD SCOPE PROCESS scheduling contention scope scheduling inheritance specifies whether a user specified or the scheduling policy and param eters of the currently executing thread are to be used When this is PTHREAD INHERIT SCHEID then the scheduling policy and pa rameters of the currently executing thread are inherited by the newly created thread scheduling policy and parameters specify the manner in which the thread will contend
90. e same file descriptor The flags and their semantics are described in open O F GETLK F SETLK and F SETLKW F GETLK F_SETLK F_SETLKW F GETOWN F SETOWN NOTES Manage discretionary file locks The third argument arg is a pointer to a struct flock that may be overwritten by this call Return the flock structure that prevents us from obtaining the lock or set the 1 type field of the lock to F UNLCK if there is no obstruc tion The lock is set when 1 type is F_RDLCK or F_WRLCK or cleared when it is F_LUNLCK If lock is held by someone else this call returns 1 and sets errno to EACCES or EAGAIN Like F_SETLK but instead of returning an error we wait for the lock to be released Get the process ID or process group of the owner of a socket Process groups are returned as negative values Set the process or process group that owns a socket For these commands ownership means receiving SIGIO or SIGURG signals Process groups are specified using negative values The errors returned by dup2 are different from those returned by E DUPFD Chapter 5 Input and Output Primitives Manager 111 5 4 8 Leck Reposition read write file offset CALLING SEQUENCE include lt sys types h gt include lt unistd h gt int lseek int fildes off_t offset int whence d STATUS CODES EBADF Fildes is not an open file descriptor ESPIPE Fildes is associated with a pipe socket or FIFO EINVAL Whence is
91. e value stored by a previous call to tcgetattr NOTES Baud rates are defined by symbols such as B110 B1200 B2400 The actual number returned for any given speed may change from system to system 128 RIEMS POSIX API User s Guide 6 4 3 cfsetispeed Sets terminal input baud rate CALLING SEQUENCE include lt termios h gt int cfsetispeed struct termios p Speed t Speed STATUS CODES The cfsetispeed function returns a zero when successful and returns 1 when an error OCCUIS DESCRIPTION The cfsetispeed function stores a code for the terminal speed stored in a struct termios The codes are defined in termios h by the macros BO B50 B75 B110 B134 B150 B200 B300 B600 B1200 B1800 B2400 B4800 B9600 B19200 and B38400 NOTES This function merely stores a value in the termios structure It does not change the terminal speed until a tcsetattr is done It does not detect impossible terminal speeds Chapter 6 Device and Class Specific Functions Manager 129 6 4 4 cfsetospeed Sets terminal output baud rate CALLING SEQUENCE include lt termios h gt int cfsetospeed struct termios p Speed t Speed STATUS CODES The cfsetospeed function returns a zero when successful and returns 1 when an error OCCUIS DESCRIPTION The cfsetospeed function stores a code for the terminal speed stored in a struct termios The codes are defiined in termios h by the macros BO
92. e ability to notify one and only one process whenever the queue s state changes from empty 0 messages to nonempty This means that the process does not have to block or constantly poll while it waits for a message By calling mq notify a notification request is attached to a message queue When a message is received by an empty queue if there are no processes blocked and waiting for the message then the queue notifies the requesting process of a message arrival There is only one signal sent by the message queue after that the notification request is de registered and another process can attach its notification request After receipt of a notification a process must re register if it wishes to be notified again If there is a process blocked and waiting for the message that process gets the message and notification is not be sent Only one process can have a notification request attached to a message queue at any one time If another process attempts to register a notification request it fails You can de register for a message queue by passing a NULL to mq notify this removes any notification request attached to the queue Whenever the message queue is closed all notification attachments are removed Upon successful completion mq notify returns a value of zero otherwise the function returns a value of 1 and sets errno to indicate the error NOTES It is possible for another process to receive the message after the notification is
93. e refer to documentation on Newlib for more information on what it supplies At this point this is just beginning to become what it ultimately should be RTEMS POSIX API User s Guide Chapter 1 Process Creation and Execution Manager 3 1 Process Creation and Execution Manager 1 1 Introduction The process creation and execution manager is The directives provided by the process creation and execution manager are e fork Create a Process e execl Execute a File e execv Execute a File e execle Execute a File e execve Execute a File e execlp Execute a File e execvp Execute a File e pthread atfork Register Fork Handlers e wait Wait for Process Termination e waitpid Wait for Process Termination exit Terminate a Process 1 2 Background There is currently no text in this section 1 3 Operations There is currently no text in this section 1 4 Directives This section details the process creation and execution manager s directives A subsection is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status codes 4 RTEMS POSIX API User s Guide 1 4 1 fork Create a Process CALLING SEQUENCE include lt sys types h gt int fork void STATUS CODES ENOSYS This routine is not supported by RTEMS DESCRIPTION This routine is not supported by RTEMS NOTES NONE Chapter 1 Process Creation and Execution Manager
94. ection 11 4 Directives This section details the condition variable manager s directives A subsection is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status codes 206 RIEMS POSIX API User s Guide 11 4 1 pthread condattr init Initialize a Condition Variable Attribute Set CALLING SEQUENCE include lt pthread h gt int pthread condattr init pthread condattr t attr 3 STATUS CODES ENOMEM Insufficient memory is available to initialize the condition variable attributes object DESCRIPTION NOTES Chapter 11 Condition Variable Manager 207 11 4 2 pthread condattr destroy Destroy a Condition Variable Attribute Set CALLING SEQUENCE include lt pthread h gt int pthread_condattr_destroy pthread_condattr_t attr E STATUS CODES EINVAL The attribute object specified is invalid DESCRIPTION NOTES 208 RTEMS POSIX API User s Guide 11 4 3 pthread condattr setpshared Set Process Shared Attribute CALLING SEQUENCE include lt pthread h gt int pthread_condattr_setpshared pthread_condattr_t attr int pshared STATUS CODES EINVAL Invalid argument passed DESCRIPTION NOTES Chapter 11 Condition Variable Manager 11 4 4 pthread condattr getpshared Get Process Shared Attribute CALLING SEQUENCE include lt pthread h gt int pthread_condattr_getpshared const pthread_condattr_t
95. ed does not have an impact on this thread The thread begins execution at the address specified by start routine with arg as its only argument If start routine returns then it is functionally equivalent to the thread executing the pthread exit service Upon successful completion the ID of the created thread is returned in the thread argu ment 282 RTEMS POSIX API User s Guide NOTES There is no concept of a single main thread in RTEMS as there is in a tradition UNIX system POSIX requires that the implicit return of the main thread results in the same effects as if there were a call to exit This does not occur in RT EMS The signal mask of the newly created thread is inherited from its creator and the set of pending signals for this thread is empty Chapter 17 Thread Manager 283 17 4 18 pthread exit Terminate the Current Thread CALLING SEQUENCE include lt pthread h gt void pthread_exit void status 23 STATUS CODES NONE DESCRIPTION The pthread exit routine is used to temrinate the calling thread The status is made available to any successful join with the terminating thread When a thread returns from its start routine it results in an implicit call to the pthread_ exit routine with the return value of the function serving as the argument to pthread exit NOTES Any cancellation cleanup handlers that hace been pushed and not yet popped shall be popped in reverse of the order that they were pu
96. ed to obtain the stackaddr attribute in the attr thread attribute object NOTES As required by POSIX RTEMS defines the feature symbol _POSIX_THREAD_ATTR_ STACKADDR to indicate that this routine is supported Chapter 17 Thread Manager 273 17 4 9 pthread_attr_setscope Set Thread Scheduling Scope CALLING SEQUENCE include lt pthread h gt int pthread_attr_setscope pthread_attr_t attr int contentionscope 5 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The contention scope specified is not valid ENOTSUP The contention scope specified PCTHREAD SCOPE SYSTEM is not supported DESCRIPTION The pthread attr setscope routine is used to set the contention scope field in the thread attribute object attr to the value specified by contentionscope The contentionscope must be either PTHREAD SCOPE SYSTEM to indicate that the thread is to be within system scheduling contention or PTHREAD SCOPE PROCESS indicating that the thread is to be within the process scheduling contention scope NOTES As required by POSIX RTEMS defines the feature symbol POSIX THREAD PRIORITY SCHEDULING to indicate that the family of routines to which this routine belongs is sup ported 274 RTEMS POSIX API User s Guide 17 4 10 pthread_attr_getscope Get Thread Scheduling Scope CALLING SEQUENCE include lt pthread h gt int pthread_attr_getscope
97. ementary Group IDs 45 3 4 10 getlogin Get User Name 46 3 4 11 getlogin r Reentrant Get User Name 47 3 4 12 getpgrp Get Process Group ID 48 3 4 13 setsid Create Session and Set Process Group ID TT 49 3 4 14 setpgid Set Process Group ID for Job Control 50 3 4 15 uname Get System Name 51 3 4 16 times Get process Umes sese 52 3 4 17 getenv Get Environment Variables 53 3 4 18 setenv Set Environment Variables 54 3 4 19 ctermid Generate Terminal Pathname 55 3 4 20 ttyname Determine Terminal Device Name 56 3 4 21 ttyname_r Reentrant Determine Terminal Device lug T 57 3 4 22 isatty Determine if File Descriptor is Terminal SE ee EN 58 3 4 23 sysconf Get Configurable System Variables 59 4 Files and Directories Manager 61 AA Introduction eege SEN m RE EE GUERRE Ya wee 61 4 2 Background 4 eiie cA ean HR IIR EA RAUS 62 4 2 1 Path Name Evaluation sees 62 4 3 Op eratlOnS 2 uere ona et a e d e aae RU e AE 62 4 4 Directives hehe hh hn 62 4 4 1 opendir Open a Director 63 4 4 2 readdir Reads a directory 2 4 64 4 4 3 rewinddir Resets the readdir pointer 65 4 4 4 scandir Scan a directory for matching entries 66 4 4 5 telldir Return current location in directory stream EE ER 67 4 4 6 closedir Ends directory read operation 68 4 4 7 chdir Changes the curren
98. er 17 Thread Manager 287 17 4 22 pthread_equal Compare Thread IDs CALLING SEQUENCE include lt pthread h gt int pthread_equal pthread t t1 pthread t t2 3 STATUS CODES Zero The thread ids are not equal non zero The thread ids are equal DESCRIPTION The pthread equal routine is used to compare two thread IDs and determine if they are equal NOTES The behavior is undefined if the thread IDs are not valid 288 RIEMS POSIX API User s Guide 17 4 23 pthread once Dynamic Package Initialization CALLING SEQUENCE include lt pthread h gt pthread_once_t once_control PTHREAD_ONCE_INIT int pthread_once pthread_once_t once_control void init_routine void 25 STATUS CODES NONE DESCRIPTION The pthread once routine is used to provide controlled initialization of variables The first call to pthread_once by any thread with the same once_control will result in the init_routine being invoked with no arguments Subsequent calls to pthread_once with the same once control will have no effect The init routine is guaranteed to have run to completion when this routine returns to the caller NOTES The behavior of pthread once is undefined if once control is automatic storage i e on a task stack or is not initialized using PTHREAD ONCE INIT Chapter 17 Thread Manager 289 17 4 24 pthread_setschedparam Set Thread Scheduling Parameters CALLING SEQUENCE include lt pthre
99. eration Invalid file descriptor An fcntl with function F SETLKW would cause a deadlock The functioin was interrupted by a signal Invalid argument Too many file descriptor or in use by the process No locks available fcnt1 performs one of various miscellaneous operations on fd The operation in question is determined by cmd F_DUPFD F_GETFD Makes arg be a copy of fd closing fd first if necessary The same functionality can be more easily achieved by using dup2 The old and new descriptors may be used interchangeably They share locks file position pointers and flags for example if the file position is modified by using 1seek on one of the descriptors the position is also changed for the other The two descriptors do not share the close on exec flag however The close on exec flag of the copy is off meaning that it will be closed on exec On success the new descriptor is returned Read the close on exec flag If the low order bit is 0 the file will remain open across exec otherwise it will be closed 110 F SETFD F GETFL F SETFL RTEMS POSIX API User s Guide Set the close on exec flag to the value specified by arg only the least significant bit is used Read the descriptor s flags all flags as set by open are returned Set the descriptor s flags to the value specified by arg Only 0 APPEND and 0 NONBLOCK may be set The flags are shared between copies made with dup etc of th
100. essage queue does not exist mq open creates it Message queues can have multiple senders and receivers If mq open is successful the function returns a message queue descriptor Otherwise the function returns a 1 and sets errno to indicate the error The name of the message queue is used as an argument For the best of portability the name of the message queue should begin with a and no other should be in the name Different systems interpret the name in different ways The oflags contain information on how the message is opened if the queue already exists This may be O RDONLY for read only O WRONLY for write only of O RDWR for read and write Chapter 16 Message Passing Manager 255 In addition the oflags contain information needed in the creation of a message queue O_ NONBLOCK If the non block flag is set then the message queue is non blocking and requests to send and receive messages do not block waiting for resources If the flag is not set then the message queue is blocking and a request to send might have to wait for an empty message queue Similarly a request to receive might have to wait for a message to arrive on the queue O_CREAT This call specifies that the call the mq open is to create a new message queue In this case the mode and attribute arguments of the function call are utilized The message queue is created with a mode similar to the creation of a file read and write permission creator group a
101. et EINVAL Nanoseconds field of the timeout argument is invalid EINTR Signal interrupted this function DESCRIPTION This function selects a pending signal based on the set specified in set atomically clears it from the set of pending signals and returns information about that signal in info The calling thread will block up to timeout waiting for the signal to arrive NOTES If timeout is NULL then the calling thread will wait forever for the specified signal set Chapter 2 Signal Manager 33 2 4 17 sigqueue Queue a Signal to a Process CALLING SEQUENCE include signal h int sigqueue pid t pid int signo const union sigval value 23 STATUS CODES EAGAIN No resources available to queue the signal The process has already queued SIGQUEUE MAX signals that are still pending at the re ceiver or the systemwide resource limit has been exceeded EINVAL The value of the signo argument is an invalid or unsupported signal number EPERM The process does not have the appropriate privilege to send the signal to the receiving process ESRCH The process pid does not exist DESCRIPTION This function sends the signal specified by signo to the process pid NOTES NONE 34 RIEMS POSIX API User s Guide 2 4 18 alarm Schedule Alarm CALLING SEQUENCE include signal h unsigned int alarm unsigned int seconds J STATUS CODES This call always succeeds DESCRIPTION If there was a previous a
102. ets foreground process group ID CALLING SEQUENCE int tcsetpgrp STATUS CODES E The DESCRIPTION NOTES This routine is not currently supported by RTEMS but could be in a future version 137 138 RTEMS POSIX API User s Guide Chapter 7 Language Specific Services for the C Programming Language Manager 139 7 Language Specific Services for the C Programming Language Manager 7 1 Introduction The language specific services for the C programming language manager is The directives provided by the language specific services for the C programming language manager are e setlocale Set the Current Locale e fileno Obtain File Descriptor Number for this File e fdopen Associate Stream with File Descriptor e flockfile Acquire Ownership of File Stream e ftrylockfile Poll to Acquire Ownership of File Stream e funlockfile Release Ownership of File Stream e getc_unlocked Get Character without Locking e getchar_unlocked Get Character from stdin without Locking e putc_unlocked Put Character without Locking e putchar_unlocked Put Character to stdin without Locking e setjmp Save Context for Non Local Goto e longjmp Non Local Jump to a Saved Context e sigsetjmp Save Context with Signal Status for Non Local Goto e siglongjmp Non Local Jump with Signal Status to a Saved Context e tzset Initialize Time Conversion Information e strtok_r Reentrant Extract Token from String e asctime_r Reent
103. exist DESCRIPTION Utime changes the access and modification times of the inode specified by filename to the actime and modtime fields of buf respectively If buf is NULL then the access and modification times of the file are set to the current time NOTES NONE Chapter 4 Files and Directories Manager 93 4 4 29 ftruncate truncate a file to a specified length CALLING SEQUENCE include lt unistd h gt int ftrunctate int fd size_t length 25 STATUS CODES ENOTDIR EINVAL ENAMETOOLONG ENOENT EACCES EACCES ELOOP EISDIR EROFS ETXTBSY EIO EFAULT EBADF DESCRIPTION A component of the path prefix is not a directory The pathname contains a character with the high order bit set A component of a pathname exceeded 255 characters or an entire path name exceeded 1023 characters The named file does not exist The named file is not writable by the user Search permission is denied for a component of the path prefix Too many symbolic links were encountered in translating the path name The named file is a directory The named file resides on a read only file system The file is a pure procedure shared text file that is being executed An I O error occurred updating the inode Path points outside the process s allocated address space The d is not a valid descriptor truncate causes the file named by path or referenced by fd to be truncated to at most length bytes in size If t
104. expected Read only file system The mkdir O function creates a new diectory named path The permission bits modified by the file creation mask are set from mode The owner and group IDs for the directory are set from the effective user ID and group ID The new directory may or may not contain entries for and but is otherwise empty NOTES NONE Chapter 4 Files and Directories Manager 79 4 4 16 mkfifo Makes a FIFO special file CALLING SEQUENCE include lt sys types h gt include sys stat h int mkfifo const char path mode_t mode 25 STATUS CODES EACCES Search permission is denied for a directory in a file s path prefix EEXIST The named file already exists ENOENT A file or directory does not exist ENOSPC No space left on disk ENOTDIR A component of the specified path was not a directory when a direc tory was expected EROFS Read only file system DESCRIPTION The mkfifo function creates a new FIFO special file named path The permission bits modified by the file creation mask are set from mode The owner and group IDs for the FIFO are set from the efective user ID and group ID NOTES NONE 80 RIEMS POSIX API User s Guide 4 4 17 unlink Removes a directory entry CALLING SEQUENCE include lt unistd h gt int unlink const char path 3 STATUS CODES EACCES Search permission is denied for a directory in a file s path prefix EBUSY The directory is in use E
105. for the processor The scheduling parameters are interpreted based on the specified policy All policies utilize the thread priority parameter 17 3 Operations There is currently no text in this section 17 4 Services This section details the thread manager s services A subsection is dedicated to each of this manager s services and describes the calling sequence related constants usage and status codes Chapter 17 Thread Manager 265 17 4 1 pthread attr init Initialize a Thread Attribute Set CALLING SEQUENCE include lt pthread h gt int pthread attr init pthread attr t attr 3 STATUS CODES EINVAL The attribute pointer argument is invalid DESCRIPTION The pthread_attr_init routine initializes the thread attributes object specified by attr with the default value for all of the individual attributes NOTES The settings in the default attributes are implementation defined For RTEMS the default attributes are as follows e stackadr is not set to indicate that RTEMS is to allocate the stack memory e stacksize is set to PTHREAD_MINIMUM_STACK_SIZE e contentionscope is set to PTHREAD_SCOPE_PROCESS e inheritsched is set to PTHREAD_INHERIT_SCHED to indicate that the created thread inherits its scheduling attributes from its parent e detachstate is set to PTHREAD_CREATE_JOINABLE 266 RIEMS POSIX API User s Guide 17 4 2 pthread attr destroy Destroy a Thread Attribute Set CALLING SEQUENCE
106. from the corresponding values in the attributes object If contentionscope is PTHREAD_INHERIT_SCHED then the scheduling attributes in the attr structure will be ignored at thread creation time NOTES As required by POSIX RTEMS defines the feature symbol POSIX THREAD PRIORITY SCHEDULING to indicate that the family of routines to which this routine belongs is sup ported 276 RTEMS POSIX API User s Guide 17 4 12 pthread_attr_getinheritsched Get Inherit Scheduler Flag CALLING SEQUENCE include lt pthread h gt int pthread_attr_getinheritsched const pthread attr t attr int inheritsched 25 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The inheritsched pointer argument is invalid DESCRIPTION The pthread_attr_getinheritsched routine is used to object the current value of the inherit scheduler field in the thread attribute object attr NOTES As required by POSIX RTEMS defines the feature symbol _POSIX_THREAD_PRIORITY_ SCHEDULING to indicate that the family of routines to which this routine belongs is sup ported Chapter 17 Thread Manager 277 17 4 13 pthread_attr_setschedpolicy Set Scheduling Policy CALLING SEQUENCE include lt pthread h gt int pthread attr setschedpolicy pthread attr t attr int policy 3 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initiali
107. ged as specified Otherwise the message queue attributes is unchanged and the function returns a value of 1 and sets errno to indicate the error NOTES All other fields in the mq attr are ignored by this call 262 RIEMS POSIX API User s Guide 16 4 8 mq getattr Get Message Queue Attributes CALLING SEQUENCE include lt mqueue h gt int mq getattr mqd t mqdes struct mq attr mqstat E STATUS CODES EBADF The message queue descriptor does not refer to a valid open message queue DESCRIPTION The mqdes argument specifies a message queue descriptor The mq getattr function is used to get status information and attributes of the message queue associated with the message queue descriptor The results are returned in the mq attr structure referenced by the mqstat argument All of these attributes are set at create time except the blocking non blocking behavior of the message queue which can be dynamically set by using mq setattr The attribute mq curmsg is set to reflect the number of messages on the queue at the time that mq getattr was called Upon successful completion the mq getattr function returns zero Otherwise the function returns 1 and sets errno to indicate the error NOTES Chapter 17 Thread Manager 263 17 Thread Manager 17 1 Introduction The thread manager implements the functionality required of the thread manager as de fined by POSIX 1003 1b 1996 This standard requires that a compli
108. gnals specific in set are removed from the currently blocked set SIG_SETMASK The set of currently blocked signals is set to set If oset is not NULL then the set of blocked signals prior to this call is returned in oset NOTES It is not an error to unblock a signal which is not blocked Chapter 2 Signal Manager 25 2 4 9 pthread sigmask Examine and Change Thread Blocked Signals CALLING SEQUENCE include signal h int pthread sigmask int how const sigset t set sigset t oset 23 STATUS CODES EINVAL Invalid argument passed DESCRIPTION This function is used to alter the set of currently blocked signals for the calling thread A blocked signal will not be received by the process The behavior of this function is dependent on the value of how which may be one of the following SIG BLOCK The set of blocked signals is set to the union of set and those signals currently blocked SIG UNBLOCK The signals specific in set are removed from the currently blocked set SIG SETMASK The set of currently blocked signals is set to set If oset is not NULL then the set of blocked signals prior to this call is returned in oset NOTES It is not an error to unblock a signal which is not blocked 26 RTEMS POSIX API User s Guide 2 4 10 kill Send a Signal to a Process CALLING SEQUENCE include lt sys types h gt include lt signal h gt int kill pid t pid int sig Ig STATUS CODES EINVA
109. havior of the message queue If the non block flag is set then the message queue is non blocking and requests to send and receive messages do not block waiting for resources For a blocking message queue a request to send might have to wait for an empty message queue and a request to receive might have to wait for a message to arrive on the queue Both mq maxmsg and mq msgsize affect the sizing of the message queue mq maxmsg specifies how many messages the queue can hold at any one time mq msgsize specifies the size of any one message on the queue If either of these limits is exceeded an error message results Upon return from mq getattr the mq curmsgs is set according to the current state of the message queue This specifies the number of messages currently on the queue 16 2 5 Notification of a Message on the Queue Every message queue has the ability to notify one and only one process whenever the queue s state changes from empty 0 messages to nonempty This means that the process does not have to block or constantly poll while it waits for a message By calling mq notify you can attach a notification request to a message queue When a message is received by an empty queue if there are no processes blocked and waiting for the message then the queue notifies the requesting process of a message arrival There is only one signal sent by the message queue after that the notification request is de registered and another process can at
110. he _exit function terminates the calling process NOTES In RTEMS a process is equivalent to the entire application on a single processor Invoking this service terminates the application Chapter 2 Signal Manager 15 2 Signal Manager 2 1 Introduction The signal manager The directives provided by the signal manager are e sigaddset Add a Signal to a Signal Set e sigdelset Delete a Signal from a Signal Set e sigfillset Fill a Signal Set e sigismember s Signal a Member of a Signal Set e sigemptyset Empty a Signal Set e sigaction Examine and Change Signal Action e pthread kill Send a Signal to a Thread e sigprocmask Examine and Change Process Blocked Signals e pthread sigmask Examine and Change Thread Blocked Signals e kill Send a Signal to a Process e sigpending Examine Pending Signals e sigsuspend Wait for a Signal e pause Suspend Process Execution e sigwait Synchronously Accept a Signal e sigwaitinfo Synchronously Accept a Signal e sigtimedwait Synchronously Accept a Signal with Timeout e sigqueue Queue a Signal to a Process e alarm Schedule Alarm 2 2 Background 2 2 1 Signal Delivery Signals directed at a thread are delivered to the specified thread Signals directed at a process are delivered to a thread which is selected based on the following algorithm 1 If the action for this signal is currently SIG IGN then the signal is simply ignored 2 Ifthe current
111. he file previously was larger than this size the extra data is lost With ftruncate the file must be open for writing NOTES NONE 94 RIEMS POSIX API User s Guide 4 4 30 truncate truncate a file to a specified length CALLING SEQUENCE include lt unistd h gt int trunctate const char path size_t 25 length STATUS CODES ENOTDIR EINVAL ENAMETOOLONG ENOENT EACCES EACCES ELOOP EISDIR EROFS ETXTBSY EIO EFAULT EBADF DESCRIPTION A component of the path prefix is not a directory The pathname contains a character with the high order bit set A component of a pathname exceeded 255 characters or an entire path name exceeded 1023 characters The named file does not exist The named file is not writable by the user Search permission is denied for a component of the path prefix Too many symbolic links were encountered in translating the path name The named file is a directory The named file resides on a read only file system The file is a pure procedure shared text file that is being executed An I O error occurred updating the inode Path points outside the process s allocated address space The d is not a valid descriptor truncate causes the file named by path or referenced by fd to be truncated to at most length bytes in size If the file previously was larger than this size the extra data is lost With ftruncate the file must be open for writing NOTES
112. hest priority message is be at the front of the queue The maximum number of messages that a message queue may accept is specified at creation by the mq maxmsg field of the attribute structure If this amount is exceeded the behavior of the process is determined according to what oflag was used when the message queue was opened If the queue was opened with O NONBLOCK flag set the process does not block and an error is returned If the O NONBLOCK flag was not set the process does block and wait for space on the queue 16 3 5 Receiving a Message from a Message Queue The mq receive function is used to receive the oldest of the highest priority message s from the message queue specified by mqdes The messages are received in FIFO order within the priorities The received message s priority is stored in the location referenced by the msg_prio If the msg prio is a NULL the priority is discarded The message is removed and stored in an area pointed to by msg ptr whose length is of msg len The msg len must be at least equal to the mq msgsize attribute of the message queue The blocking behavior of the message queue is set by O NONBLOCK at mq open or by setting ONONBLOCK in mq flags in a call to mq setattr If this is a blocking queue the process does block and wait on an empty queue If this a non blocking queue the process does not block Upon successful completion mq receive returns the length of the selected message in bytes and the
113. hread then they will remain joined with that thread Any subsequent calls to pthread join on the specified thread will fail Chapter 17 Thread Manager 285 17 4 20 pthread join Wait for Thread Termination CALLING SEQUENCE include lt pthread h gt int pthread_join pthread_t thread void value ptr E STATUS CODES ESRCH The thread specified is invalid EINVAL The thread specified is not a joinable thread EDEADLK A deadlock was detected or thread is the calling thread DESCRIPTION The pthread join routine suspends execution of the calling thread until thread terminates If thread has already terminated then this routine returns immediately The value returned by thread i e passed to pthread exit is returned in value ptr When this routine returns then thread has been temrinated NOTES The results of multiple simultaneous joins on the same thread is undefined If any threads have previously joined with the specified thread then they will remain joined with that thread Any subsequent calls to pthread join on the specified thread will fail If value ptr is NULL then no value is returned 286 RIEMS POSIX API User s Guide 17 4 21 pthread self Get Thread ID CALLING SEQUENCE include lt pthread h gt pthread_t pthread_self void STATUS CODES The value returned is the ID of the calling thread DESCRIPTION This routine returns the ID of the calling thread NOTES NONE Chapt
114. iable A component of the specified pathname was not a directory when a directory was expected The effective UID does not match the owner of the file and is not Zero Read only file system The mode of the file given by path or referenced by filedes is changed NOTES NONE 90 RIEMS POSIX API User s Guide 4 4 26 getdents Get directory entries CALLING SEQUENCE include lt unistd h gt include lt linux dirent h gt include lt linux unistd h gt long getdents int dd fd char dd buf int dd len d STATUS CODES A successful call to getdents returns th the number of bytes read On end of directory 0 is returned When an error occurs 1 is returned and errno is set appropriately EBADF Invalid file descriptor fd EFAULT Argument points outside the calling process s address space EINVAL Result buffer is too small ENOENT No such directory ENOTDIR File descriptor does not refer to a directory DESCRIPTION getdents reads several dirent structures from the directory pointed by fd into the memory area pointed to by dirp The parameter count is the size of the memory area NOTES NONE Chapter 4 Files and Directories Manager 91 4 4 27 chown Changes the owner and or group of a file CALLING SEQUENCE include lt sys types h gt include lt unistd h gt int chown const char path uid_t gid_t J owner group STATUS CODES EACCES EINVAL ENAMETOOLONG ENOENT ENO
115. icy and parameters associated with thread The current policy and associated parameters values returned in policy and param respectively NOTES As required by POSIX RTEMS defines the feature symbol POSIX THREAD PRIORITY SCHEDULING to indicate that the family of routines to which this routine belongs is sup ported Chapter 18 Key Manager 291 18 Key Manager 18 1 Introduction The key manager The directives provided by the key manager are e pthread key create Create Thread Specific Data Key e pthread key delete Delete Thread Specific Data Key e pthread setspecific Set Thread Specific Key Value e pthread getspecific Get Thread Specific Key Value 18 2 Background There is currently no text in this section 18 3 Operations There is currently no text in this section 18 4 Directives This section details the key manager s directives A subsection is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status codes 292 RIEMS POSIX API User s Guide 18 4 1 pthread key create Create Thread Specific Data Key CALLING SEQUENCE include lt pthread h gt int pthread key create pthread key t key void destructor void 25 STATUS CODES EAGAIN There were not enough resources available to create another key ENOMEM Insufficient memory exists to create the key Chapter 18 Key Manager 293 18 4 2 pthread key delete Dele
116. il the next time resources are returned to the semaphore If there is more than one task waiting for a semaphore the tasks will be placed in the queue 9 2 2 sem t Structure The sem t structure is used to represent semaphores It is passed as an argument to the semaphore directives and is defined as follows typedef int sem t 9 2 3 Building a Semaphore Attribute Set 174 RTEMS POSIX API User s Guide 9 3 Operations 9 3 1 Using as a Binary Semaphore Although POSIX supports mutexes they are only visible between threads To work between processes a binary semaphore must be used Creating a semaphore with a limit on the count of 1 effectively restricts the semaphore to being a binary semaphore When the binary semaphore is available the count is 1 When the binary semaphore is unavailable the count is 0 Since this does not result in a true binary semaphore advanced binary features like the Priority Inheritance and Priority Ceiling Protocols are not available There is currently no text in this section 9 4 Directives This section details the semaphore manager s directives A subsection is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status codes Chapter 9 Semaphore Manager 175 9 4 1 sem init Initialize an unnamed semaphore CALLING SEQUENCE int sem init sem t sem int pshared unsigned int value 3 STATUS CODES EINVAL The val
117. ime r 25 STATUS CODES E The DESCRIPTION NOTES Chapter 7 Language Specific Services for the C Programming Language Manager 159 7 4 19 gmtime r Reentrant UTC Time Conversion CALLING SEQUENCE int gmtime r 25 STATUS CODES E The DESCRIPTION NOTES 160 RIEMS POSIX API User s Guide 7 4 20 localtime r Reentrant Local Time Conversion CALLING SEQUENCE int localtime r 25 STATUS CODES E The DESCRIPTION NOTES Chapter 7 Language Specific Services for the C Programming Language Manager 7 4 21 rand r Reentrant Random Number Generation CALLING SEQUENCE int rand r 25 STATUS CODES E The DESCRIPTION NOTES 161 162 RTEMS POSIX API User s Guide Chapter 8 System Databases Manager 163 8 System Databases Manager 8 1 Introduction The system databases manager is The directives provided by the system databases manager are e getgrgid Get Group File Entry for ID e getgrgid_r Reentrant Get Group File Entry e getgrnam Get Group File Entry for Name e getgrnam r Reentrant Get Group File Entry for Name e getpwuid Get Password File Entry for UID e getpwuid r Reentrant Get Password File Entry for UID e getpwnam Get Password File Entry for Name e getpwnam_r Reentrant Get Password File Entry for Name 8 2 Background There is currently no text in this section 8 3 Operations There is currently no text in this section 8 4 Directives Thi
118. ing memchr Find character in memory memcmp Compare two memory areas memcpy Copy memory regions memmove Move possibly overlapping memory memset Set an area of memory rindex Reverse search for character in string strcasecmp Compare strings ignoring case strcat Concatenate strings strchr Search for character in string strcmp Character string compare strcoll Locale specific character string compare strcpy Copy string strcspn Count chars not in string strerror Convert error number to string 308 20 8 20 9 RTEMS POSIX API User s Guide strlen Character string length strlwr Convert string to lower case strncasecmp Compare strings ignoring case strncat Concatenate strings strncmp Character string compare strncpy Counted copy string strpbrk Find chars in string strrchr Reverse search for character in string strspn Find initial match strstr Find string segment strtok Get next token from a string strupr Convert string to upper case strxfrm Transform string Signal Handling signal h raise Send a signal signal Specify handler subroutine for a signal Time Functions time h asctime Format time as string clock Cumulative processor time ctime Convert time to local and format as string difftime Subtract two times gmtime Convert time to UTC GMT traditional representation localtime Convert time to local representation mktime Convert time
119. it r XXX fcntl r XXX open r XXX write r XXX fork r XXX read r XXX fstat r XXX sbrk r XXX gettimeofday_r XXX stat r XXX getpid r XXX times r XXX e Time function asctime r XXX RTEMS POSIX API User s Guide Chapter 20 Services Provided by C Library libc 20 10 Miscellaneous Macros and Functions e unctrl Return printable representation of a character 20 11 Variable Argument Lists e Stdarg stdarg h e va start XXX e va arg XXX e va end XXX e Vararg varargs h e va alist XXX e va start trad XXX e va arg trad XXX e va end trad XXX 20 12 Reentrant System Calls e open r XXX e close r XXX e lseek r XXX e read r XXX e write r XXX e fork r XXX e wait r XXX e stat r XXX e fstat r XXX e link r XXX e unlink_r XXX e sbrk r XXX 312 RTEMS POSIX API User s Guide Chapter 21 Services Provided by the Math Library libm 313 21 Services Provided by the Math Library libm 21 1 Introduction This section lists the routines that provided by the Newlib Math Library libm 21 2 Standard Math Functions math h e acos Arccosine e acosh Inverse hyperbolic cosine e asin Arcsine e asinh Inverse hyperbolic sine e atan Arctangent e atan2 Arctangent of y x e atanh Inverse hyperbolic tangent e jN Bessel functions ON and yN e cbrt Cube root e copysign Sign of Y and magnitude of X e cosh Hyperbolic cosine e erf Error function erf and erfc
120. l set NOTES NONE 17 18 RIEMS POSIX API User s Guide 2 4 2 sigdelset Delete a Signal from a Signal Set CALLING SEQUENCE include signal h int sigdelset sigset t set int signo 3 STATUS CODES EINVAL Invalid argument passed DESCRIPTION This function deletes the signo to the specified signal set NOTES NONE Chapter 2 Signal Manager 2 4 3 sigfillset Fill a Signal Set CALLING SEQUENCE include signal h int sigfillset sigset t set 3 STATUS CODES EINVAL Invalid argument passed DESCRIPTION This function fills the specified signal set such that all signals are set NOTES NONE 19 20 RIEMS POSIX API User s Guide 2 4 4 sigismember Is Signal a Member of a Signal Set CALLING SEQUENCE include signal h int sigismember const sigset t set int signo 3 STATUS CODES EINVAL Invalid argument passed DESCRIPTION This function returns returns 1 if signo is a member of set and 0 otherwise NOTES NONE Chapter 2 Signal Manager 2 4 5 sigemptyset Empty a Signal Set CALLING SEQUENCE include signal h int sigemptyset sigset t set 3 STATUS CODES EINVAL Invalid argument passed DESCRIPTION This function fills the specified signal set such that all signals are cleared NOTES NONE 21 22 RTEMS POSIX API User s Guide 2 4 6 sigaction Examine and Change Signal Action CALLING SEQUENCE include signal h
121. lable for another process to attach for notification mq close has no effect on the contents of the message queue all the messages that were in the queue remain in the queue Chapter 16 Message Passing Manager 25T 16 4 3 mq unlink Remove a Message Queue CALLING SEQUENCE include lt mqueue h gt int mq unlink const char name J STATUS CODES EINVAL The descriptor does not represent a valid message queue DESCRIPTION The mq unlink function removes the named message queue If the message queue is not open when mq unlink is called then the queue is immediately eliminated Any messages that were on the queue are lost and the queue can not be opened again If processes have the queue open when mq unlink is called the removal of the queue is delayed until the last process using the queue has finished However the name of the message queue is removed so that no other process can open it Upon successful completion the function returns a value of zero Otherwise the named message queue is not changed by this function call and the function returns a value of 1 and sets errno to indicate the error NOTES Calls to mq open to re create the message queue may fail until the message queue is actually removed However the mq unlink call need not block until all references have been closed it may return immediately 258 RIEMS POSIX API User s Guide 16 4 4 mq send Send a Message to a Message Queue CALLING SEQU
122. larm request with time remaining then this routine returns the number of seconds until that outstanding alarm would have fired If no previous alarm request was outstanding then zero is returned NOTES NONE Chapter 3 Process Environment Manager 35 3 Process Environment Manager 3 1 Introduction The process environment manager is The directives provided by the process environment manager are e getpid Get Process ID e getppid Get Parent Process ID e getuid Get User ID e geteuid Get Effective User ID e getgid Get Real Group ID e getegid Get Effective Group ID e setuid Set User ID e setgid Set Group ID e getgroups Get Supplementary Group IDs e getlogin Get User Name e getlogin r Reentrant Get User Name e getpgrp Get Process Group ID e setsid Create Session and Set Process Group ID e setpgid Set Process Group ID for Job Control e uname Get System Name e times Get Process Times e getenv Get Environment Variables e setenv Set Environment Variables e ctermid Generate Terminal Pathname e ttyname Determine Terminal Device Name e ttyname_r Reentrant Determine Terminal Device Name e isatty Determine if File Descriptor is Terminal e sysconf Get Configurable System Variables 3 2 Background There is currently no text in this section 3 3 Operations There is currently no text in this section 36 RTEMS POSIX API User s Guide 3 4 Directives This se
123. ly executing thread has the signal unblocked then the signal is delivered to it 3 If any threads are currently blocked waiting for this signal sigwait then the signal is delivered to the highest priority thread waiting for this signal 16 RTEMS POSIX API User s Guide 4 If any other threads are willing to accept delivery of the signal then the signal is delivered to the highest priority thread of this set In the event multiple threads of the same priority are willing to accept this signal then priority is given first to ready threads then to threads blocked on calls which may be interrupted and finally to threads blocked on non interruptible calls 5 In the event the signal still can not be delivered then it is left pending The first thread to unblock the signal sigprocmask or pthread_sigprocmask or to wait for this signal sigwait will be the recipient of the signal 2 3 Operations There is currently no text in this section 2 4 Directives This section details the signal manager s directives A subsection is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status codes Chapter 2 Signal Manager 2 4 1 sigaddset Add a Signal to a Signal Set CALLING SEQUENCE include signal h int sigaddset sigset t set int signo 3 STATUS CODES EINVAL Invalid argument passed DESCRIPTION This function adds the signo to the specified signa
124. mbers e strtod String to double or float e strtol String to long e strtoul String to unsigned long e system Execute command string e wcstombs Minimal wide string to multibyte string converter e wctomb Minimal wide character to multibyte converter 306 20 3 RIEMS POSIX API User s Guide Character Type Macros and Functions ctype h isalnum Alphanumeric character predicate isalpha Alphabetic character predicate isascii ASCII character predicate iscntrl Control character predicate isdigit Decimal digit predicate islower Lower case character predicate isprint Printable character predicates isprint isgraph ispunct Punctuation character predicate isspace Whitespace character predicate isupper Uppercase character predicate isxdigit Hexadecimal digit predicate toascii Force integers to ASCII range tolower Translate characters to lower case toupper lranslate characters to upper case Input and Output stdio h clearerr Clear file or stream error indicator fclose Close a file feof Test for end of file ferror Test whether read write error has occurred fflush Flush buffered file output fgetc Get a character from a file or stream fgetpos Record position in a stream or file fgets Get character string from a file or stream fiprintf Write formatted output to file integer only fopen Open a file fdopen Turn an open file into a stream fputc Write a character on a
125. message is removed from the queue 16 3 6 Notification of Receipt of a Message on an Empty Queue The mq notify function registers the calling process to be notified of message arrival at an empty message queue Every message queue has the ability to notify one and only one process whenever the queue s state changes from empty 0 messages to nonempty This means that the process does not have to block or constantly poll while it waits for a message By calling mq notify a notification request is attached to a message queue When a message is received by an empty queue if there are no processes blocked and waiting for the message then the queue notifies the requesting process of a message arrival There is only one signal sent by the message queue after that the notification request is de registered and another process can attach its notification request After receipt of a notification a process must re register if it wishes to be notified again If there is a process blocked and waiting for the message that process gets the message and notification is not sent Only one process can have a notification request attached to a message queue at any one time If another process attempts to register a notification request it fails You can de register for a message queue by passing a NULL to mq notify this removes any notification request attached to the queue Whenever the message queue is closed all notification attachments are removed Ch
126. multiple processes and for passing messages among tasks and ISRs Message queues can contain a variable number of messages from 0 to an upper limit that is user defined The maximum length of the message can be set on a per message queue basis Normally messages are sent and received from the message queue in FIFO order However messages can also be prioritized and a priority queue established for the passing of messages Synchronization is needed when a task waits for a message to arrive at a queue Also a task may poll a queue for the arrival of a message 250 RTEMS POSIX API User s Guide The message queue descriptor mod t represents the message queue It is passed as an argument to all of the message queue functions 16 2 4 Building a Message Queue Attribute Set The mq attr structure is used to define the characteristics of the message queue typedef struct mq attr long mq flags long mq maxmsg long mq msgsize long mq curmsgs F All of these attributes are set when the message queue is created using mq open The mq_flags field is not used in the creation of a message queue it is only used by mq setattr and mq getattr The structure mq attr is passed as an argument to mq setattr and mq getattr The mq flags contain information affecting the behavior of the message queue The O NONBLOCK mq flag is the only flag that is defined In mq setattr the mq flag can be set to dynamically change the blocking and non blocking be
127. n 213 11 4 9 pthread cond wait Wait on a Condition Variable EE 214 11 4 10 pthread cond timedwait Wait with Timeout a Condition Variable 0 0 naonnu 215 12 Memory Management Manager 217 12 1 Fotoclub Age IR Ee eed eC Co aen ed 217 12 2 Backgro nd user e pte rats e E a orm Boat Se 12 3 Operations ceu cea eerie bee be pee ER teed 217 12 4 JDIFeCUves use onere ER o eene A 217 12 4 1 mlockall Lock the Address Space of a Process rre 218 12 4 2 munlockall Unlock the Address Space of a Process NEE EE 219 12 4 8 mlock Lock a Range of the Process Address Space DTI 220 12 4 4 munlock Unlock a Range of the Process Address SPACO Pr 291 12 4 5 mmap Map Process Addresses to a Memory KEE a eds cette gin eee ebd eats 222 12 4 6 munmap Unmap Previously Mapped Addresses duco Ic DUUM US ara ae IL DM RU D LE UE 223 12 4 7 mprotect Change Memory Protection 224 12 4 8 msync Memory Object Synchronization 229 12 4 9 shm open Open a Shared Memory Object 226 12 4 10 shm unlink Remove a Shared Memory Object 13 Scheduler Manager LL 229 13 1 Introduction he 229 183 2 JBackground i2 uda aeaio aana e ER os 229 13 2 E re 229 13 2 2 Scheduling Pole 229 13 3 Operations 229 T34 Directives Bett AE mete Kee te ees 230 13 4 1 sched get priority min Get Minimum Priority Value eri RR teran Beis kite ie 8G pe gue dedu 231 13 4 2 sched_get_priority_max
128. nality they are provided and do work in a coherent manner This is significant when porting existing code from UNIX to RTEMS e Implementation e The current implementation of dup is insufficient e FIFOs mkfifo are not currently implemented e Asynchronous IO is not implemented e The flockfile family is not implemented e getc putc unlocked family is not implemented e Shared Memory is not implemented e Mapped Memory is not implemented e NOTES e For Shared Memory and Mapped Memory services it is unclear what level of support is appropriate and possible for RTEMS e lunctional Testing e Tests for unimplemented services e Performance Testing e There are no POSIX Performance Tests e Documentation e Many of the service description pages are not complete in this manual These need to be completed and information added to the background and opera tions sections e Example programs not just tests would be very nice 316 RTEMS POSIX API User s Guide Command and Variable Index 317 Command and Variable Index 7 F E ODE TT TEES 14 fchmnod i2 eee eee ees able haa beans 89 EE aere NEE 109 fdatasyne cies ao rug TRE EA 113 A e EE 143 f1lenO csep y er MU PR ES qr ER 142 pnm RT dnd PUN EE T DEENEN 144 aio cancel dp xp bae RR Ep ao dda 121 a E LOU 4 al EEN is tt nee heed Ge EE Ze 119 fpathconf 00 0 cece sss 97 aio A i 123 Istat se etuer eode n ut PENES 85 aio_read sese nnn 116 EEN 112 aio return
129. nd others The geometry of the message queue is contained in the attribute structure This includes mq msgsize that dictates the maximum size of a single message and the mq maxmsg that dictates the maximum number of messages the queue can hold at one time If a NULL is used in the mq attr argument then the message queue is created with implementation defined defaults O_EXCL is always set if O CREAT flag is set If the message queue already exists O EXCL causes an error message to be returned otherwise the new message queue fails and appends to the existing one NOTES The mq open function does not add or remove messages from the queue When a new message queue is being created the mq flag field of the attribute structure is not used 256 RIEMS POSIX API User s Guide 16 4 2 mq close Close a Message Queue CALLING SEQUENCE include lt mqueue h gt int mq_close mqd_t mqdes STATUS CODES EINVAL The descriptor does not represent a valid open message queue DESCRIPTION The mq close function removes the association between the message queue descriptor mqdes and its message queue If mq close is successfully completed the function re turns a value of zero otherwise the function returns a value of 1 and sets errno to indicate the error NOTES If the process had successfully attached a notification request to the message queue via mq notify this attachment is removed and the message queue is avai
130. not a proper value DESCRIPTION The 1seek function repositions the offset of the file descriptor fildes to the argument offset according to the directive whence The argument fildes must be an open file descriptor Lseek repositions the file pointer fildes as follows e If whence is SEEK SET the offset is set to offset bytes e If whence is SEEK CUR the offset is set to its current location plus offset bytes e If whence is SEEK END the offset is set to the size of the file plus offset bytes The 1seek function allows the file offset to be set beyond the end of the existing end of file of the file If data is later written at this point subsequent reads of the data in the gap return bytes of zeros until data is actually written into the gap Some devices are incapable of seeking The value of the pointer associated with such a device is undefined NOTES NONE 112 RTEMS POSIX API User s Guide 5 4 9 fsync Synchronize file complete in core state with that on disk CALLING SEQUENCE int fsync int fd STATUS CODES On success zero is returned On error 1 is returned and errno is set appropriately EBADF fd is not a valid descriptor open for writing EINVAL fd is bound to a special file which does not support support synchro nization EROFS fd is bound to a special file which does not support support synchro nization EIO An error occurred during synchronization DESCRIPTION fsync copies all in core par
131. nt opendir const char dirname 5 STATUS CODES EACCES EMFILE ENFILE ENOENT ENOMEM ENOTDIR DESCRIPTION Search permission was denied on a component of the path prefix of dirname or read permission is denied Too many file descriptors in use by process Too many files are currently open in the system Directory does not exist or name is an empty string Insufficient memory to complete the operation name is not a directory This routine opens a directory stream corresponding to the directory specified by the dirname argument The directory stream is positioned at the first entry NOTES The routine is implemented in Cygnus newlib 64 RTEMS POSIX API User s Guide 4 4 2 readdir Reads a directory CALLING SEQUENCE include lt sys types h gt include lt dirent h gt int readdir DIR dirp dr STATUS CODES EBADF Invalid file descriptor DESCRIPTION The readdir function returns a pointer to a structure dirent representing the next directory entry from the directory stream pointed to by dirp On end of file NULL is returned The readdir function may or may not return entries for or Your program should tolerate reading dot and dot dot but not require them The data pointed to be readdir may be overwritten by another call to readdir for the same directory stream It will not be overwritten by a call for another directory NOTES If ptr is not a pointer returned by mallo
132. on values for files 95 4 4 32 fpathconf Gets configuration values for files 97 4 4 33 mknod create a directory 00 99 ii iv RTEMS POSIX API User s Guide 5 Input and Output Primitives Manager 101 D Introduction seiis ope de neta ROUES 101 5 2 Backeroind oed ird rre PR dead 101 b 9 Operatlohs cesreibemekrtenen ema D ea RE Pr e A AE 101 9 0 EE 101 5 4 1 pipe Create an Inter Process Channel 102 5 4 2 dup Duplicates an open file descriptor 103 5 4 3 dup2 Duplicates an open file descriptor 104 5 4 4 close Closes a file sees anann 105 5 4 5 read Reads from aple 106 5 4 6 write Writes to a file 005 108 5 4 7 fcntl Manipulates an open file descriptor 109 5 4 8 Jeck Reposition read write file offset 111 5 4 9 fsync Synchronize file complete in core state with that on diSK 0 0 ccc cece cnet n eee nneee 112 5 4 10 fdatasync Synchronize file in core data with that OUSGISK PETERET 113 5 4 11 mount Mount a file system 114 5 4 12 unmount Unmount file systems 115 5 4 13 aio read Asynchronous Read 116 5 4 14 aio_write Asynchronous Write EES 5 4 15 lio listio List Directed I O 118 5 4 16 aio error Retrieve Error Status of Asynchronous T O EEN a oues Ace a qd e topo ap Uu enw gare mina 119 5 4 17 aio_return Retrieve Return Status As
133. or a directory in a file s path prefix Length of a filename string exceeds PATH MAX and POSIX_NO_TRUNC is in effect A file or directory does not exist A component of the specified pathname was not a directory when a directory was expected Operation is not permitted Process does not have the appropriate priviledges or permissions to perform the requested operations Read only file system Set the file permission bits the set user ID bit and the set group ID bit for the file named by path to mode If the effective user ID does not match the owner of the file and the calling process does not have the appropriate privileges chmod returns 1 and sets errno to EPERM NOTES NONE Chapter 4 Files and Directories Manager 89 4 4 25 fchmod Changes permissions of a file CALLING SEQUENCE include lt sys types h gt include lt sys stat h gt int fchmod int fildes mode_t mode 5 STATUS CODES EACCES EBADF EFAULT EIO ELOOP ENAMETOOLONG ENOENT ENOMEM ENOTDIR EPERM EROFS DESCRIPTION Search permission is denied for a directory in a file s path prefix The descriptor is not valid path points outside your accessible address space A low level I o error occurred while modifying the inode path contains a circular reference Length of a filename string exceeds PATH MAX and POSIX NO TRUNC is in effect A file or directory does no exist Insufficient kernel memory was aval
134. orking directory The corresponding macro is POSIX PATH MAX 96 RTEMS POSIX API User s Guide PC PIPE BUF returns the size of the pipe buffer where filedes must refer to a pipe or FIFO and path must refer to a FIFO The corresponding macro is POSIX PIPE BUF PC CHOWN RESTRICTED returns nonzero if the chown 2 call may not be used on this file If filedes or path refer to a directory then this applies to all files in that directory The corresponding macro is POSIX CHOWN RESTRICTED NOTES Files with name lengths longer than the value returned for name equal DC NAME MAX may exist in the given directory Chapter 4 Files and Directories Manager 97 4 4 32 fpathconf Gets configuration values for files CALLING SEQUENCE include lt unistd h gt int fpathconf int filedes int name STATUS CODES EINVAL EACCES ENAMETOOLONG ENOENT ENOTDIR DESCRIPTION Invalid argument Permission to write the file is denied Length of a filename string exceeds PATH MAX and POSIX NO TRUNC is in effect A file or directory does not exist A component of the specified path was not a directory whan a di rectory was expected pathconf gets a value for the configuration option name for the open file descriptor filedes The possible values for name are PC LINK MAX PC MAX CANON PC MAX INPUT PC NAME MAX PC PATH MAX returns the maximum number of links to the file If filedes or pa
135. pecify the error that occurred Multiprocessing is currently not supported in this implementation Chapter 9 Semaphore Manager 177 9 4 3 sem_open Open a named semaphore CALLING SEQUENCE int sem_open const char name int oflag 3 ARGUMENTS The following flag bit may be set in oflag O_CREAT Creates the semaphore if it does not already exist If O CREAT is set and the semaphore already exists then O CREAT has no effect Otherwise sem_open creates a semaphore The O CREAT flag requires the third and fourth argument mode and value of type mode t and unsigned int respectively 0 EXCL If O EXCL and O_CREAT are set all call to sem open shall fail if the semaphore name exists STATUS CODES EACCES Valid name specified but oflag permissions are denied or the semaphore name specified does not exist and permission to create the named semaphore is denied EEXIST O CREAT and O_EXCL are set and the named semaphore already exists EINTR The sem open operation was interrupted by a signal EINVAL The sem open operation is not supported for the given name EMFILE Too many semaphore descriptors or file descriptors in use by this process ENAMETOOLONG The length of the name exceed PATH MAX or name component is longer than NAME MAX while POSIX NO TRUNC is in effect ENOENT O CREAT is not set and the named semaphore does not exist ENOSPC There is insufficient space for the creation of a new named semaphore
136. pointer parameter is invalid EINVAL The prioceiling parameter is an invalid priority EINVAL The specified mutex is invalid DESCRIPTION NOTES 203 204 RTEMS POSIX API User s Guide 10 4 16 pthread mutex getprioceiling Get the Current Priority Ceiling CALLING SEQUENCE include lt pthread h gt int pthread_mutex_getprioceiling pthread_mutex_t mutex int prioceiling 5 STATUS CODES EINVAL The prioceiling pointer parameter is invalid EINVAL The specified mutex is invalid DESCRIPTION NOTES Chapter 11 Condition Variable Manager 205 11 Condition Variable Manager 11 1 Introduction The condition variable manager The directives provided by the condition variable manager are e pthread condattr init Initialize a Condition Variable Attribute Set e pthread condattr destroy Destroy a Condition Variable Attribute Set e pthread condattr setpshared Set Process Shared Attribute e pthread_condattr_getpshared Get Process Shared Attribute e pthread cond init Initialize a Condition Variable e pthread cond destroy Destroy a Condition Variable e pthread cond signal Signal a Condition Variable e pthread cond broadcast Broadcast a Condition Variable e pthread cond wait Wait on a Condition Variable e pthread cond timedwait With with Timeout a Condition Variable 11 2 Background There is currently no text in this section 11 3 Operations There is currently no text in this s
137. prioceiling const pthread mutexattr t attr int prioceiling 25 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The prioceiling pointer argument is invalid DESCRIPTION The pthread mutexattr getprioceiling routine is used to obtain the value of the prioceiling attribute This attribute specifies the priority ceiling for this mutex NOTES NONE Chapter 10 Mutex Manager 195 10 4 7 pthread mutexattr setpshared Set the Visibility CALLING SEQUENCE include lt pthread h gt int pthread mutexattr setpshared pthread mutexattr t attr int pshared 3 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The pshared argument is invalid DESCRIPTION NOTES 196 RIEMS POSIX API User s Guide 10 4 8 pthread mutexattr getpshared Get the Visibility CALLING SEQUENCE include lt pthread h gt int pthread mutexattr getpshared const pthread mutexattr t attr int pshared 25 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The pshared pointer argument is invalid DESCRIPTION NOTES Chapter 10 Mutex Manager 197 10 4 9 pthread mutex init Initialize a Mutex CALLING SEQUENCE include lt pthread h gt int pthread_mutex_init pthread_mutex_t mutex const pthread mutexattr t attr 2
138. process group id 137 323 sets terminal input baud rate 128 sets terminal output baud rate 129 signal a condition variable 212 suspend process execution lisse esses 29 suspends restarts terminal output 135 synchronize file complete in 112 synchronize file 1n sese e RR REESE 113 synchronously accept a signal 30 31 synchronously accept a signal with timeout 32 T terminate a process ises coret erensia sarsies 14 terminate the current thread 283 truncate a file to a specified length 93 94 U unlink a semaphore 2 ee sees 180 unlock a millex dees Sie eer bm bb apnea 202 unlock a range of the process address space 221 unlock a semaphore eee eeee 184 unlock the address space of a process 219 unmap previously mapped addresses 229 unmount filesystems ss ie cerencresgieuiiriri 115 W wait for a sigtial ung ER AEN EA 28 wait for asynchronous i o request 122 wait for process termination 12 13 wait for thread termination 285 wait on a condition variable 214 wait on a semaphore seeseeesess 181 wait on a semaphore for a specified time 183 wait with timeout a condition variable 215 waits for all output to be transmitted to the terminal zi ene dux oso Secher 139 writes t EE 10
139. pt service routine Chapter 11 Condition Variable Manager 213 11 4 8 pthread cond broadcast Broadcast a Condition Variable CALLING SEQUENCE include lt pthread h gt int pthread_cond_broadcast pthread cond t cond 3 STATUS CODES EINVAL The specified condition variable is not valid DESCRIPTION NOTES This routine should not be invoked from a handler from an asynchronous signal handler or an interrupt service routine 214 RIEMS POSIX API User s Guide 11 4 9 pthread cond wait Wait on a Condition Variable CALLING SEQUENCE include lt pthread h gt int pthread_cond_wait pthread_cond_t cond pthread_mutex_t mutex E STATUS CODES EINVAL DESCRIPTION NOTES The specified condition variable or mutex is not initialized OR differ ent mutexes were specified for concurrent pthread_cond_wait and pthread cond timedwait operations on the same condition variable OR the mutex was not owned by the current thread at the time of the call Chapter 11 Condition Variable Manager 215 11 4 10 pthread Variable cond timedwait Wait with Timeout a Condition CALLING SEQUENCE include lt pthread h gt int pthread_cond_timedwait pthread_cond_t cond pthread_mutex_t mutex const struct timespec abstime 5 STATUS CODES EINVAL ETIMEDOUT DESCRIPTION NOTES The specified condition variable or mutex is not initialized OR differ ent mutexes were specified for concur
140. ptor Number for this File rur 142 7 4 3 fdopen Associate Stream with File Descriptor 143 7 4 4 flockfile Acquire Ownership of File Stream 144 7 4 5 ftrylockfile Poll to Acquire Ownership of File Steeg cue bb d Ee EEN da Rha eee Pp ded s 145 7 4 6 funlockfile Release Ownership of File Stream 146 7 4 7 getc unlocked Get Character without Locking 147 7 4 8 getchar unlocked Get Character from stdin without Loeking 22b be RE Ra guns t dane 148 7 4 9 putc unlocked Put Character without Locking e rcc 149 7 4 10 putchar unlocked Put Character to stdin without Locking 222 reo eed SA aE edad Hed 150 7 4 11 setjmp Save Context for Non Local Goto 1251 7 4 12 longjmp Non Local Jump to a Saved Context OD 152 7 4 13 sigsetjmp Save Context with Signal Status for Non Local Goto sees 153 7 4 14 siglongjmp Non Local Jump with Signal Status to Saved Context ug peace tcc Eon a 154 7 4 15 tzset Initialize Time Conversion Information 155 7 4 16 strtok r Reentrant Extract Token from String eatin Sateen 156 7 4 17 asctime_r Reentrant struct tm to ASCII Time Conversio WEE 157 7 4 18 ctime r Reentrant time t to ASCII Time Conversion uusgusscadec ize gren hk Patan 158 7 4 19 gmtime r Reentrant UTC Time Conversion 159 1 4 20 localtime r Reentrant Local Time Conversion 7 4 21 randr Reentrant Random Number Generation vi RTEMS POSIX
141. rant struct tm to ASCII Time Conversion e ctime_r Reentrant time t to ASCII Time Conversion e gmtime_r Reentrant UTC Time Conversion e localtime_r Reentrant Local Time Conversion e rand_r Reentrant Random Number Generation 7 2 Background There is currently no text in this section 7 3 Operations There is currently no text in this section 140 RTEMS POSIX API User s Guide 7 4 Directives This section details the language specific services for the C programming language man ager s directives A subsection is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status codes Chapter 7 Language Specific Services for the C Programming Language Manager 7 4 1 setlocale Set the Current Locale CALLING SEQUENCE int setlocale 25 STATUS CODES E The DESCRIPTION NOTES 141 142 RIEMS POSIX API User s Guide 7 4 2 fileno Obtain File Descriptor Number for this File CALLING SEQUENCE int fileno 25 STATUS CODES E The DESCRIPTION NOTES Chapter 7 Language Specific Services for the C Programming Language Manager 7 4 3 fdopen Associate Stream with File Descriptor CALLING SEQUENCE int fdopen STATUS CODES E The DESCRIPTION NOTES 143 144 RIEMS POSIX API User s Guide 7 4 4 flockfile Acquire Ownership of File Stream CALLING SEQUENCE int flockfile 25 STATUS CODES E The DESCRIPTION
142. rent pthread_cond_wait and pthread cond timedwait operations on the same condition variable OR the mutex was not owned by the current thread at the time of the call The specified time has elapsed without the condition variable being satisfied 216 RTEMS POSIX API User s Guide Chapter 12 Memory Management Manager 217 12 Memory Management Manager 12 1 Introduction The memory management manager is The directives provided by the memory management manager are e mlockall Lock the Address Space of a Process e munlockall Unlock the Address Space of a Process e mlock Lock a Range of the Process Address Space e munlock Unlock a Range of the Process Address Space e mmap Map Process Addresses to a Memory Object e munmap Unmap Previously Mapped Addresses e mprotect Change Memory Protection e msync Memory Object Synchronization e shm open Open a Shared Memory Object e shm unlink Remove a Shared Memory Object 12 2 Background There is currently no text in this section 12 3 Operations There is currently no text in this section 12 4 Directives This section details the memory management manager s directives A subsection is dedi cated to each of this manager s directives and describes the calling sequence related con stants usage and status codes 218 RIEMS POSIX API User s Guide 12 4 1 mlockall Lock the Address Space of a Process CALLING SEQUENCE int mlockall 25 STATUS C
143. riority based preemptive scheduling with timeslicing Time quan tums are maintained on a per thread basis and are reset at each context switch Priority based preemptive scheduling utilizing three additional pa rameters budget replenishment period and low priority Under this policy the thread is allowed to execute for budget amount of time before its priority is lowered to low priority At the end of each replenishment period the thread resumes its initial priority and has its budget replenished 13 3 Operations There is currently no text in this section 230 RTEMS POSIX API User s Guide 13 4 Directives This section details the scheduler manager s directives A subsection is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status codes Chapter 13 Scheduler Manager 231 13 4 1 sched get priority min Get Minimum Priority Value CALLING SEQUENCE include lt sched h gt int sched_get_priority_min int policy LE STATUS CODES On error this routine returns 1 and sets errno to one of the following EINVAL The indicated policy is invalid DESCRIPTION This routine return the minimum numerically and logically lowest priority for the specified policy NOTES NONE 232 RIEMS POSIX API User s Guide 13 4 2 sched get priority max Get Maximum Priority Value CALLING SEQUENCE include lt sched h gt int sched get priority max
144. s blocks and waits for space on the queue unless it is interrupted by a signal Upon successful completion the mq send function returns a value of zero Otherwise no message is enqueued the function returns 1 and errno is set to indicate the error NOTES If the specified message queue is not full mq send inserts the message at the position indicated by the msg prio argument Chapter 16 Message Passing Manager 259 16 4 5 mq receive Receive a Message from a Message Queue CALLING SEQUENCE include lt mqueue h gt size_t mq_receive mqd_t mqdes char msg ptr size t msg len unsigned int msg prio 25 STATUS CODES EBADF The descriptor does not represent a valid message queue or the queue was opened for write only O WRONLY EMSGSIZE The msg len is less than the mq msgsize attribute of the message queue EAGAIN The message queue is non blocking and the queue is empty EINTR The message queue is blocking While the process was waiting for a message to arrive on the queue a signal arrived that interrupted the wait DESCRIPTION The mq receive function is used to receive the oldest of the highest priority message s from the message queue specified by mqdes The messages are received in FIFO order within the priorities The received message s priority is stored in the location referenced by the msg prio If the msg_prio is a NULL the priority is discarded The message is removed and stored in an area
145. s section 19 3 Operations There is currently no text in this section 19 4 Directives This section details the thread cancellation manager s directives A subsection is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status codes 298 RIEMS POSIX API User s Guide 19 4 1 pthread cancel Cancel Execution of a Thread CALLING SEQUENCE int pthread Cancel 25 STATUS CODES E The DESCRIPTION NOTES Chapter 19 Thread Cancellation Manager 19 4 2 pthread_setcancelstate Set Cancelability State CALLING SEQUENCE int pthread setcancelstate 25 STATUS CODES E The DESCRIPTION NOTES 299 300 RTEMS POSIX API User s Guide 19 4 3 pthread setcanceltype Set Cancelability Type CALLING SEQUENCE int pthread setcanceltype 3 STATUS CODES E The DESCRIPTION NOTES Chapter 19 Thread Cancellation Manager 19 4 4 pthread testcancel Create Cancellation Point CALLING SEQUENCE int pthread_testcancel 25 STATUS CODES E The DESCRIPTION NOTES 301 302 RIEMS POSIX API User s Guide 19 4 5 pthread cleanup push Establish Cancellation Handler CALLING SEQUENCE int pthread cleanup push 3 STATUS CODES E The DESCRIPTION NOTES Chapter 19 Thread Cancellation Manager 19 4 6 pthread cleanup pop Remove Cancellation Handler CALLING SEQUENCE int pthread cleanup push 3
146. s section details the system databases manager s directives A subsection is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status codes 164 RIEMS POSIX API User s Guide 8 4 1 getgrgid Get Group File Entry for ID CALLING SEQUENCE int getgrgid STATUS CODES E The DESCRIPTION NOTES Chapter 8 System Databases Manager 8 4 2 getgrgid r Reentrant Get Group File Entry CALLING SEQUENCE int getgrgid r STATUS CODES E The DESCRIPTION NOTES 165 166 RIEMS POSIX API User s Guide 8 4 3 getgrnam Get Group File Entry for Name CALLING SEQUENCE int getgrnam STATUS CODES E The DESCRIPTION NOTES Chapter 8 System Databases Manager 8 4 4 getgrnam r Reentrant Get Group File Entry for Name CALLING SEQUENCE int getgrnam r STATUS CODES E The DESCRIPTION NOTES 167 168 RIEMS POSIX API User s Guide 8 4 5 getpwuid Get Password File Entry for UID CALLING SEQUENCE int getpwuid STATUS CODES E The DESCRIPTION NOTES Chapter 8 System Databases Manager 8 4 6 getpwuid_r Reentrant Get Password File Entry for UID CALLING SEQUENCE int getpwuid r STATUS CODES E The DESCRIPTION NOTES 169 170 RIEMS POSIX API User s Guide 8 4 7 getpwnam Password File Entry for Name CALLING SEQUENCE int getpwnam STATUS CODES E The DESCRIPTION NOTES
147. s zero on success or 1 if an error occurred in which case errno is set appro priately ENAMETOOLONG pathname was too long ENOENT A directory component in pathname does not exist or is a dangling symbolic link ENOTDIR A component used in the directory pathname is not in fact a direc tory ENOMEM Insufficient kernel memory was available EROFS pathname refers to a file on a read only filesystem ELOOP pathname contains a reference to a circular symbolic link ie a sym bolic link whose expansion contains a reference to itself ENOSPC The device containing pathname has no room for the new node DESCRIPTION mknod attempts to create a filesystem node file device special file or named pipe named pathname specified by mode and dev mode specifies both the permissions to use and the type of node to be created It should be a combination using bitwise OR of one of the file types listed below and the permissions for the new node The permissions are modified by the process s umask in the usual way the permissions of the created node are mode amp umask The file type should be one of S IFREG S IFCHR S IFBLK and 8 IFIFO to specify a normal file which will be created empty character special file block special file or FIFO named pipe respectively or zero which will create a normal file 100 RTEMS POSIX API User s Guide If the file type is S IFCHR or S IFBLK then dev specifies the major and minor
148. sent but before the notified process has sent its receive request Chapter 16 Message Passing Manager 261 16 4 7 mq setattr Set Message Queue Attributes CALLING SEQUENCE include lt mqueue h gt int mq setattr mod t mqdes const struct mq attr mqstat struct mq attr omqstat E STATUS CODES EBADF The message queue descriptor does not refer to a valid open queue EINVAL The mq flag value is invalid DESCRIPTION The mq setattr function is used to set attributes associated with the open message queue description referenced by the message queue descriptor specified by mqdes The omqstat represents the old or previous attributes If omqstat is non NULL the function mq setattr stores in the location referenced by omqstat the previous message queue attributes and the current queue status These values are the same as would be returned by a call to mq getattr at that point There is only one mq attr mq flag which can be altered by this call This is the flag that deals with the blocking and non blocking behavior of the message queue If the flag is set then the message queue is non blocking and requests to send or receive do not block while waiting for resources If the flag is not set then message send and receive may involve waiting for an empty queue or waiting for a message to arrive Upon successful completion the function returns a value of zero and the attributes of the message queue have been chan
149. shed After all cancellation cleanup handlers have been executed if the thread has any thread specific data destructors for that data will be invoked Thread termination does not release or free any application visible resources including byt not limited to mutexes file descriptors allocated memory etc Similarly exitting a thread does not result in any process oriented cleanup activity There is no concept of a single main thread in RTEMS as there is in a tradition UNIX system POSIX requires that the implicit return of the main thread results in the same effects as if there were a call to exit This does not occur in RTEMS All access to any automatic variables allocated by the threads is lost when the thread exits Thus references i e pointers to local variables of a thread should not be used in a global manner without care As a specific example a pointer to a local variable should NOT be used as the return value 284 RIEMS POSIX API User s Guide 17 4 19 pthread detach Detach a Thread CALLING SEQUENCE include lt pthread h gt int pthread_detach pthread_t thread E STATUS CODES ESRCH The thread specified is invalid EINVAL The thread specified is not a joinable thread DESCRIPTION The pthread detach routine is used to to indicate that storage for thread can be reclaimed when the thread terminates without another thread joinging with it NOTES If any threads have previously joined with the specified t
150. t working directory 69 4 4 8 getcwd Gets current working directory 70 4 4 9 open Opens able lesse eee eee ee 14 4 4 10 creat Create a new file or rewrite an existing one A EM eU ME T9 4 4 11 umask Sets a file creation mask 74 4 4 12 link Creates a link to a file 75 4 4 13 symlink Creates a symbolic link to a file 76 4 4 14 readlink Obtain the name of a symbolic link destitiat Otis EE TT 4 4 15 mkdir Makes a drector 78 4 4 16 mkfifo Makes a FIFO special file 79 4 4 17 unlink Removes a directory entry 80 4 4 18 rmdir Delete a directory enssnnunnunna 81 4 4 19 rename Renames a De 82 4 4 20 stat Gets information about a file 84 4 4 21 fstat Gets file status 85 4 4 22 Istat Gets file status 86 4 4 23 access Check permissions for a file 87 4 4 24 chmod Changes file mode 88 4 4 25 fchmod Changes permissions of a file 89 4 4 26 getdents Get directory entries 90 4 4 27 chown Changes the owner and or group of a file X 9 91 4 4 28 utime Change access and or modification times of AN inode c s ep RE ERE ERE KR REESE E 92 4 4 29 ftruncate truncate a file to a specified length 93 4 4 30 truncate truncate a file to a specified length 94 4 4 31 pathconf Gets configurati
151. tach its notification request After receipt of a notification a process must re register if it wishes to be notified again If there is a process blocked and waiting for the message that process gets the message and notification is not sent It is also possible for another process to receive the message after the notification is sent but before the notified process has sent its receive request Only one process can have a notification request attached to a message queue at any one time If another process attempts to register a notification request it fails You can de Chapter 16 Message Passing Manager 251 register for a message queue by passing a NULL to mq notify this removes any notification request attached to the queue Whenever the message queue is closed all notification attachments are removed 16 2 6 POSIX Interpretation Issues There is one significant point of interpretation related to the RTEMS implementation of POSIX message queues What happens to threads already blocked on a message queue when the mode of that same message queue is changed from blocking to non blocking The RTEMS POSIX implementation decided to unblock all waiting tasks with an EAGAIN status just as if a non blocking version of the same operation had returned unsatisfied This case is not discussed in the POSIX standard and other implementations may have chosen alternative behaviors 16 3 Operations 16 3 1 Opening or Creating a Message Queue
152. te int fildes const void buf unsigned int nbytes d STATUS CODES EAGAIN The O NONBLOCK flag is set for a file descriptor and the process would be delayed in the I O operation EBADF Invalid file descriptor EFBIG An attempt was made to write to a file that exceeds the maximum file size EINTR The function was interrupted by a signal EIO Input or output error ENOSPC No space left on disk EPIPE Attempt to write to a pope or FIFO with no reader DESCRIPTION The write function writes nbyte from the array pointed to by buf into the file associated with fildes If nybte is zero and the file is a regular file the write function returns zero and has no other effect If nbyte is zero and the file is a special file te results are not portable The write function returns the number of bytes written This number will be less than nbytes if there is an error It will never be greater than nbytes NOTES NONE Chapter 5 Input and Output Primitives Manager 109 5 4 7 fcntl Manipulates an open file descriptor CALLING SEQUENCE include lt sys types h gt include lt fcntl h gt include lt unistd h gt int fcntl int fildes int cmd E STATUS CODES EACCESS EAGAIN EBADF EDEADLK EINTR EINVAL EMFILE ENOLCK DESCRIPTION Search permission is denied for a direcotry in a file s path prefix The O NONBLOCK flag is set for a file descriptor and the process would be delayed in the I O op
153. te Thread Specific Data Key CALLING SEQUENCE include lt pthread h gt int pthread_key_delete pthread_key_t key STATUS CODES EINVAL The key was invalid DESCRIPTION NOTES 294 RIEMS POSIX API User s Guide 18 4 3 pthread setspecific Set Thread Specific Key Value CALLING SEQUENCE include lt pthread h gt int pthread setspecific pthread key t key const void value 25 STATUS CODES EINVAL The specified key is invalid DESCRIPTION NOTES Chapter 18 Key Manager 295 18 4 4 pthread getspecific Get Thread Specific Key Value CALLING SEQUENCE include lt pthread h gt void pthread_getspecific pthread_key_t key 3 STATUS CODES NULL There is no thread specific data associated with the specified key non NULL The data associated with the specified key DESCRIPTION NOTES 296 RTEMS POSIX API User s Guide Chapter 19 Thread Cancellation Manager 297 19 Thread Cancellation Manager 19 1 Introduction The thread cancellation manager is The directives provided by the thread cancellation manager are e pthread cancel Cancel Execution of a Thread e pthread setcancelstate Set Cancelability State e pthread setcanceltype Set Cancelability Type e pthread testcancel Create Cancellation Point e pthread cleanup push Establish Cancellation Handler e pthread cleanup pop Remove Cancellation Handler 19 2 Background There is currently no text in thi
154. ter argument is invalid DESCRIPTION The pthread_attr_getstacksize routine is used to obtain the stacksize attribute in the attr thread attribute object NOTES As required by POSIX RTEMS defines the feature symbol POSIX THREAD ATTR STACKSIZE to indicate that this routine is supported Chapter 17 Thread Manager 271 17 4 7 pthread_attr_setstackaddr Set Thread Stack Address CALLING SEQUENCE include lt pthread h gt int pthread_attr_setstackaddr pthread_attr_t attr void stackaddr E STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized DESCRIPTION The pthread attr setstackaddr routine is used to set the stackaddr attribute in the attr thread attribute object NOTES As required by POSIX RTEMS defines the feature symbol POSIX THREAD ATTR STACKADDR to indicate that this routine is supported It is imperative to the proper operation of the system that each thread have sufficient stack space 272 RTEMS POSIX API User s Guide 17 4 8 pthread_attr_getstackaddr Get Thread Stack Address CALLING SEQUENCE include lt pthread h gt int pthread_attr_getstackaddr const pthread attr t attr void stackaddr E STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The stackaddr pointer argument is invalid DESCRIPTION The pthread_attr_getstackaddr routine is us
155. th refer to a directory then the value applies to the whole directory The corresponding macro is POSIX LINK MAX returns the maximum length of a formatted input line where filedes or path must refer to a terminal The corresponding macro is POSIX MAX CANON returns the maximum length of an input line where filedes or path must refer to a terminal The corresponding macro is POSIX MAX INPUT returns the maximum length of a filename in the directory path or filedes T he process is allowed to create The corresponding macro is POSIX NAME MAX returns the maximum length of a relative pathname when path or filedes is the current working directory The corresponding macro is POSIX PATH MAX 98 RTEMS POSIX API User s Guide PC PIPE BUF returns the size of the pipe buffer where filedes must refer to a pipe or FIFO and path must refer to a FIFO The corresponding macro is POSIX PIPE BUF PC CHOWN RESTRICTED returns nonzero if the chown call may not be used on this file If filedes or path refer to a directory then this applies to all files in that directory The corresponding macro is POSIX CHOWN RESTRICTED NOTES NONE Chapter 4 Files and Directories Manager 99 4 4 33 mknod create a directory CALLING SEQUENCE include lt unistd h gt include fcntl h include lt sys types h gt include sys stat h long mknod const char pathname mode_t mode dev_t dev i STATUS CODES mknod return
156. the I O operation EBADF Invalid file descriptor EINTR Function was interrupted by a signal EIO Input or output error DESCRIPTION The read function reads nbyte bytes from the file associated with fildes into the buffer pointed to by buf The read O function returns the number of bytes actually read and placed in the buffer This will be less than nbyte if e The number of bytes left in the file is less than nbyte e The read request was interrupted by a signal e The file is a pipe or FIFO or special file with less than nbytes immediately available for reading When attempting to read from any empty pipe or FIFO e If no process has the pipe open for writing zero is returned to indicate end of file e If some process has the pipe open for writing and O NONBLOCK is set 1 is returned and errno is set to EAGAIN e H some process has the pipe open for writing and O NONBLOCK is clear read waits for some data to be written or the pipe to be closed When attempting to read from a file other than a pipe or FIFO and no data is available e If ONONBLOCK is set 1 is returned and errno is set to EAGAIN e If O NONBLOCK is clear read waits for some data to become available e The O NONBLOCK flag is ignored if data is available Chapter 5 Input and Output Primitives Manager 107 NOTES NONE 108 RIEMS POSIX API User s Guide 5 4 6 write Writes to a file CALLING SEQUENCE include lt unistd h gt int wri
157. time Obtain Time of Day e clock settime Set Time of Day e clock getres Get Clock Resolution e sleep Delay Process Execution e nanosleep Delay with High Resolution e gettimeofday Get the Time of Day e time Get time in seconds 14 2 Background There is currently no text in this section 14 3 Operations There is currently no text in this section 14 4 Directives This section details the clock manager s directives A subsection is dedicated to each of this manager s directives and describes the calling sequence related constants usage and status codes 14 4 1 clock gettime Obtain Time of Day CALLING SEQUENCE include time h int clock gettime clockid t clock id struct timespec tp 25 236 RTEMS POSIX API User s Guide STATUS CODES On error this routine returns 1 and sets errno to one of the following EINVAL The tp pointer parameter is invalid EINVAL The clock id specified is invalid DESCRIPTION NOTES NONE Chapter 14 Clock Manager 237 14 4 2 clock settime Set Time of Day CALLING SEQUENCE include lt time h gt int clock settime clockid t clock id const struct timespec tp 25 STATUS CODES On error this routine returns 1 and sets errno to one of the following EINVAL The tp pointer parameter is invalid EINVAL The clock id specified is invalid EINVAL The contents of the tp structure are invalid DESCRIPTION NOTES NONE 238 RIEMS
158. tion in directory stream 67 S save context for non 151 save context with signal status for non 153 scan a directory for matching entries 66 schedule alarm 2v rebRbrve 3599 d Ab te 34 send a message to a message queue 258 send a signal to a process sscsisssecr 26 send a signal to a thread 0000 23 sends a break to a terminal 132 set cancelability state 000 209 set cancelability tepe lesse 300 set detach States 8 dente t be eiir intr reis 267 set environment variables 54 Sek GOU dd 221 deed CREDAS HR 44 set inherit scheduler Has 275 set message queue attributes 261 set process group id for job control 50 set process shared attribute 208 set scheduling parameters 279 set scheduling policy 04 217 set terminal attributes 131 set the blocking protocol 191 set the current locales si srotinhise iernare pai 141 set the priority ceiling 193 set the visibility ise RR Ebr edere 195 set thread scheduling parameters 289 set thread scheduling scope sscrreeees 273 set thread stack address neesnuresees 271 set thread stack size 2 20006 269 set time of day iioi eee ER DERE DE S 236 Seb user e EE 43 sets a file creation make 74 sets foreground
159. tion oes Sese iret Sar oce Zeile ad isto 263 17 2 Background i ah id aoe oet ie Er e ed oer e 263 17 2 1 Thread Attributes iilii elseeleesenl 264 17 3 Operations Rr vb beige Kad 264 fA SOTVICES is n sat beca ce rro ves e qub e 264 17 4 1 pthread attr init Initialize a Thread Attribute Set E m nM e 265 17 4 2 pthread attr destroy Destroy a Thread Attribute EE 266 17 4 3 pthread attr setdetachstate Set Detach State EE 267 17 4 4 pthread_attr_getdetachstate Get Detach State E 268 17 4 5 pthread_attr_setstacksize Set Thread Stack Size qu EE 269 17 4 0 pthread_attr_getstacksize Get Thread Stack Size 270 17 4 7 pthread_attr_setstackaddr Set Thread Stack Addtess ster td bo Pei bee dba eee 271 17 4 8 pthread attr getstackaddr Get Thread Stack ee 212 17 4 9 pthread_attr_setscope Set Thread Scheduling SCOPC Em 274 17 4 10 pthread_attr_getscope Get Thread Scheduling SCOPE ST aa act RR RR E came uda na a 274 17 4 11 pthread attr setinheritsched Set Inherit Scheduler Flag uita rem Hebe bee cade 275 17 4 12 pthread attr getinheritsched Get Inherit Scheduler las 276 17 4 13 pthread attr setschedpolicy Set Scheduling Policy PT 277 17 4 14 pthread_attr_getschedpolicy Get Scheduling POC iie bt RE RR SPURS E 278 17 4 15 pthread_attr_setschedparam Set Scheduling Parameters 0 0c ccc cect hh 279 17 4 16 pthread_attr_getschedparam Get Scheduling Parameters
160. ts and O CREAT and O EXCL were used path refers to a directory and the access requested involved writing path refers to an executable image which is currently being executed and write access was requested path points outside your accessible address space The requested access to the file is not allowed or one of the directories in path did not allow search execute permission path was too long A directory component in path does not exist or is a dangling sym bolic link A component used as a directory in path is not in fact a directory The process alreadyh has the maximum number of files open The limit on the total number of files open on the system has been reached Insufficient kernel memory was available path refers to a file on a read only filesystem and write access was requested creat attempts to create a file and return a file descriptor for use in read write etc NOTES NONE The routine is implemented in Cygnus newlib 74 RTEMS POSIX API User s Guide 4 4 11 umask Sets a file creation mask CALLING SEQUENCE include lt sys types h gt include sys stat h mode_t umask mode_t cmask 25 STATUS CODES DESCRIPTION The umask function sets the process file creation mask to cmask The file creation mask is used during open O creat O mkdir O mkfifo calls to turn off permission bits in the mode argument Bit positions that are set in cmask are cleared in the mode of the
161. ts of a file to disk NOTES NONE Chapter 5 Input and Output Primitives Manager 113 5 4 10 fdatasync Synchronize file in core data with that on disk CALLING SEQUENCE int fdatasync int fd STATUS CODES On success zero is returned On error 1 is returned and errno is set appropriately EBADF fd is not a valid file descriptor open for writing EINVAL fd is bound to a special file which does not support synchronization EIO An error occurred during synchronization EROFS fd is bound to a special file which dows not support synchronization DESCRIPTION fdatasync flushes all data buffers of a file to disk before the system call returns It resembles fsync but is not required to update the metadata such as access time Applications that access databases or log files often write a tiny data fragment e g one line in a log file and then call fsync immediately in order to ensure that the written data is physically stored on the harddisk Unfortunately fsync will always initiate two write operations one for the newly written data and another one in order to update the modification time stored in the inode If the modification time is not a part of the transaction concept fdatasync can be used to avoid unnecessary inode disk write operations NOTES NONE 114 RIEMS POSIX API User s Guide 5 4 11 mount Mount a file system CALLING SEQUENCE include lt libio h gt int mount rtems filesystem mount t
162. ue 232 get message queue attributes 262 get minimum priority value sssnse sue 231 get parent process id lisse esses eese 38 get password file entry for uid 168 get process group id 48 get process id si ise vive e o ey PR a v d is 3T get process shared attribute 209 get process TIMES SeoscenpeIir 34 s Ree ee E EE 52 get real Group id eg EE er Eben 41 get scheduling parameters 280 get scheduling policy 404 278 get supplementary group ids 45 get systemi fIame eco scs ober efe eda 51 get the blocking protocol 192 322 get the current priority ceiling get the priority ceiling get the time of day get the value of a semaphore get the visibility occ eee ee Ye get thread dd EE get thread scheduling parameters get thread scheduling scope sc esc s get thread stack address get thread stack size get time in seconds get timeslicing quantum gelb User Id Loc beryep e ERE DEN Me PER pet user EISE ier ab yet deg eS gets configuration values for files gets current working directory gets flle status EELER gets foreground process group id gets information about a file gets terminal attributes I initialize a con
163. ue argument exceeds SEM VALUE MAX ENOSPC A resource required to initialize the semaphore has been exhausted The limit on semaphores SEM VALUE MAX has been reached ENOSYS The function sem init is not supported by this implementation EPERM The process lacks appropriate privileges to initialize the semaphore DESCRIPTION The sem init function is used to initialize the unnamed semaphore referred to by sem The value of the initialized semaphore is the parameter value The semaphore remains valid until it is destroyed ADD MORE HERE XXX NOTES If the functions completes successfully it shall return a value of zero Otherwise it shall return a value of 1 and set errno to specify the error that occurred Multiprocessing is currently not supported in this implementation 176 RIEMS POSIX API User s Guide 9 4 2 sem destroy Destroy an unnamed semaphore CALLING SEQUENCE int sem destroy sem t sem d STATUS CODES EINVAL The value argument exceeds SEM VALUE MAX ENOSYS The function sem init is not supported by this implementation EBUSY There are currently processes blocked on the semaphore DESCRIPTION The sem destroy function is used to destroy an unnamed semaphore refered to by sem sem destroy can only be used on a semaphore that was created using sem init NOTES If the functions completes successfully it shall return a value of zero Otherwise it shall return a value of 1 and set errno to s
164. ument should not be a directory The caller may or may not need permission to access the existing file NOTES NONE 76 4 4 13 symlink RTEMS POSIX API User s Guide Creates a symbolic link to a file CALLING SEQUENCE include lt unistd h gt int symlink const char topath const char frompath 25 STATUS CODES EACCES EEXIST ENAMETOOLONG ENOENT ENOSPC ENOTDIR EPERM EROFS DESCRIPTION Search permission is denied for a directory in a file s path prefix The named file already exists Length of a filename string exceeds PATH MAX and POSIX NO TRUNC is in effect A file or directory does not exist No space left on disk A component of the specified pathname was not a directory when a directory was expected Operation is not permitted Process does not have the appropriate priviledges or permissions to perform the requested operations Read only file system The symlinkO function creates a symbolic link from the frombath to the topath The symbolic link will be interpreted at run time If the symlink function fails no directories are modified The caller may or may not need permission to access the existing file NOTES NONE Chapter 4 Files and Directories Manager 77 4 4 14 readlink Obtain the name of a symbolic link destination CALLING SEQUENCE include lt unistd h gt int readlink const char char size_t A7 path buf bufsize STA
165. y RTEMS but could be in a future version Chapter 6 Device and Class Specific Functions Manager 133 6 4 8 tcdrain Waits for all output to be transmitted to the terminal CALLING SEQUENCE include lt termios h gt include lt unistd h gt int tcdrain int fildes 25 STATUS CODES EBADF Invalid file descriptor EINTR Function was interrupted by a signal ENOTTY Terminal control function attempted for a file that is not a terminal DESCRIPTION The tcdrain function waits until all output written to fildes has been transmitted NOTES NONE 134 RIEMS POSIX API User s Guide 6 4 9 tcflush Discards terminal data CALLING SEQUENCE int tcflush int fd 23 STATUS CODES E The DESCRIPTION NOTES This routine is not currently supported by RTEMS but could be in a future version Chapter 6 Device and Class Specific Functions Manager 135 6 4 10 tcflow Suspends restarts terminal output CALLING SEQUENCE int tcflow int fd 23 STATUS CODES E The DESCRIPTION NOTES This routine is not currently supported by RTEMS but could be in a future version 136 RIEMS POSIX API User s Guide 6 4 11 tcgetpgrp Gets foreground process group ID CALLING SEQUENCE int tcgetpgrp STATUS CODES E The DESCRIPTION NOTES This routine is not currently supported by RTEMS but could be in a future version Chapter 6 Device and Class Specific Functions Manager 6 4 12 tcsetpgrp S
166. ynchronous RESTI IQ PCR 120 5 4 18 aio cancel Cancel Asynchronous I O Request Tr 121 5 4 19 aio suspend Wait for Asynchronous I O Request UE 122 5 4 20 aio fsync Asynchronous File Synchronization TER 123 Pieds edsqqd suede Was qd MN terse eee d 125 Ob IntroductlOns eem EU EDI EE 2 135 6 2 Backeroutid a acd eta nota eed ee Dno t sa dl HER s 125 0 9 TEE 125 6 4 Directive 125 6 4 1 cfgetispeed Reads terminal input baud rate 126 6 4 2 cfgetospeed Reads terminal output baud rate 127 6 4 3 cfsetispeed Sets terminal input baud rate 128 6 4 4 cfsetospeed Sets terminal output baud rate 129 6 4 5 tcgetattr Gets terminal attributes 130 6 4 6 tcsetattr Set terminal attributes 131 6 4 7 tcsendbreak Sends a break to a terminal 132 6 4 8 tcdrain Waits for all output to be transmitted to Glie termimal sde s Racer eee emt be aed 133 6 4 9 tcflush Discards terminal data 134 6 4 10 tcflow Suspends restarts terminal output 135 6 4 11 tcgetpgrp Gets foreground process group ID 136 6 4 12 tcsetpgrp Sets foreground process group ID 137 7 Language Specific Services for the C Programming Language Manager 139 7 1 Tntroduetion n 139 7 2 Backpround iiu dedu Za da Spera ES 139 fod e DEENEN 139 TA Directives 0 0 ccc ccc ce hh hs 140 7 4 1 setlocale Set the Current Locale 141 7 4 2 fileno Obtain File Descri
167. ysconf STATUS CODES E The DESCRIPTION NOTES 59 60 RTEMS POSIX API User s Guide Chapter 4 Files and Directories Manager 61 4 Files and Directories Manager 4 1 Introduction The files and directories manager is The directives provided by the files and directories manager are e opendir Open a Directory e readdir Reads a directory e rewinddir Resets the readdir pointer e scandir Scan a directory for matching entries e telldir Return current location in directory stream e closedir Ends directory read operation e getdents Get directory entries e chdir Changes the current working directory e getcwd Gets current working directory e open Opens a file e creat Create a new file or rewrite an existing one e umask Sets a file creation mask e link Creates a link to a file e symlink Creates a symbolic link to a file e readlink Obtain the name of the link destination e mkdir Makes a directory e mkfifo Makes a FIFO special file e unlink Removes a directory entry e rmdir Delete a directory e rename Renames a file e stat Gets information about a file e fstat Gets file status e lstat Gets file status e access Check permissions for a file e chmod Changes file mode e fchmod Changes permissions of a file e chown Changes the owner and or group of a file e utime Change access and or modification times of an inode e ftruncate Truncate a file to
168. zed ENOTSUP The specified scheduler policy argument is invalid DESCRIPTION The pthread_attr_setschedpolicy routine is used to set the scheduler policy field in the thread attribute object attr to the value specified by policy Scheduling policies may be one of the following e SCHED_DEFAULT e SCHED_FIFO e SCHED_RR e SCHED_SPORADIC e SCHED_OTHER The precise meaning of each of these is discussed elsewhere in this manual NOTES As required by POSIX RTEMS defines the feature symbol POSIX THREAD PRIORITY SCHEDULING to indicate that the family of routines to which this routine belongs is sup ported 278 RTEMS POSIX API User s Guide 17 4 14 pthread_attr_getschedpolicy Get Scheduling Policy CALLING SEQUENCE include lt pthread h gt int pthread attr getschedpolicy const pthread attr t attr int policy 3 STATUS CODES EINVAL The attribute pointer argument is invalid EINVAL The attribute set is not initialized EINVAL The specified scheduler policy argument pointer is invalid DESCRIPTION The pthread_attr_getschedpolicy routine is used to obtain the scheduler policy field from the thread attribute object attr The value of this field is returned in policy NOTES As required by POSIX RTEMS defines the feature symbol _POSIX_THREAD_PRIORITY_ SCHEDULING to indicate that the family of routines to which this routine belongs is sup ported Chapter 17 Thread Manager 279 17 4 15 pthread_attr_sets
Download Pdf Manuals
Related Search
Related Contents
ZUSÄTZLICHE BEDIENUNGSHINWEISE FÜR DP1S Hyprop Anleitung - UMS Umweltanalytische Mess MultiScreen Appliances Quikcoup Catalogus 2015 Pioneer AVIC 9 DVD Operation Manual JR 47 F 04 Nilox Hi-Fi Full License Definitions and Rules Copyright © All rights reserved.
Failed to retrieve file