[rtems commit] score: Objects_Thread_queue_Extract_callout
Sebastian Huber
sebh at rtems.org
Wed Mar 30 06:47:08 UTC 2016
Module: rtems
Branch: master
Commit: 9d9b6b56d1ecf0d8918556835fa0f83289140791
Changeset: http://git.rtems.org/rtems/commit/?id=9d9b6b56d1ecf0d8918556835fa0f83289140791
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Wed Mar 30 08:36:08 2016 +0200
score: Objects_Thread_queue_Extract_callout
Change parameters of the objects thread queue extract callout to avoid a
cast and explicit use of the thread wait information.
---
cpukit/rtems/include/rtems/rtems/msgmp.h | 3 ++-
cpukit/rtems/include/rtems/rtems/partmp.h | 3 ++-
cpukit/rtems/include/rtems/rtems/regionmp.h | 3 ++-
cpukit/rtems/include/rtems/rtems/semmp.h | 3 ++-
cpukit/rtems/src/msgmp.c | 7 +++----
cpukit/rtems/src/partmp.c | 7 +++----
cpukit/rtems/src/regionmp.c | 7 +++----
cpukit/rtems/src/semmp.c | 7 +++----
cpukit/score/include/rtems/score/objectimpl.h | 5 ++++-
cpukit/score/src/threadqextractwithproxy.c | 6 ++++--
10 files changed, 28 insertions(+), 23 deletions(-)
diff --git a/cpukit/rtems/include/rtems/rtems/msgmp.h b/cpukit/rtems/include/rtems/rtems/msgmp.h
index 3c2b450..f3c31f2 100644
--- a/cpukit/rtems/include/rtems/rtems/msgmp.h
+++ b/cpukit/rtems/include/rtems/rtems/msgmp.h
@@ -163,7 +163,8 @@ void _Message_queue_MP_Send_object_was_deleted (
* the remote node must be informed of this.
*/
void _Message_queue_MP_Send_extract_proxy (
- void *argument
+ Thread_Control *the_thread,
+ Objects_Id id
);
/**
diff --git a/cpukit/rtems/include/rtems/rtems/partmp.h b/cpukit/rtems/include/rtems/rtems/partmp.h
index 0658a78..26af64e 100644
--- a/cpukit/rtems/include/rtems/rtems/partmp.h
+++ b/cpukit/rtems/include/rtems/rtems/partmp.h
@@ -133,7 +133,8 @@ void _Partition_MP_Process_packet (
* the remote node must be informed of this.
*/
void _Partition_MP_Send_extract_proxy (
- void *argument
+ Thread_Control *the_thread,
+ Objects_Id id
);
/**
diff --git a/cpukit/rtems/include/rtems/rtems/regionmp.h b/cpukit/rtems/include/rtems/rtems/regionmp.h
index 2b265f2..6768530 100644
--- a/cpukit/rtems/include/rtems/rtems/regionmp.h
+++ b/cpukit/rtems/include/rtems/rtems/regionmp.h
@@ -138,7 +138,8 @@ void _Region_MP_Process_packet (
* the remote node must be informed of this.
*/
void _Region_MP_Send_extract_proxy (
- void *argument
+ Thread_Control *the_thread,
+ Objects_Id id
);
/**
diff --git a/cpukit/rtems/include/rtems/rtems/semmp.h b/cpukit/rtems/include/rtems/rtems/semmp.h
index 9fd6c74..9c9a1e6 100644
--- a/cpukit/rtems/include/rtems/rtems/semmp.h
+++ b/cpukit/rtems/include/rtems/rtems/semmp.h
@@ -132,7 +132,8 @@ void _Semaphore_MP_Send_object_was_deleted (
* the remote node must be informed of this.
*/
void _Semaphore_MP_Send_extract_proxy (
- void *argument
+ Thread_Control *the_thread,
+ Objects_Id id
);
/**
diff --git a/cpukit/rtems/src/msgmp.c b/cpukit/rtems/src/msgmp.c
index 74b240c..53077c4 100644
--- a/cpukit/rtems/src/msgmp.c
+++ b/cpukit/rtems/src/msgmp.c
@@ -453,14 +453,13 @@ void _Message_queue_MP_Send_object_was_deleted (
*/
void _Message_queue_MP_Send_extract_proxy (
- void *argument
+ Thread_Control *the_thread,
+ Objects_Id id
)
{
- Thread_Control *the_thread = (Thread_Control *)argument;
-
_Message_queue_MP_Send_process_packet(
MESSAGE_QUEUE_MP_EXTRACT_PROXY,
- the_thread->Wait.id,
+ id,
(rtems_name) 0,
the_thread->Object.id
);
diff --git a/cpukit/rtems/src/partmp.c b/cpukit/rtems/src/partmp.c
index 00fc810..8e9d307 100644
--- a/cpukit/rtems/src/partmp.c
+++ b/cpukit/rtems/src/partmp.c
@@ -275,14 +275,13 @@ void _Partition_MP_Process_packet (
*/
void _Partition_MP_Send_extract_proxy (
- void *argument
+ Thread_Control *the_thread,
+ Objects_Id id
)
{
- Thread_Control *the_thread = (Thread_Control *)argument;
-
_Partition_MP_Send_process_packet(
PARTITION_MP_EXTRACT_PROXY,
- the_thread->Wait.id,
+ id,
(rtems_name) 0,
the_thread->Object.id
);
diff --git a/cpukit/rtems/src/regionmp.c b/cpukit/rtems/src/regionmp.c
index bd4e04f..bcdec6b 100644
--- a/cpukit/rtems/src/regionmp.c
+++ b/cpukit/rtems/src/regionmp.c
@@ -259,14 +259,13 @@ void _Region_MP_Process_packet (
*/
void _Region_MP_Send_extract_proxy (
- void *argument
+ Thread_Control *the_thread,
+ Objects_Id id
)
{
- Thread_Control *the_thread = (Thread_Control *)argument;
-
_Region_MP_Send_process_packet(
REGION_MP_EXTRACT_PROXY,
- the_thread->Wait.id,
+ id,
(rtems_name) 0,
the_thread->Object.id
);
diff --git a/cpukit/rtems/src/semmp.c b/cpukit/rtems/src/semmp.c
index 66b74ad..90432c1 100644
--- a/cpukit/rtems/src/semmp.c
+++ b/cpukit/rtems/src/semmp.c
@@ -247,14 +247,13 @@ void _Semaphore_MP_Send_object_was_deleted (
}
void _Semaphore_MP_Send_extract_proxy (
- void *argument
+ Thread_Control *the_thread,
+ Objects_Id id
)
{
- Thread_Control *the_thread = (Thread_Control *)argument;
-
_Semaphore_MP_Send_process_packet(
SEMAPHORE_MP_EXTRACT_PROXY,
- the_thread->Wait.id,
+ id,
(rtems_name) 0,
the_thread->Object.id
);
diff --git a/cpukit/score/include/rtems/score/objectimpl.h b/cpukit/score/include/rtems/score/objectimpl.h
index 3adf3a7..786910e 100644
--- a/cpukit/score/include/rtems/score/objectimpl.h
+++ b/cpukit/score/include/rtems/score/objectimpl.h
@@ -127,7 +127,10 @@ typedef enum {
* is extracted from a remote thread queue (i.e. it's proxy must
* extracted from the remote queue).
*/
-typedef void ( *Objects_Thread_queue_Extract_callout )( void * );
+typedef void ( *Objects_Thread_queue_Extract_callout )(
+ Thread_Control *,
+ Objects_Id
+);
/**
* The following defines the structure for the information used to
diff --git a/cpukit/score/src/threadqextractwithproxy.c b/cpukit/score/src/threadqextractwithproxy.c
index 72043a0..9bbf9c6 100644
--- a/cpukit/score/src/threadqextractwithproxy.c
+++ b/cpukit/score/src/threadqextractwithproxy.c
@@ -37,14 +37,16 @@ void _Thread_queue_Extract_with_proxy(
state = the_thread->current_state;
if ( _States_Is_waiting_for_rpc_reply( state ) &&
_States_Is_locally_blocked( state ) ) {
+ Objects_Id id;
Objects_Information *the_information;
Objects_Thread_queue_Extract_callout proxy_extract_callout;
- the_information = _Objects_Get_information_id( the_thread->Wait.id );
+ id = the_thread->Wait.id;
+ the_information = _Objects_Get_information_id( id );
proxy_extract_callout = the_information->extract;
if ( proxy_extract_callout != NULL )
- (*proxy_extract_callout)( the_thread );
+ (*proxy_extract_callout)( the_thread, id );
}
#endif
More information about the vc
mailing list