source: rtems/cpukit/posix/src/mutexgetprioceiling.c @ f42b726

4.104.114.84.95
Last change on this file since f42b726 was f42b726, checked in by Joel Sherrill <joel.sherrill@…>, on 01/24/01 at 14:17:28

2001-01-24 Ralf Corsepius <corsepiu@…>

  • configure.in: Add src/config.h
  • src/Makefile.am: Add INCLUDES += -I. to pickup config.h
  • src/.cvsignore: Add config.h and stamp-h
  • src/*.c: Add config.h support.
  • Property mode set to 100644
File size: 1.2 KB
Line 
1/*
2 *  $Id$
3 */
4
5#if HAVE_CONFIG_H
6#include "config.h"
7#endif
8
9#include <assert.h>
10#include <errno.h>
11#include <pthread.h>
12
13#include <rtems/system.h>
14#include <rtems/score/coremutex.h>
15#include <rtems/score/watchdog.h>
16#if defined(RTEMS_MULTIPROCESSING)
17#include <rtems/score/mpci.h>
18#endif
19#include <rtems/posix/mutex.h>
20#include <rtems/posix/priority.h>
21#include <rtems/posix/time.h>
22
23/*PAGE
24 *
25 *  13.6.2 Change the Priority Ceiling of a Mutex, P1003.1c/Draft 10, p. 131
26 */
27
28int pthread_mutex_getprioceiling(
29  pthread_mutex_t   *mutex,
30  int               *prioceiling
31)
32{
33  register POSIX_Mutex_Control *the_mutex;
34  Objects_Locations             location;
35
36  if ( !prioceiling )
37    return EINVAL;
38
39  the_mutex = _POSIX_Mutex_Get( mutex, &location );
40  switch ( location ) {
41    case OBJECTS_REMOTE:
42#if defined(RTEMS_MULTIPROCESSING)
43      return POSIX_MP_NOT_IMPLEMENTED();   /* XXX feels questionable */
44#endif
45    case OBJECTS_ERROR:
46      return EINVAL;
47    case OBJECTS_LOCAL:
48      *prioceiling = _POSIX_Priority_From_core(
49        the_mutex->Mutex.Attributes.priority_ceiling
50      );
51      _Thread_Enable_dispatch();
52      return 0;
53  }
54  return POSIX_BOTTOM_REACHED();
55}
Note: See TracBrowser for help on using the repository browser.