2001-08-09 Joel Sherrill <joel@OARcorp.com>

* src/snd_mbx.c, src/tsnd_mbf.c: Unblocking message queue operations
	should NOT use _Thread_Executing for return status since it is
	permissible to invoke message send operations from an ISR.  This was
	reported by Suvrat Gupta <suvrat@utstar.com>.
This commit is contained in:
Joel Sherrill
2001-08-09 20:48:58 +00:00
parent a781bbffb4
commit 02e4dcd3a2
6 changed files with 26 additions and 12 deletions

View File

@@ -1,3 +1,10 @@
2001-08-09 Joel Sherrill <joel@OARcorp.com>
* src/snd_mbx.c, src/tsnd_mbf.c: Unblocking message queue operations
should NOT use _Thread_Executing for return status since it is
permissible to invoke message send operations from an ISR. This was
reported by Suvrat Gupta <suvrat@utstar.com>.
2001-04-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.in: Add [-ansi -fasm] to RTEMS_PROG_CC_FOR_TARGET.

View File

@@ -33,6 +33,7 @@ ER snd_msg(
Objects_Locations location;
unsigned32 message_priority;
void *message_contents;
CORE_message_queue_Status msg_status;
if ( !pk_msg )
return E_PAR;
@@ -50,7 +51,7 @@ ER snd_msg(
message_priority = CORE_MESSAGE_QUEUE_SEND_REQUEST;
message_contents = pk_msg;
_CORE_message_queue_Submit(
msg_status = _CORE_message_queue_Submit(
&the_mailbox->message_queue,
&message_contents,
sizeof(T_MSG *),
@@ -64,8 +65,6 @@ ER snd_msg(
}
_ITRON_return_errorno(
_ITRON_Mailbox_Translate_core_message_queue_return_code(
_Thread_Executing->Wait.return_code
)
_ITRON_Mailbox_Translate_core_message_queue_return_code( msg_status )
);
}

View File

@@ -37,6 +37,7 @@ ER tsnd_mbf(
Objects_Locations location;
Watchdog_Interval interval;
boolean wait;
CORE_message_queue_Status msg_status;
if (msgsz <= 0 || !msg)
return E_PAR;
@@ -61,7 +62,7 @@ ER tsnd_mbf(
case OBJECTS_LOCAL:
/* XXX Submit needs to take into account blocking */
_CORE_message_queue_Submit(
msg_status = _CORE_message_queue_Submit(
&the_message_buffer->message_queue,
msg,
msgsz,
@@ -73,7 +74,7 @@ ER tsnd_mbf(
);
_Thread_Enable_dispatch();
return _ITRON_Message_buffer_Translate_core_message_buffer_return_code(
_Thread_Executing->Wait.return_code
msg_status
);
}

View File

@@ -1,3 +1,10 @@
2001-08-09 Joel Sherrill <joel@OARcorp.com>
* src/snd_mbx.c, src/tsnd_mbf.c: Unblocking message queue operations
should NOT use _Thread_Executing for return status since it is
permissible to invoke message send operations from an ISR. This was
reported by Suvrat Gupta <suvrat@utstar.com>.
2001-04-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.in: Add [-ansi -fasm] to RTEMS_PROG_CC_FOR_TARGET.

View File

@@ -33,6 +33,7 @@ ER snd_msg(
Objects_Locations location;
unsigned32 message_priority;
void *message_contents;
CORE_message_queue_Status msg_status;
if ( !pk_msg )
return E_PAR;
@@ -50,7 +51,7 @@ ER snd_msg(
message_priority = CORE_MESSAGE_QUEUE_SEND_REQUEST;
message_contents = pk_msg;
_CORE_message_queue_Submit(
msg_status = _CORE_message_queue_Submit(
&the_mailbox->message_queue,
&message_contents,
sizeof(T_MSG *),
@@ -64,8 +65,6 @@ ER snd_msg(
}
_ITRON_return_errorno(
_ITRON_Mailbox_Translate_core_message_queue_return_code(
_Thread_Executing->Wait.return_code
)
_ITRON_Mailbox_Translate_core_message_queue_return_code( msg_status )
);
}

View File

@@ -37,6 +37,7 @@ ER tsnd_mbf(
Objects_Locations location;
Watchdog_Interval interval;
boolean wait;
CORE_message_queue_Status msg_status;
if (msgsz <= 0 || !msg)
return E_PAR;
@@ -61,7 +62,7 @@ ER tsnd_mbf(
case OBJECTS_LOCAL:
/* XXX Submit needs to take into account blocking */
_CORE_message_queue_Submit(
msg_status = _CORE_message_queue_Submit(
&the_message_buffer->message_queue,
msg,
msgsz,
@@ -73,7 +74,7 @@ ER tsnd_mbf(
);
_Thread_Enable_dispatch();
return _ITRON_Message_buffer_Translate_core_message_buffer_return_code(
_Thread_Executing->Wait.return_code
msg_status
);
}