score: Optimize _Objects_Get_local()

Make the interrupt lock context the second parameter to avoid register
moves.
This commit is contained in:
Sebastian Huber
2016-05-02 13:46:50 +02:00
parent e38a92bd9a
commit 0a68d8e45a
14 changed files with 26 additions and 37 deletions
@@ -84,8 +84,8 @@ RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Get (
{
return (POSIX_Barrier_Control *) _Objects_Get_local(
(Objects_Id) *barrier,
&_POSIX_Barrier_Information,
lock_context
lock_context,
&_POSIX_Barrier_Information
);
}
+1 -14
View File
@@ -112,7 +112,7 @@ RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control *_POSIX_Message_queue_Get(
)
{
return (POSIX_Message_queue_Control *)
_Objects_Get_local( id, &_POSIX_Message_queue_Information, lock_context );
_Objects_Get_local( id, lock_context, &_POSIX_Message_queue_Information );
}
/*
@@ -163,19 +163,6 @@ RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Namespace_remove (
&_POSIX_Message_queue_Information, &the_mq->Object );
}
RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control *
_POSIX_Message_queue_Get_interrupt_disable(
mqd_t id,
ISR_lock_Context *lock_context
)
{
return (POSIX_Message_queue_Control *) _Objects_Get_local(
(Objects_Id) id,
&_POSIX_Message_queue_Information,
lock_context
);
}
RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control *
_POSIX_Message_queue_Get_by_name(
const char *name,
@@ -67,8 +67,8 @@ RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control *_POSIX_Semaphore_Get(
{
return (POSIX_Semaphore_Control *) _Objects_Get_local(
(Objects_Id) *id,
&_POSIX_Semaphore_Information,
lock_context
lock_context,
&_POSIX_Semaphore_Information
);
}
@@ -86,8 +86,8 @@ RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control *_POSIX_Spinlock_Get(
return (POSIX_Spinlock_Control *) _Objects_Get_local(
*spinlock,
&_POSIX_Spinlock_Information,
lock_context
lock_context,
&_POSIX_Spinlock_Information
);
}
+2 -2
View File
@@ -99,8 +99,8 @@ RTEMS_INLINE_ROUTINE POSIX_Timer_Control *_POSIX_Timer_Get (
{
return (POSIX_Timer_Control *) _Objects_Get_local(
(Objects_Id) id,
&_POSIX_Timer_Information,
lock_context
lock_context,
&_POSIX_Timer_Information
);
}
+2 -2
View File
@@ -53,7 +53,7 @@ POSIX_Condition_variables_Control *_POSIX_Condition_variables_Get(
return (POSIX_Condition_variables_Control *) _Objects_Get_local(
(Objects_Id) *cond,
&_POSIX_Condition_variables_Information,
lock_context
lock_context,
&_POSIX_Condition_variables_Information
);
}
+2 -2
View File
@@ -63,8 +63,8 @@ POSIX_RWLock_Control *_POSIX_RWLock_Get(
return (POSIX_RWLock_Control *) _Objects_Get_local(
*rwlock,
&_POSIX_RWLock_Information,
lock_context
lock_context,
&_POSIX_RWLock_Information
);
}
@@ -75,7 +75,7 @@ RTEMS_INLINE_ROUTINE Barrier_Control *_Barrier_Get(
)
{
return (Barrier_Control *)
_Objects_Get_local( id, &_Barrier_Information, lock_context );
_Objects_Get_local( id, lock_context, &_Barrier_Information );
}
/**
+1 -1
View File
@@ -72,7 +72,7 @@ RTEMS_INLINE_ROUTINE Dual_ported_memory_Control *_Dual_ported_memory_Get(
)
{
return (Dual_ported_memory_Control *)
_Objects_Get_local( id, &_Dual_ported_memory_Information, lock_context );
_Objects_Get_local( id, lock_context, &_Dual_ported_memory_Information );
}
/**@}*/
@@ -90,7 +90,7 @@ RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Get(
)
{
return (Rate_monotonic_Control *)
_Objects_Get_local( id, &_Rate_monotonic_Information, lock_context );
_Objects_Get_local( id, lock_context, &_Rate_monotonic_Information );
}
void _Rate_monotonic_Timeout( Watchdog_Control *watchdog );
+2 -2
View File
@@ -89,8 +89,8 @@ RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get(
{
return (Timer_Control *) _Objects_Get_local(
id,
&_Timer_Information,
lock_context
lock_context,
&_Timer_Information
);
}
@@ -630,8 +630,10 @@ Objects_Control *_Objects_Get_isr_disable(
*
* @param id The object identifier. This is the first parameter since usual
* callers get the object identifier as the first parameter themself.
* @param lock_context The interrupt lock context. This is the second
* parameter since usual callers get the interrupt lock context as the second
* parameter themself.
* @param information The object class information block.
* @param lock_context The interrupt lock context.
*
* @retval NULL No associated object exists.
* @retval other The pointer to the associated object control block.
@@ -640,8 +642,8 @@ Objects_Control *_Objects_Get_isr_disable(
*/
Objects_Control *_Objects_Get_local(
Objects_Id id,
const Objects_Information *information,
ISR_lock_Context *lock_context
ISR_lock_Context *lock_context,
const Objects_Information *information
);
/**
+2 -2
View File
@@ -27,8 +27,8 @@
Objects_Control *_Objects_Get_local(
Objects_Id id,
const Objects_Information *information,
ISR_lock_Context *lock_context
ISR_lock_Context *lock_context,
const Objects_Information *information
)
{
uint32_t index;
+1 -1
View File
@@ -56,7 +56,7 @@ char *_Objects_Get_name_as_string(
if ( !information )
return NULL;
the_object = _Objects_Get_local( tmpId, information, &lock_context );
the_object = _Objects_Get_local( tmpId, &lock_context, information );
if ( the_object == NULL ) {
return NULL;
}