summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1995-09-12 19:45:42 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1995-09-12 19:45:42 +0000
commitb3ac6a8dfe10aeaf3a9c59fd145bddfff119480e (patch)
treed14038b83435f95a9dbfeb9508bcef9994e057f9 /cpukit
parentAdded... (diff)
downloadrtems-b3ac6a8dfe10aeaf3a9c59fd145bddfff119480e.tar.bz2
Initial attempt at building HP PA-RISC using Solaris hosted tools.
Changed back to Newlib for Solaris UNIX simulator.
Diffstat (limited to '')
-rw-r--r--cpukit/libcsupport/src/newlibc.c16
-rw-r--r--cpukit/score/cpu/hppa1.1/cpu.c6
-rw-r--r--cpukit/score/src/mpci.c2
-rw-r--r--cpukit/score/src/thread.c3
4 files changed, 20 insertions, 7 deletions
diff --git a/cpukit/libcsupport/src/newlibc.c b/cpukit/libcsupport/src/newlibc.c
index e041668375..db959d6156 100644
--- a/cpukit/libcsupport/src/newlibc.c
+++ b/cpukit/libcsupport/src/newlibc.c
@@ -119,10 +119,19 @@ libc_switch_hook(rtems_tcb *current_task,
/* XXX We can't use rtems_task_set_note() here since SYSI task has a
* tid of 0, which is treated specially (optimized, actually)
* by rtems_task_set_note
+ *
+ * NOTE: The above comment is no longer true and we need to use
+ * the extension data areas added about the same time.
*/
- impure_value = (rtems_unsigned32) _REENT;
- MY_task_set_note(current_task, LIBC_NOTEPAD, impure_value);
+ /*
+ * Don't touch the outgoing task if it has been deleted.
+ */
+
+ if ( !_States_Is_transient( current_task->current_state ) ) {
+ impure_value = (rtems_unsigned32) _REENT;
+ MY_task_set_note(current_task, LIBC_NOTEPAD, impure_value);
+ }
_REENT = (struct _reent *) MY_task_get_note(heir_task, LIBC_NOTEPAD);
@@ -171,7 +180,8 @@ libc_delete_hook(rtems_tcb *current_task,
ptr = (struct _reent *) MY_task_get_note(deleted_task, LIBC_NOTEPAD);
}
- if (ptr)
+ /* if (ptr) */
+ if (ptr && ptr != &libc_global_reent)
{
_wrapup_reent(ptr);
_reclaim_reent(ptr);
diff --git a/cpukit/score/cpu/hppa1.1/cpu.c b/cpukit/score/cpu/hppa1.1/cpu.c
index 6cb6347151..6dee0c1225 100644
--- a/cpukit/score/cpu/hppa1.1/cpu.c
+++ b/cpukit/score/cpu/hppa1.1/cpu.c
@@ -33,8 +33,8 @@ void hppa_external_interrupt(unsigned32, CPU_Interrupt_frame *);
* So we use our own prototype instead of rtems_isr_entry
*/
-typedef rtems_isr ( *hppa_rtems_isr_entry )(
- rtems_vector_number,
+typedef void ( *hppa_rtems_isr_entry )(
+ ISR_Vector_number,
CPU_Interrupt_frame *
);
@@ -193,7 +193,7 @@ void _CPU_ISR_install_vector(
void
hppa_external_interrupt_initialize(void)
{
- rtems_isr_entry ignore;
+ hppa_rtems_isr_entry ignore;
/* mark them all unused */
diff --git a/cpukit/score/src/mpci.c b/cpukit/score/src/mpci.c
index ee72d6c396..33bfee80c5 100644
--- a/cpukit/score/src/mpci.c
+++ b/cpukit/score/src/mpci.c
@@ -67,7 +67,7 @@ void _MPCI_Handler_initialization(
THREAD_QUEUE_DISCIPLINE_FIFO,
STATES_WAITING_FOR_RPC_REPLY,
NULL,
- RTEMS_TIMEOUT
+ RTEMS_TIMEOUT /* XXX */
);
}
diff --git a/cpukit/score/src/thread.c b/cpukit/score/src/thread.c
index d507e8e075..3f58c8ef12 100644
--- a/cpukit/score/src/thread.c
+++ b/cpukit/score/src/thread.c
@@ -471,6 +471,9 @@ void _Thread_Close(
if ( the_thread->extensions )
(void) _Workspace_Free( the_thread->extensions );
+
+ the_thread->Start.stack = NULL;
+ the_thread->extensions = NULL;
}
/*PAGE