From e8512eb679aa0d6b72685f25dd6b660912d51371 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 5 Jun 1995 22:59:47 +0000 Subject: incorporate Tony's patches: + c/src/lib/libc/support/generic/malloc.c did not initialize the sbrk amount + _Thread_Handler in c/src/exec/rtems/thread.c left a window during the begin extension which could result in a context switch fixed places which did not correctly distinguish between an CPU_isr and a CPU_isr_entry. --- c/src/exec/libcsupport/src/malloc.c | 1 + c/src/lib/libbsp/i960/cvme961/startup/setvec.c | 18 +++++++++--------- c/src/lib/libc/malloc.c | 1 + 3 files changed, 11 insertions(+), 9 deletions(-) (limited to 'c/src') diff --git a/c/src/exec/libcsupport/src/malloc.c b/c/src/exec/libcsupport/src/malloc.c index 7d0ba04143..702e6225ce 100644 --- a/c/src/exec/libcsupport/src/malloc.c +++ b/c/src/exec/libcsupport/src/malloc.c @@ -62,6 +62,7 @@ void RTEMS_Malloc_Initialize( */ starting_address = start; + RTEMS_Malloc_Sbrk_amount = sbrk_amount; if (!starting_address) { u32_address = (unsigned int)sbrk(length); diff --git a/c/src/lib/libbsp/i960/cvme961/startup/setvec.c b/c/src/lib/libbsp/i960/cvme961/startup/setvec.c index ea3706c3b3..bfba01c271 100644 --- a/c/src/lib/libbsp/i960/cvme961/startup/setvec.c +++ b/c/src/lib/libbsp/i960/cvme961/startup/setvec.c @@ -57,32 +57,32 @@ void print_ipnd_imsk(); unsigned int Xint_2_Group_Map[8] = { 0, 1, 2, 5, 7, 3, 6, 4 }; -i960_isr set_vector( /* returns old vector */ +i960_isr_entry set_vector( /* returns old vector */ rtems_isr_entry func, /* isr routine */ unsigned int xint, /* XINT number */ unsigned int type /* RTEMS or RAW */ ) { - i960_isr *intr_tbl, *cached_intr_tbl; - i960_isr saved_intr; + i960_isr_entry *intr_tbl, *cached_intr_tbl; + i960_isr_entry saved_intr; unsigned int vector, group, nibble; unsigned int *imap; if ( xint > 7 ) exit( 0x80 ); - cached_intr_tbl = (i960_isr *) 0; - intr_tbl = (i960_isr *) Prcb->intr_tbl; + cached_intr_tbl = (i960_isr_entry *) 0; + intr_tbl = (i960_isr_entry *) Prcb->intr_tbl; group = Xint_2_Group_Map[xint]; /* remap XINT to group */ vector = (group << 4) + 2; /* direct vector num */ if ( type ) rtems_interrupt_catch( func, vector, (rtems_isr_entry *) &saved_intr ); else { - saved_intr = (i960_isr) intr_tbl[ vector ]; - /* return old vector */ - intr_tbl[ vector + 1 ] = /* normal vector table */ - cached_intr_tbl[ group ] = (i960_isr) func; /* cached vector */ + saved_intr = (i960_isr_entry) intr_tbl[ vector ]; + /* return old vector */ + intr_tbl[ vector + 1 ] = /* normal vector table */ + cached_intr_tbl[ group ] = (i960_isr_entry) func; /* cached vector */ } if ( xint <= 3 ) imap = &Ctl_tbl->imap0; /* updating IMAP0 */ diff --git a/c/src/lib/libc/malloc.c b/c/src/lib/libc/malloc.c index 7d0ba04143..702e6225ce 100644 --- a/c/src/lib/libc/malloc.c +++ b/c/src/lib/libc/malloc.c @@ -62,6 +62,7 @@ void RTEMS_Malloc_Initialize( */ starting_address = start; + RTEMS_Malloc_Sbrk_amount = sbrk_amount; if (!starting_address) { u32_address = (unsigned int)sbrk(length); -- cgit v1.2.3