From d3802bb5d708d01d03774b6758ed1e87484b8fac Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 20 Apr 2015 09:50:01 +0200 Subject: score: Delete object control block ISR lock The Objects_Control::Lock was a software layer violation. It worked only for the threads since they are somewhat special. Update #2273. --- cpukit/score/include/rtems/score/objectimpl.h | 95 --------------------------- 1 file changed, 95 deletions(-) (limited to 'cpukit/score/include/rtems/score/objectimpl.h') diff --git a/cpukit/score/include/rtems/score/objectimpl.h b/cpukit/score/include/rtems/score/objectimpl.h index cf14c2db5c..4080a249cf 100644 --- a/cpukit/score/include/rtems/score/objectimpl.h +++ b/cpukit/score/include/rtems/score/objectimpl.h @@ -590,98 +590,6 @@ Objects_Control *_Objects_Get_no_protection( Objects_Locations *location ); -/** - * @brief Acquires an object by its identifier. - * - * This function is similar to _Objects_Get_isr_disable(). It disables - * interrupts and acquires the object specific ISR lock for local objects. - * Thread dispatching is not disabled for local objects. For remote objects - * thread dispatching is disabled. - * - * @param[in] information The object information. - * @param[in] id The object identifier. - * @param[in] location The location of the object. - * @param[in] lock_context The lock context for local objects. - * - * @retval object The object corresponding to the identifier. - * @retval NULL No object exists in this domain for this identifier. - * - * @see _Objects_ISR_disable_and_acquire(), _Objects_Release(), - * _Objects_Release_and_ISR_enable(), and - * _Objects_Release_and_thread_dispatch_disable(). - */ -Objects_Control *_Objects_Acquire( - const Objects_Information *information, - Objects_Id id, - Objects_Locations *location, - ISR_lock_Context *lock_context -); - -/** - * @brief Acquires a local object and disables interrupts. - * - * @param[in] the_object The local object to acquire. - * @param[in] lock_context The lock context. - */ -RTEMS_INLINE_ROUTINE void _Objects_ISR_disable_and_acquire( - Objects_Control *the_object, - ISR_lock_Context *lock_context -) -{ - _ISR_lock_ISR_disable_and_acquire( &the_object->Lock, lock_context ); -} - -/** - * @brief Releases a local object. - * - * @param[in] the_object The local object acquired by _Objects_Acquire(). - * @param[in] lock_context The lock context initialized by _Objects_Acquire(). - */ -RTEMS_INLINE_ROUTINE void _Objects_Release( - Objects_Control *the_object, - ISR_lock_Context *lock_context -) -{ - _ISR_lock_Release( &the_object->Lock, lock_context ); -} - -/** - * @brief Releases a local object and restores the interrupt level. - * - * @param[in] the_object The local object acquired by _Objects_Acquire(). - * @param[in] lock_context The lock context initialized by _Objects_Acquire(). - */ -RTEMS_INLINE_ROUTINE void _Objects_Release_and_ISR_enable( - Objects_Control *the_object, - ISR_lock_Context *lock_context -) -{ - _ISR_lock_Release_and_ISR_enable( &the_object->Lock, lock_context ); -} - -/** - * @brief Releases a local object, disables thread dispatching and restores the - * interrupt level. - * - * @param[in] the_object The local object acquired by _Objects_Acquire(). - * @param[in] lock_context The lock context initialized by _Objects_Acquire(). - * - * @return The current processor. - */ -RTEMS_INLINE_ROUTINE Per_CPU_Control * -_Objects_Release_and_thread_dispatch_disable( - Objects_Control *the_object, - ISR_lock_Context *lock_context -) -{ - Per_CPU_Control *cpu_self; - - cpu_self = _Thread_Dispatch_disable_critical(); - _Objects_Release_and_ISR_enable( the_object, lock_context ); - - return cpu_self; -} - /** * Like @ref _Objects_Get, but is used to find "next" open object. * @@ -995,7 +903,6 @@ RTEMS_INLINE_ROUTINE void _Objects_Open( _Assert( the_object != NULL ); the_object->name = name; - _ISR_lock_Initialize( &the_object->Lock, "Object" ); _Objects_Set_local_object( information, @@ -1020,7 +927,6 @@ RTEMS_INLINE_ROUTINE void _Objects_Open_u32( { /* ASSERT: information->is_string == false */ the_object->name.name_u32 = name; - _ISR_lock_Initialize( &the_object->Lock, "Object" ); _Objects_Set_local_object( information, @@ -1047,7 +953,6 @@ RTEMS_INLINE_ROUTINE void _Objects_Open_string( /* ASSERT: information->is_string */ the_object->name.name_p = name; #endif - _ISR_lock_Initialize( &the_object->Lock, "Object" ); _Objects_Set_local_object( information, -- cgit v1.2.3