RTEMS 6.1-rc1
partimpl.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-2-Clause */
2
12/* COPYRIGHT (c) 1989-2008.
13 * On-Line Applications Research Corporation (OAR).
14 *
15 * Redistribution and use in source and binary forms, with or without
16 * modification, are permitted provided that the following conditions
17 * are met:
18 * 1. Redistributions of source code must retain the above copyright
19 * notice, this list of conditions and the following disclaimer.
20 * 2. Redistributions in binary form must reproduce the above copyright
21 * notice, this list of conditions and the following disclaimer in the
22 * documentation and/or other materials provided with the distribution.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
28 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 * POSSIBILITY OF SUCH DAMAGE.
35 */
36
37#ifndef _RTEMS_RTEMS_PARTIMPL_H
38#define _RTEMS_RTEMS_PARTIMPL_H
39
42
43#ifdef __cplusplus
44extern "C" {
45#endif
46
65static inline Partition_Control *_Partition_Get(
66 Objects_Id id,
67 ISR_lock_Context *lock_context
68)
69{
71 id,
72 lock_context,
74 );
75}
76
84static inline void _Partition_Acquire_critical(
85 Partition_Control *the_partition,
86 ISR_lock_Context *lock_context
87)
88{
89 _ISR_lock_Acquire( &the_partition->Lock, lock_context );
90}
91
99static inline void _Partition_Release(
100 Partition_Control *the_partition,
101 ISR_lock_Context *lock_context
102)
103{
104 _ISR_lock_Release_and_ISR_enable( &the_partition->Lock, lock_context );
105}
106
109#ifdef __cplusplus
110}
111#endif
112
113#if defined(RTEMS_MULTIPROCESSING)
114#include <rtems/rtems/partmp.h>
115#endif
116
117#endif
118/* end of include file */
Objects_Information _Partition_Information
The Partition Manager objects information is used to manage the objects of this class.
#define _ISR_lock_Acquire(_lock, _context)
Acquires an ISR lock inside an ISR disabled section.
Definition: isrlock.h:309
#define _ISR_lock_Release_and_ISR_enable(_lock, _context)
Releases an ISR lock.
Definition: isrlock.h:279
uint32_t Objects_Id
Definition: object.h:101
Objects_Control * _Objects_Get(Objects_Id id, ISR_lock_Context *lock_context, const Objects_Information *information)
Maps the specified object identifier to the associated local object control block.
Definition: objectgetlocal.c:43
This header file provides data structures used by the implementation and the Application Configuratio...
This header file provides the implementation interfaces of the Partition Manager Multiprocessing (MP)...
This header file provides interfaces of the Object Handler which are only used by the implementation.
Local ISR lock context for acquire and release pairs.
Definition: isrlock.h:81
The Partition Control Block (PTCB) represents a partition.
Definition: partdata.h:57