Changeset 93994fdb in rtems


Ignore:
Timestamp:
04/15/99 18:57:31 (25 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
da41ecbc
Parents:
0f4e074
Message:

Now compiles and is included in normal build even though it is untested.

Added multiprocessing conditional.

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • c/src/exec/posix/src/mqueue.c

    r0f4e074 r93994fdb  
    8181  }
    8282 
     83#if defined(RTEMS_MULTIPROCESSING)
    8384  if ( pshared == PTHREAD_PROCESS_SHARED &&
    8485       !( _Objects_MP_Allocate_and_open( &_POSIX_Message_queue_Information, 0,
     
    8889    set_errno_and_return_minus_one( ENFILE );
    8990  }
     91#endif
    9092 
    9193  the_mq->process_shared  = pshared;
     
    127129           attr->mq_maxmsg,
    128130           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)
    131139    if ( pshared == PTHREAD_PROCESS_SHARED )
    132140      _Objects_MP_Close( &_POSIX_Message_queue_Information, the_mq->Object.id );
     141#endif
    133142 
    134143    _POSIX_Message_queue_Free( the_mq );
     
    147156  *message_queue = the_mq;
    148157 
     158#if defined(RTEMS_MULTIPROCESSING)
    149159  if ( pshared == PTHREAD_PROCESS_SHARED )
    150160    _POSIX_Message_queue_MP_Send_process_packet(
     
    154164      0                          /* Not used */
    155165    );
     166#endif
    156167 
    157168  _Thread_Enable_dispatch();
     
    199210    if ( status == EINVAL ) {      /* name -> ID translation failed */
    200211      if ( !(oflag & O_CREAT) ) {  /* willing to create it? */
    201         seterrno( ENOENT );
     212        set_errno_and_return_minus_one( ENOENT );
    202213        return (mqd_t) -1;
    203214      }
    204215      /* we are willing to create it */
    205216    }
    206     seterrno( status );              /* some type of error */
     217    set_errno_and_return_minus_one( status ); /* some type of error */
    207218    return (mqd_t) -1;
    208219 
     
    210221 
    211222    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {
    212       seterrno( EEXIST );
     223      set_errno_and_return_minus_one( EEXIST );
    213224      return (mqd_t) -1;
    214225    }
     
    257268    _POSIX_Message_queue_Free( the_mq );
    258269 
     270#if defined(RTEMS_MULTIPROCESSING)
    259271    if ( the_mq->process_shared == PTHREAD_PROCESS_SHARED ) {
    260272 
     
    271283      );
    272284    }
     285#endif
    273286 
    274287  }
     
    290303  switch ( location ) {
    291304    case OBJECTS_ERROR:
    292       seterrno( EINVAL );
    293       return( -1 );
     305      set_errno_and_return_minus_one( EINVAL );
    294306    case OBJECTS_REMOTE:
    295307      _Thread_Dispatch();
    296308      return POSIX_MP_NOT_IMPLEMENTED();
    297       seterrno( EINVAL );
    298       return( -1 );
     309      set_errno_and_return_minus_one( EINVAL );
    299310    case OBJECTS_LOCAL:
    300311      the_mq->open_count -= 1;
     
    328339  switch ( location ) {
    329340    case OBJECTS_ERROR:
    330       seterrno( EINVAL );
    331       return( -1 );
     341      set_errno_and_return_minus_one( EINVAL );
    332342    case OBJECTS_REMOTE:
    333343      _Thread_Dispatch();
    334344      return POSIX_MP_NOT_IMPLEMENTED();
    335       seterrno( EINVAL );
    336       return( -1 );
     345      set_errno_and_return_minus_one( EINVAL );
    337346    case OBJECTS_LOCAL:
    338347 
     348#if defined(RTEMS_MULTIPROCESSING)
    339349      _Objects_MP_Close(
    340350        &_POSIX_Message_queue_Information,
    341351        the_mq->Object.id
    342352      );
     353#endif
    343354 
    344355      the_mq->linked = FALSE;
     
    371382  switch ( location ) {
    372383    case OBJECTS_ERROR:
    373       seterrno( EINVAL );
    374       return( -1 );
     384      set_errno_and_return_minus_one( EINVAL );
    375385    case OBJECTS_REMOTE:
    376386      _Thread_Dispatch();
    377387      return POSIX_MP_NOT_IMPLEMENTED();
    378       seterrno( EINVAL );
    379       return( -1 );
     388      set_errno_and_return_minus_one( EINVAL );
    380389    case OBJECTS_LOCAL:
    381390      /* XXX must add support for timeout and priority */
     
    385394        msg_len,
    386395        mqdes,
     396#if defined(RTEMS_MULTIPROCESSING)
    387397        NULL       /* XXX _POSIX_Message_queue_Core_message_queue_mp_support*/
     398#else
     399        NULL
     400#endif
    388401      );
    389402      _Thread_Enable_dispatch();
     
    463476  switch ( location ) {
    464477    case OBJECTS_ERROR:
    465       seterrno( EINVAL );
    466       return( -1 );
     478      set_errno_and_return_minus_one( EINVAL );
    467479    case OBJECTS_REMOTE:
    468480      _Thread_Dispatch();
    469481      return POSIX_MP_NOT_IMPLEMENTED();
    470       seterrno( EINVAL );
    471       return( -1 );
     482      set_errno_and_return_minus_one( EINVAL );
    472483    case OBJECTS_LOCAL:
    473484      /* XXX need to define the options argument to this */
     
    572583  switch ( location ) {
    573584    case OBJECTS_ERROR:
    574       seterrno( EBADF );
    575       return( -1 );
     585      set_errno_and_return_minus_one( EBADF );
    576586    case OBJECTS_REMOTE:
    577587      _Thread_Dispatch();
    578588      return POSIX_MP_NOT_IMPLEMENTED();
    579       seterrno( EINVAL );
    580       return( -1 );
     589      set_errno_and_return_minus_one( EINVAL );
    581590    case OBJECTS_LOCAL:
    582591      if ( notification ) {
    583592        if ( _CORE_message_queue_Is_notify_enabled( &the_mq->Message_queue ) ) {
    584593          _Thread_Enable_dispatch();
    585           seterrno( EBUSY );
    586           return( -1 );
     594          set_errno_and_return_minus_one( EBUSY );
    587595        }
    588596
     
    626634  switch ( location ) {
    627635    case OBJECTS_ERROR:
    628       seterrno( EINVAL );
    629       return( -1 );
     636      set_errno_and_return_minus_one( EINVAL );
    630637    case OBJECTS_REMOTE:
    631638      _Thread_Dispatch();
    632639      return POSIX_MP_NOT_IMPLEMENTED();
    633       seterrno( EINVAL );
    634       return( -1 );
     640      set_errno_and_return_minus_one( EINVAL );
    635641    case OBJECTS_LOCAL:
    636642      /*
     
    682688  switch ( location ) {
    683689    case OBJECTS_ERROR:
    684       seterrno( EINVAL );
    685       return( -1 );
     690      set_errno_and_return_minus_one( EINVAL );
    686691    case OBJECTS_REMOTE:
    687692      _Thread_Dispatch();
    688693      return POSIX_MP_NOT_IMPLEMENTED();
    689       seterrno( EINVAL );
    690       return( -1 );
     694      set_errno_and_return_minus_one( EINVAL );
    691695    case OBJECTS_LOCAL:
    692696      /*
  • c/src/exec/posix/src/semaphore.c

    r0f4e074 r93994fdb  
    1515#include <rtems/posix/semaphore.h>
    1616#include <rtems/posix/time.h>
     17#include <rtems/posix/seterr.h>
    1718
    1819/*PAGE
     
    6869  }
    6970 
     71#if defined(RTEMS_MULTIPROCESSING)
    7072  if ( pshared == PTHREAD_PROCESS_SHARED &&
    7173       !( _Objects_MP_Allocate_and_open( &_POSIX_Semaphore_Information, 0,
     
    7577    set_errno_and_return_minus_one( EAGAIN );
    7678  }
     79#endif
    7780 
    7881  the_semaphore->process_shared  = pshared;
     
    112115  *the_sem = the_semaphore;
    113116 
     117#if defined(RTEMS_MULTIPROCESSING)
    114118  if ( pshared == PTHREAD_PROCESS_SHARED )
    115119    _POSIX_Semaphore_MP_Send_process_packet(
     
    119123      0                /* proxy id - Not used */
    120124    );
     125#endif
    121126 
    122127  _Thread_Enable_dispatch();
     
    167172  switch ( location ) {
    168173    case OBJECTS_ERROR:
    169       seterrno( EINVAL );
    170       return( -1 );
     174      set_errno_and_return_minus_one( EINVAL );
    171175    case OBJECTS_REMOTE:
    172176      _Thread_Dispatch();
    173177      return POSIX_MP_NOT_IMPLEMENTED();
    174       seterrno( EINVAL );
    175       return( -1 );
     178      set_errno_and_return_minus_one( EINVAL );
    176179    case OBJECTS_LOCAL:
    177180      /*
     
    180183
    181184      if ( the_semaphore->named == TRUE ) {
    182         seterrno( EINVAL );
    183         return( -1 );
     185        set_errno_and_return_minus_one( EINVAL );
    184186      }
    185187 
     
    188190      _CORE_semaphore_Flush(
    189191        &the_semaphore->Semaphore,
     192#if defined(RTEMS_MULTIPROCESSING)
    190193        _POSIX_Semaphore_MP_Send_object_was_deleted,
     194#else
     195        NULL,
     196#endif
    191197        -1  /* XXX should also seterrno -> EINVAL */
    192198      );
     
    194200      _POSIX_Semaphore_Free( the_semaphore );
    195201 
     202#if defined(RTEMS_MULTIPROCESSING)
    196203      if ( the_semaphore->process_shared == PTHREAD_PROCESS_SHARED ) {
    197204 
     
    208215        );
    209216      }
     217#endif
    210218      _Thread_Enable_dispatch();
    211219      return 0;
     
    258266    if ( status == EINVAL ) {      /* name -> ID translation failed */
    259267      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 * );
    262269      }
    263270      /* we are willing to create it */
    264271    }
    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 * );
    267274
    268275  } else {                /* name -> ID translation succeeded */
    269276
    270277    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 * );
    273279    }
    274280
     
    316322    _POSIX_Semaphore_Free( the_semaphore );
    317323
     324#if defined(RTEMS_MULTIPROCESSING)
    318325    if ( the_semaphore->process_shared == PTHREAD_PROCESS_SHARED ) {
    319326
     
    330337      );
    331338    }
     339#endif
    332340
    333341  }
     
    349357  switch ( location ) {
    350358    case OBJECTS_ERROR:
    351       seterrno( EINVAL );
    352       return( -1 );
     359      set_errno_and_return_minus_one( EINVAL );
    353360    case OBJECTS_REMOTE:
    354361      _Thread_Dispatch();
    355362      return POSIX_MP_NOT_IMPLEMENTED();
    356       seterrno( EINVAL );
    357       return( -1 );
     363      set_errno_and_return_minus_one( EINVAL );
    358364    case OBJECTS_LOCAL:
    359365      the_semaphore->open_count -= 1;
     
    387393  switch ( location ) {
    388394    case OBJECTS_ERROR:
    389       seterrno( EINVAL );
    390       return( -1 );
     395      set_errno_and_return_minus_one( EINVAL );
    391396    case OBJECTS_REMOTE:
    392397      _Thread_Dispatch();
    393398      return POSIX_MP_NOT_IMPLEMENTED();
    394       seterrno( EINVAL );
    395       return( -1 );
     399      set_errno_and_return_minus_one( EINVAL );
    396400    case OBJECTS_LOCAL:
    397401
     402#if defined(RTEMS_MULTIPROCESSING)
    398403      if ( the_semaphore->process_shared == PTHREAD_PROCESS_SHARED ) {
    399404        _Objects_MP_Close(
     
    402407        );
    403408      }
     409#endif
    404410
    405411      the_semaphore->linked = FALSE;
     
    430436  switch ( location ) {
    431437    case OBJECTS_ERROR:
    432       seterrno( EINVAL );
    433       return( -1 );
     438      set_errno_and_return_minus_one( EINVAL );
    434439    case OBJECTS_REMOTE:
    435440      _Thread_Dispatch();
    436441      return POSIX_MP_NOT_IMPLEMENTED();
    437       seterrno( EINVAL );
    438       return( -1 );
     442      set_errno_and_return_minus_one( EINVAL );
    439443    case OBJECTS_LOCAL:
    440444      _CORE_semaphore_Seize(
     
    521525  switch ( location ) {
    522526    case OBJECTS_ERROR:
    523       seterrno( EINVAL );
    524       return( -1 );
     527      set_errno_and_return_minus_one( EINVAL );
    525528    case OBJECTS_REMOTE:
    526529      _Thread_Dispatch();
    527530      return POSIX_MP_NOT_IMPLEMENTED();
    528       seterrno( EINVAL );
    529       return( -1 );
     531      set_errno_and_return_minus_one( EINVAL );
    530532    case OBJECTS_LOCAL:
    531533      _CORE_semaphore_Surrender(
    532534        &the_semaphore->Semaphore,
    533535        the_semaphore->Object.id,
     536#if defined(RTEMS_MULTIPROCESSING)
    534537        POSIX_Semaphore_MP_support
     538#else
     539        NULL
     540#endif
    535541      );
    536542      _Thread_Enable_dispatch();
     
    556562  switch ( location ) {
    557563    case OBJECTS_ERROR:
    558       seterrno( EINVAL );
    559       return( -1 );
     564      set_errno_and_return_minus_one( EINVAL );
    560565    case OBJECTS_REMOTE:
    561566      _Thread_Dispatch();
    562567      return POSIX_MP_NOT_IMPLEMENTED();
    563       seterrno( EINVAL );
    564       return( -1 );
     568      set_errno_and_return_minus_one( EINVAL );
    565569    case OBJECTS_LOCAL:
    566570      *sval = _CORE_semaphore_Get_count( &the_semaphore->Semaphore );
  • cpukit/posix/src/mqueue.c

    r0f4e074 r93994fdb  
    8181  }
    8282 
     83#if defined(RTEMS_MULTIPROCESSING)
    8384  if ( pshared == PTHREAD_PROCESS_SHARED &&
    8485       !( _Objects_MP_Allocate_and_open( &_POSIX_Message_queue_Information, 0,
     
    8889    set_errno_and_return_minus_one( ENFILE );
    8990  }
     91#endif
    9092 
    9193  the_mq->process_shared  = pshared;
     
    127129           attr->mq_maxmsg,
    128130           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)
    131139    if ( pshared == PTHREAD_PROCESS_SHARED )
    132140      _Objects_MP_Close( &_POSIX_Message_queue_Information, the_mq->Object.id );
     141#endif
    133142 
    134143    _POSIX_Message_queue_Free( the_mq );
     
    147156  *message_queue = the_mq;
    148157 
     158#if defined(RTEMS_MULTIPROCESSING)
    149159  if ( pshared == PTHREAD_PROCESS_SHARED )
    150160    _POSIX_Message_queue_MP_Send_process_packet(
     
    154164      0                          /* Not used */
    155165    );
     166#endif
    156167 
    157168  _Thread_Enable_dispatch();
     
    199210    if ( status == EINVAL ) {      /* name -> ID translation failed */
    200211      if ( !(oflag & O_CREAT) ) {  /* willing to create it? */
    201         seterrno( ENOENT );
     212        set_errno_and_return_minus_one( ENOENT );
    202213        return (mqd_t) -1;
    203214      }
    204215      /* we are willing to create it */
    205216    }
    206     seterrno( status );              /* some type of error */
     217    set_errno_and_return_minus_one( status ); /* some type of error */
    207218    return (mqd_t) -1;
    208219 
     
    210221 
    211222    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {
    212       seterrno( EEXIST );
     223      set_errno_and_return_minus_one( EEXIST );
    213224      return (mqd_t) -1;
    214225    }
     
    257268    _POSIX_Message_queue_Free( the_mq );
    258269 
     270#if defined(RTEMS_MULTIPROCESSING)
    259271    if ( the_mq->process_shared == PTHREAD_PROCESS_SHARED ) {
    260272 
     
    271283      );
    272284    }
     285#endif
    273286 
    274287  }
     
    290303  switch ( location ) {
    291304    case OBJECTS_ERROR:
    292       seterrno( EINVAL );
    293       return( -1 );
     305      set_errno_and_return_minus_one( EINVAL );
    294306    case OBJECTS_REMOTE:
    295307      _Thread_Dispatch();
    296308      return POSIX_MP_NOT_IMPLEMENTED();
    297       seterrno( EINVAL );
    298       return( -1 );
     309      set_errno_and_return_minus_one( EINVAL );
    299310    case OBJECTS_LOCAL:
    300311      the_mq->open_count -= 1;
     
    328339  switch ( location ) {
    329340    case OBJECTS_ERROR:
    330       seterrno( EINVAL );
    331       return( -1 );
     341      set_errno_and_return_minus_one( EINVAL );
    332342    case OBJECTS_REMOTE:
    333343      _Thread_Dispatch();
    334344      return POSIX_MP_NOT_IMPLEMENTED();
    335       seterrno( EINVAL );
    336       return( -1 );
     345      set_errno_and_return_minus_one( EINVAL );
    337346    case OBJECTS_LOCAL:
    338347 
     348#if defined(RTEMS_MULTIPROCESSING)
    339349      _Objects_MP_Close(
    340350        &_POSIX_Message_queue_Information,
    341351        the_mq->Object.id
    342352      );
     353#endif
    343354 
    344355      the_mq->linked = FALSE;
     
    371382  switch ( location ) {
    372383    case OBJECTS_ERROR:
    373       seterrno( EINVAL );
    374       return( -1 );
     384      set_errno_and_return_minus_one( EINVAL );
    375385    case OBJECTS_REMOTE:
    376386      _Thread_Dispatch();
    377387      return POSIX_MP_NOT_IMPLEMENTED();
    378       seterrno( EINVAL );
    379       return( -1 );
     388      set_errno_and_return_minus_one( EINVAL );
    380389    case OBJECTS_LOCAL:
    381390      /* XXX must add support for timeout and priority */
     
    385394        msg_len,
    386395        mqdes,
     396#if defined(RTEMS_MULTIPROCESSING)
    387397        NULL       /* XXX _POSIX_Message_queue_Core_message_queue_mp_support*/
     398#else
     399        NULL
     400#endif
    388401      );
    389402      _Thread_Enable_dispatch();
     
    463476  switch ( location ) {
    464477    case OBJECTS_ERROR:
    465       seterrno( EINVAL );
    466       return( -1 );
     478      set_errno_and_return_minus_one( EINVAL );
    467479    case OBJECTS_REMOTE:
    468480      _Thread_Dispatch();
    469481      return POSIX_MP_NOT_IMPLEMENTED();
    470       seterrno( EINVAL );
    471       return( -1 );
     482      set_errno_and_return_minus_one( EINVAL );
    472483    case OBJECTS_LOCAL:
    473484      /* XXX need to define the options argument to this */
     
    572583  switch ( location ) {
    573584    case OBJECTS_ERROR:
    574       seterrno( EBADF );
    575       return( -1 );
     585      set_errno_and_return_minus_one( EBADF );
    576586    case OBJECTS_REMOTE:
    577587      _Thread_Dispatch();
    578588      return POSIX_MP_NOT_IMPLEMENTED();
    579       seterrno( EINVAL );
    580       return( -1 );
     589      set_errno_and_return_minus_one( EINVAL );
    581590    case OBJECTS_LOCAL:
    582591      if ( notification ) {
    583592        if ( _CORE_message_queue_Is_notify_enabled( &the_mq->Message_queue ) ) {
    584593          _Thread_Enable_dispatch();
    585           seterrno( EBUSY );
    586           return( -1 );
     594          set_errno_and_return_minus_one( EBUSY );
    587595        }
    588596
     
    626634  switch ( location ) {
    627635    case OBJECTS_ERROR:
    628       seterrno( EINVAL );
    629       return( -1 );
     636      set_errno_and_return_minus_one( EINVAL );
    630637    case OBJECTS_REMOTE:
    631638      _Thread_Dispatch();
    632639      return POSIX_MP_NOT_IMPLEMENTED();
    633       seterrno( EINVAL );
    634       return( -1 );
     640      set_errno_and_return_minus_one( EINVAL );
    635641    case OBJECTS_LOCAL:
    636642      /*
     
    682688  switch ( location ) {
    683689    case OBJECTS_ERROR:
    684       seterrno( EINVAL );
    685       return( -1 );
     690      set_errno_and_return_minus_one( EINVAL );
    686691    case OBJECTS_REMOTE:
    687692      _Thread_Dispatch();
    688693      return POSIX_MP_NOT_IMPLEMENTED();
    689       seterrno( EINVAL );
    690       return( -1 );
     694      set_errno_and_return_minus_one( EINVAL );
    691695    case OBJECTS_LOCAL:
    692696      /*
  • cpukit/posix/src/semaphore.c

    r0f4e074 r93994fdb  
    1515#include <rtems/posix/semaphore.h>
    1616#include <rtems/posix/time.h>
     17#include <rtems/posix/seterr.h>
    1718
    1819/*PAGE
     
    6869  }
    6970 
     71#if defined(RTEMS_MULTIPROCESSING)
    7072  if ( pshared == PTHREAD_PROCESS_SHARED &&
    7173       !( _Objects_MP_Allocate_and_open( &_POSIX_Semaphore_Information, 0,
     
    7577    set_errno_and_return_minus_one( EAGAIN );
    7678  }
     79#endif
    7780 
    7881  the_semaphore->process_shared  = pshared;
     
    112115  *the_sem = the_semaphore;
    113116 
     117#if defined(RTEMS_MULTIPROCESSING)
    114118  if ( pshared == PTHREAD_PROCESS_SHARED )
    115119    _POSIX_Semaphore_MP_Send_process_packet(
     
    119123      0                /* proxy id - Not used */
    120124    );
     125#endif
    121126 
    122127  _Thread_Enable_dispatch();
     
    167172  switch ( location ) {
    168173    case OBJECTS_ERROR:
    169       seterrno( EINVAL );
    170       return( -1 );
     174      set_errno_and_return_minus_one( EINVAL );
    171175    case OBJECTS_REMOTE:
    172176      _Thread_Dispatch();
    173177      return POSIX_MP_NOT_IMPLEMENTED();
    174       seterrno( EINVAL );
    175       return( -1 );
     178      set_errno_and_return_minus_one( EINVAL );
    176179    case OBJECTS_LOCAL:
    177180      /*
     
    180183
    181184      if ( the_semaphore->named == TRUE ) {
    182         seterrno( EINVAL );
    183         return( -1 );
     185        set_errno_and_return_minus_one( EINVAL );
    184186      }
    185187 
     
    188190      _CORE_semaphore_Flush(
    189191        &the_semaphore->Semaphore,
     192#if defined(RTEMS_MULTIPROCESSING)
    190193        _POSIX_Semaphore_MP_Send_object_was_deleted,
     194#else
     195        NULL,
     196#endif
    191197        -1  /* XXX should also seterrno -> EINVAL */
    192198      );
     
    194200      _POSIX_Semaphore_Free( the_semaphore );
    195201 
     202#if defined(RTEMS_MULTIPROCESSING)
    196203      if ( the_semaphore->process_shared == PTHREAD_PROCESS_SHARED ) {
    197204 
     
    208215        );
    209216      }
     217#endif
    210218      _Thread_Enable_dispatch();
    211219      return 0;
     
    258266    if ( status == EINVAL ) {      /* name -> ID translation failed */
    259267      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 * );
    262269      }
    263270      /* we are willing to create it */
    264271    }
    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 * );
    267274
    268275  } else {                /* name -> ID translation succeeded */
    269276
    270277    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 * );
    273279    }
    274280
     
    316322    _POSIX_Semaphore_Free( the_semaphore );
    317323
     324#if defined(RTEMS_MULTIPROCESSING)
    318325    if ( the_semaphore->process_shared == PTHREAD_PROCESS_SHARED ) {
    319326
     
    330337      );
    331338    }
     339#endif
    332340
    333341  }
     
    349357  switch ( location ) {
    350358    case OBJECTS_ERROR:
    351       seterrno( EINVAL );
    352       return( -1 );
     359      set_errno_and_return_minus_one( EINVAL );
    353360    case OBJECTS_REMOTE:
    354361      _Thread_Dispatch();
    355362      return POSIX_MP_NOT_IMPLEMENTED();
    356       seterrno( EINVAL );
    357       return( -1 );
     363      set_errno_and_return_minus_one( EINVAL );
    358364    case OBJECTS_LOCAL:
    359365      the_semaphore->open_count -= 1;
     
    387393  switch ( location ) {
    388394    case OBJECTS_ERROR:
    389       seterrno( EINVAL );
    390       return( -1 );
     395      set_errno_and_return_minus_one( EINVAL );
    391396    case OBJECTS_REMOTE:
    392397      _Thread_Dispatch();
    393398      return POSIX_MP_NOT_IMPLEMENTED();
    394       seterrno( EINVAL );
    395       return( -1 );
     399      set_errno_and_return_minus_one( EINVAL );
    396400    case OBJECTS_LOCAL:
    397401
     402#if defined(RTEMS_MULTIPROCESSING)
    398403      if ( the_semaphore->process_shared == PTHREAD_PROCESS_SHARED ) {
    399404        _Objects_MP_Close(
     
    402407        );
    403408      }
     409#endif
    404410
    405411      the_semaphore->linked = FALSE;
     
    430436  switch ( location ) {
    431437    case OBJECTS_ERROR:
    432       seterrno( EINVAL );
    433       return( -1 );
     438      set_errno_and_return_minus_one( EINVAL );
    434439    case OBJECTS_REMOTE:
    435440      _Thread_Dispatch();
    436441      return POSIX_MP_NOT_IMPLEMENTED();
    437       seterrno( EINVAL );
    438       return( -1 );
     442      set_errno_and_return_minus_one( EINVAL );
    439443    case OBJECTS_LOCAL:
    440444      _CORE_semaphore_Seize(
     
    521525  switch ( location ) {
    522526    case OBJECTS_ERROR:
    523       seterrno( EINVAL );
    524       return( -1 );
     527      set_errno_and_return_minus_one( EINVAL );
    525528    case OBJECTS_REMOTE:
    526529      _Thread_Dispatch();
    527530      return POSIX_MP_NOT_IMPLEMENTED();
    528       seterrno( EINVAL );
    529       return( -1 );
     531      set_errno_and_return_minus_one( EINVAL );
    530532    case OBJECTS_LOCAL:
    531533      _CORE_semaphore_Surrender(
    532534        &the_semaphore->Semaphore,
    533535        the_semaphore->Object.id,
     536#if defined(RTEMS_MULTIPROCESSING)
    534537        POSIX_Semaphore_MP_support
     538#else
     539        NULL
     540#endif
    535541      );
    536542      _Thread_Enable_dispatch();
     
    556562  switch ( location ) {
    557563    case OBJECTS_ERROR:
    558       seterrno( EINVAL );
    559       return( -1 );
     564      set_errno_and_return_minus_one( EINVAL );
    560565    case OBJECTS_REMOTE:
    561566      _Thread_Dispatch();
    562567      return POSIX_MP_NOT_IMPLEMENTED();
    563       seterrno( EINVAL );
    564       return( -1 );
     568      set_errno_and_return_minus_one( EINVAL );
    565569    case OBJECTS_LOCAL:
    566570      *sval = _CORE_semaphore_Get_count( &the_semaphore->Semaphore );
Note: See TracChangeset for help on using the changeset viewer.