source: rtems/cpukit/posix/src/mutexgetprioceiling.c @ 9b754a25

Last change on this file since 9b754a25 was 9b754a25, checked in by Joel Sherrill <joel.sherrill@…>, on 03/26/07 at 22:56:34

2007-03-26 Joel Sherrill <joel@…>

PR 1231/cpukit

  • posix/src/adasupp.c, posix/src/clockgetcpuclockid.c, posix/src/clockgetenableattr.c, posix/src/clockgetres.c, posix/src/clockgettime.c, posix/src/clocksetenableattr.c, posix/src/mutex.c, posix/src/mutexattrdestroy.c, posix/src/mutexattrgetprioceiling.c, posix/src/mutexattrgetprotocol.c, posix/src/mutexattrgetpshared.c, posix/src/mutexattrinit.c, posix/src/mutexattrsetprioceiling.c, posix/src/mutexattrsetprotocol.c, posix/src/mutexattrsetpshared.c, posix/src/mutexdefaultattributes.c, posix/src/mutexdestroy.c, posix/src/mutexgetprioceiling.c, posix/src/mutexlock.c, posix/src/mutexlocksupp.c, posix/src/mutexmp.c, posix/src/mutexsetprioceiling.c, posix/src/mutextimedlock.c, posix/src/mutextrylock.c, posix/src/mutexunlock.c, posix/src/nanosleep.c, posix/src/posixintervaltotimespec.c, posix/src/posixtimespecsubtract.c, posix/src/posixtimespectointerval.c, posix/src/psignalclearprocesssignals.c, posix/src/psignalclearsignals.c, posix/src/psignalsetprocesssignals.c, posix/src/psignalunblockthread.c, posix/src/ptimer.c, posix/src/ptimer1.c, posix/src/sched.c, posix/src/time.c: Remove unneeded includes of assert.h
  • Property mode set to 100644
File size: 1.1 KB
Line 
1/*
2 *  $Id$
3 */
4
5#if HAVE_CONFIG_H
6#include "config.h"
7#endif
8
9#include <errno.h>
10#include <pthread.h>
11
12#include <rtems/system.h>
13#include <rtems/score/coremutex.h>
14#include <rtems/score/watchdog.h>
15#if defined(RTEMS_MULTIPROCESSING)
16#include <rtems/score/mpci.h>
17#endif
18#include <rtems/posix/mutex.h>
19#include <rtems/posix/priority.h>
20#include <rtems/posix/time.h>
21
22/*PAGE
23 *
24 *  13.6.2 Change the Priority Ceiling of a Mutex, P1003.1c/Draft 10, p. 131
25 */
26
27int pthread_mutex_getprioceiling(
28  pthread_mutex_t   *mutex,
29  int               *prioceiling
30)
31{
32  register POSIX_Mutex_Control *the_mutex;
33  Objects_Locations             location;
34
35  if ( !prioceiling )
36    return EINVAL;
37
38  the_mutex = _POSIX_Mutex_Get( mutex, &location );
39  switch ( location ) {
40    case OBJECTS_REMOTE:
41#if defined(RTEMS_MULTIPROCESSING)
42      return POSIX_MP_NOT_IMPLEMENTED();   /* XXX feels questionable */
43#endif
44    case OBJECTS_ERROR:
45      return EINVAL;
46    case OBJECTS_LOCAL:
47      *prioceiling = _POSIX_Priority_From_core(
48        the_mutex->Mutex.Attributes.priority_ceiling
49      );
50      _Thread_Enable_dispatch();
51      return 0;
52  }
53  return POSIX_BOTTOM_REACHED();
54}
Note: See TracBrowser for help on using the repository browser.