Changeset 93994fdb in rtems
- Timestamp:
- 04/15/99 18:57:31 (25 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- da41ecbc
- Parents:
- 0f4e074
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/exec/posix/src/mqueue.c
r0f4e074 r93994fdb 81 81 } 82 82 83 #if defined(RTEMS_MULTIPROCESSING) 83 84 if ( pshared == PTHREAD_PROCESS_SHARED && 84 85 !( _Objects_MP_Allocate_and_open( &_POSIX_Message_queue_Information, 0, … … 88 89 set_errno_and_return_minus_one( ENFILE ); 89 90 } 91 #endif 90 92 91 93 the_mq->process_shared = pshared; … … 127 129 attr->mq_maxmsg, 128 130 attr->mq_msgsize, 129 _POSIX_Message_queue_MP_Send_extract_proxy ) ) { 130 131 #if defined(RTEMS_MULTIPROCESSING) 132 _POSIX_Message_queue_MP_Send_extract_proxy 133 #else 134 NULL 135 #endif 136 ) ) { 137 138 #if defined(RTEMS_MULTIPROCESSING) 131 139 if ( pshared == PTHREAD_PROCESS_SHARED ) 132 140 _Objects_MP_Close( &_POSIX_Message_queue_Information, the_mq->Object.id ); 141 #endif 133 142 134 143 _POSIX_Message_queue_Free( the_mq ); … … 147 156 *message_queue = the_mq; 148 157 158 #if defined(RTEMS_MULTIPROCESSING) 149 159 if ( pshared == PTHREAD_PROCESS_SHARED ) 150 160 _POSIX_Message_queue_MP_Send_process_packet( … … 154 164 0 /* Not used */ 155 165 ); 166 #endif 156 167 157 168 _Thread_Enable_dispatch(); … … 199 210 if ( status == EINVAL ) { /* name -> ID translation failed */ 200 211 if ( !(oflag & O_CREAT) ) { /* willing to create it? */ 201 set errno( ENOENT );212 set_errno_and_return_minus_one( ENOENT ); 202 213 return (mqd_t) -1; 203 214 } 204 215 /* we are willing to create it */ 205 216 } 206 set errno( status );/* some type of error */217 set_errno_and_return_minus_one( status ); /* some type of error */ 207 218 return (mqd_t) -1; 208 219 … … 210 221 211 222 if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { 212 set errno( EEXIST );223 set_errno_and_return_minus_one( EEXIST ); 213 224 return (mqd_t) -1; 214 225 } … … 257 268 _POSIX_Message_queue_Free( the_mq ); 258 269 270 #if defined(RTEMS_MULTIPROCESSING) 259 271 if ( the_mq->process_shared == PTHREAD_PROCESS_SHARED ) { 260 272 … … 271 283 ); 272 284 } 285 #endif 273 286 274 287 } … … 290 303 switch ( location ) { 291 304 case OBJECTS_ERROR: 292 seterrno( EINVAL ); 293 return( -1 ); 305 set_errno_and_return_minus_one( EINVAL ); 294 306 case OBJECTS_REMOTE: 295 307 _Thread_Dispatch(); 296 308 return POSIX_MP_NOT_IMPLEMENTED(); 297 seterrno( EINVAL ); 298 return( -1 ); 309 set_errno_and_return_minus_one( EINVAL ); 299 310 case OBJECTS_LOCAL: 300 311 the_mq->open_count -= 1; … … 328 339 switch ( location ) { 329 340 case OBJECTS_ERROR: 330 seterrno( EINVAL ); 331 return( -1 ); 341 set_errno_and_return_minus_one( EINVAL ); 332 342 case OBJECTS_REMOTE: 333 343 _Thread_Dispatch(); 334 344 return POSIX_MP_NOT_IMPLEMENTED(); 335 seterrno( EINVAL ); 336 return( -1 ); 345 set_errno_and_return_minus_one( EINVAL ); 337 346 case OBJECTS_LOCAL: 338 347 348 #if defined(RTEMS_MULTIPROCESSING) 339 349 _Objects_MP_Close( 340 350 &_POSIX_Message_queue_Information, 341 351 the_mq->Object.id 342 352 ); 353 #endif 343 354 344 355 the_mq->linked = FALSE; … … 371 382 switch ( location ) { 372 383 case OBJECTS_ERROR: 373 seterrno( EINVAL ); 374 return( -1 ); 384 set_errno_and_return_minus_one( EINVAL ); 375 385 case OBJECTS_REMOTE: 376 386 _Thread_Dispatch(); 377 387 return POSIX_MP_NOT_IMPLEMENTED(); 378 seterrno( EINVAL ); 379 return( -1 ); 388 set_errno_and_return_minus_one( EINVAL ); 380 389 case OBJECTS_LOCAL: 381 390 /* XXX must add support for timeout and priority */ … … 385 394 msg_len, 386 395 mqdes, 396 #if defined(RTEMS_MULTIPROCESSING) 387 397 NULL /* XXX _POSIX_Message_queue_Core_message_queue_mp_support*/ 398 #else 399 NULL 400 #endif 388 401 ); 389 402 _Thread_Enable_dispatch(); … … 463 476 switch ( location ) { 464 477 case OBJECTS_ERROR: 465 seterrno( EINVAL ); 466 return( -1 ); 478 set_errno_and_return_minus_one( EINVAL ); 467 479 case OBJECTS_REMOTE: 468 480 _Thread_Dispatch(); 469 481 return POSIX_MP_NOT_IMPLEMENTED(); 470 seterrno( EINVAL ); 471 return( -1 ); 482 set_errno_and_return_minus_one( EINVAL ); 472 483 case OBJECTS_LOCAL: 473 484 /* XXX need to define the options argument to this */ … … 572 583 switch ( location ) { 573 584 case OBJECTS_ERROR: 574 seterrno( EBADF ); 575 return( -1 ); 585 set_errno_and_return_minus_one( EBADF ); 576 586 case OBJECTS_REMOTE: 577 587 _Thread_Dispatch(); 578 588 return POSIX_MP_NOT_IMPLEMENTED(); 579 seterrno( EINVAL ); 580 return( -1 ); 589 set_errno_and_return_minus_one( EINVAL ); 581 590 case OBJECTS_LOCAL: 582 591 if ( notification ) { 583 592 if ( _CORE_message_queue_Is_notify_enabled( &the_mq->Message_queue ) ) { 584 593 _Thread_Enable_dispatch(); 585 seterrno( EBUSY ); 586 return( -1 ); 594 set_errno_and_return_minus_one( EBUSY ); 587 595 } 588 596 … … 626 634 switch ( location ) { 627 635 case OBJECTS_ERROR: 628 seterrno( EINVAL ); 629 return( -1 ); 636 set_errno_and_return_minus_one( EINVAL ); 630 637 case OBJECTS_REMOTE: 631 638 _Thread_Dispatch(); 632 639 return POSIX_MP_NOT_IMPLEMENTED(); 633 seterrno( EINVAL ); 634 return( -1 ); 640 set_errno_and_return_minus_one( EINVAL ); 635 641 case OBJECTS_LOCAL: 636 642 /* … … 682 688 switch ( location ) { 683 689 case OBJECTS_ERROR: 684 seterrno( EINVAL ); 685 return( -1 ); 690 set_errno_and_return_minus_one( EINVAL ); 686 691 case OBJECTS_REMOTE: 687 692 _Thread_Dispatch(); 688 693 return POSIX_MP_NOT_IMPLEMENTED(); 689 seterrno( EINVAL ); 690 return( -1 ); 694 set_errno_and_return_minus_one( EINVAL ); 691 695 case OBJECTS_LOCAL: 692 696 /* -
c/src/exec/posix/src/semaphore.c
r0f4e074 r93994fdb 15 15 #include <rtems/posix/semaphore.h> 16 16 #include <rtems/posix/time.h> 17 #include <rtems/posix/seterr.h> 17 18 18 19 /*PAGE … … 68 69 } 69 70 71 #if defined(RTEMS_MULTIPROCESSING) 70 72 if ( pshared == PTHREAD_PROCESS_SHARED && 71 73 !( _Objects_MP_Allocate_and_open( &_POSIX_Semaphore_Information, 0, … … 75 77 set_errno_and_return_minus_one( EAGAIN ); 76 78 } 79 #endif 77 80 78 81 the_semaphore->process_shared = pshared; … … 112 115 *the_sem = the_semaphore; 113 116 117 #if defined(RTEMS_MULTIPROCESSING) 114 118 if ( pshared == PTHREAD_PROCESS_SHARED ) 115 119 _POSIX_Semaphore_MP_Send_process_packet( … … 119 123 0 /* proxy id - Not used */ 120 124 ); 125 #endif 121 126 122 127 _Thread_Enable_dispatch(); … … 167 172 switch ( location ) { 168 173 case OBJECTS_ERROR: 169 seterrno( EINVAL ); 170 return( -1 ); 174 set_errno_and_return_minus_one( EINVAL ); 171 175 case OBJECTS_REMOTE: 172 176 _Thread_Dispatch(); 173 177 return POSIX_MP_NOT_IMPLEMENTED(); 174 seterrno( EINVAL ); 175 return( -1 ); 178 set_errno_and_return_minus_one( EINVAL ); 176 179 case OBJECTS_LOCAL: 177 180 /* … … 180 183 181 184 if ( the_semaphore->named == TRUE ) { 182 seterrno( EINVAL ); 183 return( -1 ); 185 set_errno_and_return_minus_one( EINVAL ); 184 186 } 185 187 … … 188 190 _CORE_semaphore_Flush( 189 191 &the_semaphore->Semaphore, 192 #if defined(RTEMS_MULTIPROCESSING) 190 193 _POSIX_Semaphore_MP_Send_object_was_deleted, 194 #else 195 NULL, 196 #endif 191 197 -1 /* XXX should also seterrno -> EINVAL */ 192 198 ); … … 194 200 _POSIX_Semaphore_Free( the_semaphore ); 195 201 202 #if defined(RTEMS_MULTIPROCESSING) 196 203 if ( the_semaphore->process_shared == PTHREAD_PROCESS_SHARED ) { 197 204 … … 208 215 ); 209 216 } 217 #endif 210 218 _Thread_Enable_dispatch(); 211 219 return 0; … … 258 266 if ( status == EINVAL ) { /* name -> ID translation failed */ 259 267 if ( !(oflag & O_CREAT) ) { /* willing to create it? */ 260 seterrno( ENOENT ); 261 return (sem_t *) -1; 268 set_errno_and_return_minus_one_cast( ENOENT, sem_t * ); 262 269 } 263 270 /* we are willing to create it */ 264 271 } 265 seterrno( status );/* some type of error */266 return (sem_t *) -1;272 /* some type of error */ 273 set_errno_and_return_minus_one_cast( status, sem_t * ); 267 274 268 275 } else { /* name -> ID translation succeeded */ 269 276 270 277 if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { 271 seterrno( EEXIST ); 272 return (sem_t *) -1; 278 set_errno_and_return_minus_one_cast( EEXIST, sem_t * ); 273 279 } 274 280 … … 316 322 _POSIX_Semaphore_Free( the_semaphore ); 317 323 324 #if defined(RTEMS_MULTIPROCESSING) 318 325 if ( the_semaphore->process_shared == PTHREAD_PROCESS_SHARED ) { 319 326 … … 330 337 ); 331 338 } 339 #endif 332 340 333 341 } … … 349 357 switch ( location ) { 350 358 case OBJECTS_ERROR: 351 seterrno( EINVAL ); 352 return( -1 ); 359 set_errno_and_return_minus_one( EINVAL ); 353 360 case OBJECTS_REMOTE: 354 361 _Thread_Dispatch(); 355 362 return POSIX_MP_NOT_IMPLEMENTED(); 356 seterrno( EINVAL ); 357 return( -1 ); 363 set_errno_and_return_minus_one( EINVAL ); 358 364 case OBJECTS_LOCAL: 359 365 the_semaphore->open_count -= 1; … … 387 393 switch ( location ) { 388 394 case OBJECTS_ERROR: 389 seterrno( EINVAL ); 390 return( -1 ); 395 set_errno_and_return_minus_one( EINVAL ); 391 396 case OBJECTS_REMOTE: 392 397 _Thread_Dispatch(); 393 398 return POSIX_MP_NOT_IMPLEMENTED(); 394 seterrno( EINVAL ); 395 return( -1 ); 399 set_errno_and_return_minus_one( EINVAL ); 396 400 case OBJECTS_LOCAL: 397 401 402 #if defined(RTEMS_MULTIPROCESSING) 398 403 if ( the_semaphore->process_shared == PTHREAD_PROCESS_SHARED ) { 399 404 _Objects_MP_Close( … … 402 407 ); 403 408 } 409 #endif 404 410 405 411 the_semaphore->linked = FALSE; … … 430 436 switch ( location ) { 431 437 case OBJECTS_ERROR: 432 seterrno( EINVAL ); 433 return( -1 ); 438 set_errno_and_return_minus_one( EINVAL ); 434 439 case OBJECTS_REMOTE: 435 440 _Thread_Dispatch(); 436 441 return POSIX_MP_NOT_IMPLEMENTED(); 437 seterrno( EINVAL ); 438 return( -1 ); 442 set_errno_and_return_minus_one( EINVAL ); 439 443 case OBJECTS_LOCAL: 440 444 _CORE_semaphore_Seize( … … 521 525 switch ( location ) { 522 526 case OBJECTS_ERROR: 523 seterrno( EINVAL ); 524 return( -1 ); 527 set_errno_and_return_minus_one( EINVAL ); 525 528 case OBJECTS_REMOTE: 526 529 _Thread_Dispatch(); 527 530 return POSIX_MP_NOT_IMPLEMENTED(); 528 seterrno( EINVAL ); 529 return( -1 ); 531 set_errno_and_return_minus_one( EINVAL ); 530 532 case OBJECTS_LOCAL: 531 533 _CORE_semaphore_Surrender( 532 534 &the_semaphore->Semaphore, 533 535 the_semaphore->Object.id, 536 #if defined(RTEMS_MULTIPROCESSING) 534 537 POSIX_Semaphore_MP_support 538 #else 539 NULL 540 #endif 535 541 ); 536 542 _Thread_Enable_dispatch(); … … 556 562 switch ( location ) { 557 563 case OBJECTS_ERROR: 558 seterrno( EINVAL ); 559 return( -1 ); 564 set_errno_and_return_minus_one( EINVAL ); 560 565 case OBJECTS_REMOTE: 561 566 _Thread_Dispatch(); 562 567 return POSIX_MP_NOT_IMPLEMENTED(); 563 seterrno( EINVAL ); 564 return( -1 ); 568 set_errno_and_return_minus_one( EINVAL ); 565 569 case OBJECTS_LOCAL: 566 570 *sval = _CORE_semaphore_Get_count( &the_semaphore->Semaphore ); -
cpukit/posix/src/mqueue.c
r0f4e074 r93994fdb 81 81 } 82 82 83 #if defined(RTEMS_MULTIPROCESSING) 83 84 if ( pshared == PTHREAD_PROCESS_SHARED && 84 85 !( _Objects_MP_Allocate_and_open( &_POSIX_Message_queue_Information, 0, … … 88 89 set_errno_and_return_minus_one( ENFILE ); 89 90 } 91 #endif 90 92 91 93 the_mq->process_shared = pshared; … … 127 129 attr->mq_maxmsg, 128 130 attr->mq_msgsize, 129 _POSIX_Message_queue_MP_Send_extract_proxy ) ) { 130 131 #if defined(RTEMS_MULTIPROCESSING) 132 _POSIX_Message_queue_MP_Send_extract_proxy 133 #else 134 NULL 135 #endif 136 ) ) { 137 138 #if defined(RTEMS_MULTIPROCESSING) 131 139 if ( pshared == PTHREAD_PROCESS_SHARED ) 132 140 _Objects_MP_Close( &_POSIX_Message_queue_Information, the_mq->Object.id ); 141 #endif 133 142 134 143 _POSIX_Message_queue_Free( the_mq ); … … 147 156 *message_queue = the_mq; 148 157 158 #if defined(RTEMS_MULTIPROCESSING) 149 159 if ( pshared == PTHREAD_PROCESS_SHARED ) 150 160 _POSIX_Message_queue_MP_Send_process_packet( … … 154 164 0 /* Not used */ 155 165 ); 166 #endif 156 167 157 168 _Thread_Enable_dispatch(); … … 199 210 if ( status == EINVAL ) { /* name -> ID translation failed */ 200 211 if ( !(oflag & O_CREAT) ) { /* willing to create it? */ 201 set errno( ENOENT );212 set_errno_and_return_minus_one( ENOENT ); 202 213 return (mqd_t) -1; 203 214 } 204 215 /* we are willing to create it */ 205 216 } 206 set errno( status );/* some type of error */217 set_errno_and_return_minus_one( status ); /* some type of error */ 207 218 return (mqd_t) -1; 208 219 … … 210 221 211 222 if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { 212 set errno( EEXIST );223 set_errno_and_return_minus_one( EEXIST ); 213 224 return (mqd_t) -1; 214 225 } … … 257 268 _POSIX_Message_queue_Free( the_mq ); 258 269 270 #if defined(RTEMS_MULTIPROCESSING) 259 271 if ( the_mq->process_shared == PTHREAD_PROCESS_SHARED ) { 260 272 … … 271 283 ); 272 284 } 285 #endif 273 286 274 287 } … … 290 303 switch ( location ) { 291 304 case OBJECTS_ERROR: 292 seterrno( EINVAL ); 293 return( -1 ); 305 set_errno_and_return_minus_one( EINVAL ); 294 306 case OBJECTS_REMOTE: 295 307 _Thread_Dispatch(); 296 308 return POSIX_MP_NOT_IMPLEMENTED(); 297 seterrno( EINVAL ); 298 return( -1 ); 309 set_errno_and_return_minus_one( EINVAL ); 299 310 case OBJECTS_LOCAL: 300 311 the_mq->open_count -= 1; … … 328 339 switch ( location ) { 329 340 case OBJECTS_ERROR: 330 seterrno( EINVAL ); 331 return( -1 ); 341 set_errno_and_return_minus_one( EINVAL ); 332 342 case OBJECTS_REMOTE: 333 343 _Thread_Dispatch(); 334 344 return POSIX_MP_NOT_IMPLEMENTED(); 335 seterrno( EINVAL ); 336 return( -1 ); 345 set_errno_and_return_minus_one( EINVAL ); 337 346 case OBJECTS_LOCAL: 338 347 348 #if defined(RTEMS_MULTIPROCESSING) 339 349 _Objects_MP_Close( 340 350 &_POSIX_Message_queue_Information, 341 351 the_mq->Object.id 342 352 ); 353 #endif 343 354 344 355 the_mq->linked = FALSE; … … 371 382 switch ( location ) { 372 383 case OBJECTS_ERROR: 373 seterrno( EINVAL ); 374 return( -1 ); 384 set_errno_and_return_minus_one( EINVAL ); 375 385 case OBJECTS_REMOTE: 376 386 _Thread_Dispatch(); 377 387 return POSIX_MP_NOT_IMPLEMENTED(); 378 seterrno( EINVAL ); 379 return( -1 ); 388 set_errno_and_return_minus_one( EINVAL ); 380 389 case OBJECTS_LOCAL: 381 390 /* XXX must add support for timeout and priority */ … … 385 394 msg_len, 386 395 mqdes, 396 #if defined(RTEMS_MULTIPROCESSING) 387 397 NULL /* XXX _POSIX_Message_queue_Core_message_queue_mp_support*/ 398 #else 399 NULL 400 #endif 388 401 ); 389 402 _Thread_Enable_dispatch(); … … 463 476 switch ( location ) { 464 477 case OBJECTS_ERROR: 465 seterrno( EINVAL ); 466 return( -1 ); 478 set_errno_and_return_minus_one( EINVAL ); 467 479 case OBJECTS_REMOTE: 468 480 _Thread_Dispatch(); 469 481 return POSIX_MP_NOT_IMPLEMENTED(); 470 seterrno( EINVAL ); 471 return( -1 ); 482 set_errno_and_return_minus_one( EINVAL ); 472 483 case OBJECTS_LOCAL: 473 484 /* XXX need to define the options argument to this */ … … 572 583 switch ( location ) { 573 584 case OBJECTS_ERROR: 574 seterrno( EBADF ); 575 return( -1 ); 585 set_errno_and_return_minus_one( EBADF ); 576 586 case OBJECTS_REMOTE: 577 587 _Thread_Dispatch(); 578 588 return POSIX_MP_NOT_IMPLEMENTED(); 579 seterrno( EINVAL ); 580 return( -1 ); 589 set_errno_and_return_minus_one( EINVAL ); 581 590 case OBJECTS_LOCAL: 582 591 if ( notification ) { 583 592 if ( _CORE_message_queue_Is_notify_enabled( &the_mq->Message_queue ) ) { 584 593 _Thread_Enable_dispatch(); 585 seterrno( EBUSY ); 586 return( -1 ); 594 set_errno_and_return_minus_one( EBUSY ); 587 595 } 588 596 … … 626 634 switch ( location ) { 627 635 case OBJECTS_ERROR: 628 seterrno( EINVAL ); 629 return( -1 ); 636 set_errno_and_return_minus_one( EINVAL ); 630 637 case OBJECTS_REMOTE: 631 638 _Thread_Dispatch(); 632 639 return POSIX_MP_NOT_IMPLEMENTED(); 633 seterrno( EINVAL ); 634 return( -1 ); 640 set_errno_and_return_minus_one( EINVAL ); 635 641 case OBJECTS_LOCAL: 636 642 /* … … 682 688 switch ( location ) { 683 689 case OBJECTS_ERROR: 684 seterrno( EINVAL ); 685 return( -1 ); 690 set_errno_and_return_minus_one( EINVAL ); 686 691 case OBJECTS_REMOTE: 687 692 _Thread_Dispatch(); 688 693 return POSIX_MP_NOT_IMPLEMENTED(); 689 seterrno( EINVAL ); 690 return( -1 ); 694 set_errno_and_return_minus_one( EINVAL ); 691 695 case OBJECTS_LOCAL: 692 696 /* -
cpukit/posix/src/semaphore.c
r0f4e074 r93994fdb 15 15 #include <rtems/posix/semaphore.h> 16 16 #include <rtems/posix/time.h> 17 #include <rtems/posix/seterr.h> 17 18 18 19 /*PAGE … … 68 69 } 69 70 71 #if defined(RTEMS_MULTIPROCESSING) 70 72 if ( pshared == PTHREAD_PROCESS_SHARED && 71 73 !( _Objects_MP_Allocate_and_open( &_POSIX_Semaphore_Information, 0, … … 75 77 set_errno_and_return_minus_one( EAGAIN ); 76 78 } 79 #endif 77 80 78 81 the_semaphore->process_shared = pshared; … … 112 115 *the_sem = the_semaphore; 113 116 117 #if defined(RTEMS_MULTIPROCESSING) 114 118 if ( pshared == PTHREAD_PROCESS_SHARED ) 115 119 _POSIX_Semaphore_MP_Send_process_packet( … … 119 123 0 /* proxy id - Not used */ 120 124 ); 125 #endif 121 126 122 127 _Thread_Enable_dispatch(); … … 167 172 switch ( location ) { 168 173 case OBJECTS_ERROR: 169 seterrno( EINVAL ); 170 return( -1 ); 174 set_errno_and_return_minus_one( EINVAL ); 171 175 case OBJECTS_REMOTE: 172 176 _Thread_Dispatch(); 173 177 return POSIX_MP_NOT_IMPLEMENTED(); 174 seterrno( EINVAL ); 175 return( -1 ); 178 set_errno_and_return_minus_one( EINVAL ); 176 179 case OBJECTS_LOCAL: 177 180 /* … … 180 183 181 184 if ( the_semaphore->named == TRUE ) { 182 seterrno( EINVAL ); 183 return( -1 ); 185 set_errno_and_return_minus_one( EINVAL ); 184 186 } 185 187 … … 188 190 _CORE_semaphore_Flush( 189 191 &the_semaphore->Semaphore, 192 #if defined(RTEMS_MULTIPROCESSING) 190 193 _POSIX_Semaphore_MP_Send_object_was_deleted, 194 #else 195 NULL, 196 #endif 191 197 -1 /* XXX should also seterrno -> EINVAL */ 192 198 ); … … 194 200 _POSIX_Semaphore_Free( the_semaphore ); 195 201 202 #if defined(RTEMS_MULTIPROCESSING) 196 203 if ( the_semaphore->process_shared == PTHREAD_PROCESS_SHARED ) { 197 204 … … 208 215 ); 209 216 } 217 #endif 210 218 _Thread_Enable_dispatch(); 211 219 return 0; … … 258 266 if ( status == EINVAL ) { /* name -> ID translation failed */ 259 267 if ( !(oflag & O_CREAT) ) { /* willing to create it? */ 260 seterrno( ENOENT ); 261 return (sem_t *) -1; 268 set_errno_and_return_minus_one_cast( ENOENT, sem_t * ); 262 269 } 263 270 /* we are willing to create it */ 264 271 } 265 seterrno( status );/* some type of error */266 return (sem_t *) -1;272 /* some type of error */ 273 set_errno_and_return_minus_one_cast( status, sem_t * ); 267 274 268 275 } else { /* name -> ID translation succeeded */ 269 276 270 277 if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) { 271 seterrno( EEXIST ); 272 return (sem_t *) -1; 278 set_errno_and_return_minus_one_cast( EEXIST, sem_t * ); 273 279 } 274 280 … … 316 322 _POSIX_Semaphore_Free( the_semaphore ); 317 323 324 #if defined(RTEMS_MULTIPROCESSING) 318 325 if ( the_semaphore->process_shared == PTHREAD_PROCESS_SHARED ) { 319 326 … … 330 337 ); 331 338 } 339 #endif 332 340 333 341 } … … 349 357 switch ( location ) { 350 358 case OBJECTS_ERROR: 351 seterrno( EINVAL ); 352 return( -1 ); 359 set_errno_and_return_minus_one( EINVAL ); 353 360 case OBJECTS_REMOTE: 354 361 _Thread_Dispatch(); 355 362 return POSIX_MP_NOT_IMPLEMENTED(); 356 seterrno( EINVAL ); 357 return( -1 ); 363 set_errno_and_return_minus_one( EINVAL ); 358 364 case OBJECTS_LOCAL: 359 365 the_semaphore->open_count -= 1; … … 387 393 switch ( location ) { 388 394 case OBJECTS_ERROR: 389 seterrno( EINVAL ); 390 return( -1 ); 395 set_errno_and_return_minus_one( EINVAL ); 391 396 case OBJECTS_REMOTE: 392 397 _Thread_Dispatch(); 393 398 return POSIX_MP_NOT_IMPLEMENTED(); 394 seterrno( EINVAL ); 395 return( -1 ); 399 set_errno_and_return_minus_one( EINVAL ); 396 400 case OBJECTS_LOCAL: 397 401 402 #if defined(RTEMS_MULTIPROCESSING) 398 403 if ( the_semaphore->process_shared == PTHREAD_PROCESS_SHARED ) { 399 404 _Objects_MP_Close( … … 402 407 ); 403 408 } 409 #endif 404 410 405 411 the_semaphore->linked = FALSE; … … 430 436 switch ( location ) { 431 437 case OBJECTS_ERROR: 432 seterrno( EINVAL ); 433 return( -1 ); 438 set_errno_and_return_minus_one( EINVAL ); 434 439 case OBJECTS_REMOTE: 435 440 _Thread_Dispatch(); 436 441 return POSIX_MP_NOT_IMPLEMENTED(); 437 seterrno( EINVAL ); 438 return( -1 ); 442 set_errno_and_return_minus_one( EINVAL ); 439 443 case OBJECTS_LOCAL: 440 444 _CORE_semaphore_Seize( … … 521 525 switch ( location ) { 522 526 case OBJECTS_ERROR: 523 seterrno( EINVAL ); 524 return( -1 ); 527 set_errno_and_return_minus_one( EINVAL ); 525 528 case OBJECTS_REMOTE: 526 529 _Thread_Dispatch(); 527 530 return POSIX_MP_NOT_IMPLEMENTED(); 528 seterrno( EINVAL ); 529 return( -1 ); 531 set_errno_and_return_minus_one( EINVAL ); 530 532 case OBJECTS_LOCAL: 531 533 _CORE_semaphore_Surrender( 532 534 &the_semaphore->Semaphore, 533 535 the_semaphore->Object.id, 536 #if defined(RTEMS_MULTIPROCESSING) 534 537 POSIX_Semaphore_MP_support 538 #else 539 NULL 540 #endif 535 541 ); 536 542 _Thread_Enable_dispatch(); … … 556 562 switch ( location ) { 557 563 case OBJECTS_ERROR: 558 seterrno( EINVAL ); 559 return( -1 ); 564 set_errno_and_return_minus_one( EINVAL ); 560 565 case OBJECTS_REMOTE: 561 566 _Thread_Dispatch(); 562 567 return POSIX_MP_NOT_IMPLEMENTED(); 563 seterrno( EINVAL ); 564 return( -1 ); 568 set_errno_and_return_minus_one( EINVAL ); 565 569 case OBJECTS_LOCAL: 566 570 *sval = _CORE_semaphore_Get_count( &the_semaphore->Semaphore );
Note: See TracChangeset
for help on using the changeset viewer.