source: rtems/cpukit/score/src/objectgetisr.c @ c398c66

4.11
Last change on this file since c398c66 was c398c66, checked in by Sebastian Huber <sebastian.huber@…>, on Jun 5, 2013 at 8:34:05 AM

score: Align _Objects_Get_isr_disable()

Align ISR disable/enable sequence in _Objects_Get_isr_disable() with
thread dispatch disable/enable sequence in _Objects_Get().

  • Property mode set to 100644
File size: 1.5 KB
Line 
1/**
2 *  @file
3 *
4 *  @brief Object Get Isr Disable
5 *  @ingroup ScoreObject
6 */
7
8/*
9 *  COPYRIGHT (c) 1989-1999.
10 *  On-Line Applications Research Corporation (OAR).
11 *
12 *  The license and distribution terms for this file may be
13 *  found in the file LICENSE in this distribution or at
14 *  http://www.rtems.com/license/LICENSE.
15 */
16
17#if HAVE_CONFIG_H
18#include "config.h"
19#endif
20
21#include <rtems/system.h>
22#include <rtems/score/address.h>
23#include <rtems/score/chain.h>
24#include <rtems/score/object.h>
25#if defined(RTEMS_MULTIPROCESSING)
26#include <rtems/score/objectmp.h>
27#endif
28#include <rtems/score/thread.h>
29#include <rtems/score/wkspace.h>
30#include <rtems/score/sysstate.h>
31#include <rtems/score/isr.h>
32
33Objects_Control *_Objects_Get_isr_disable(
34  Objects_Information *information,
35  Objects_Id           id,
36  Objects_Locations   *location,
37  ISR_Level           *level_p
38)
39{
40  Objects_Control *the_object;
41  uint32_t         index;
42  ISR_Level        level;
43
44  index = id - information->minimum_id + 1;
45
46  if ( information->maximum >= index ) {
47    _ISR_Disable( level );
48    if ( (the_object = information->local_table[ index ]) != NULL ) {
49      *location = OBJECTS_LOCAL;
50      *level_p = level;
51      return the_object;
52    }
53    _ISR_Enable( level );
54    *location = OBJECTS_ERROR;
55    return NULL;
56  }
57  *location = OBJECTS_ERROR;
58
59#if defined(RTEMS_MULTIPROCESSING)
60  _Objects_MP_Is_remote( information, id, location, &the_object );
61  return the_object;
62#else
63  return NULL;
64#endif
65}
Note: See TracBrowser for help on using the repository browser.