* preinstall.am: Moved most of the remaining CPU Table fields to the
Configuration Table. This included pretasking_hook, predriver_hook,
postdriver_hook, idle_task, do_zero_of_workspace,
extra_mpci_receive_server_stack, stack_allocate_hook, and
stack_free_hook. As a side-effect of this effort some multiprocessing
code was made conditional and some style clean up occurred.
* startup/bspstart.c, startup/bspstart.c.nocache: Moved most of the
remaining CPU Table fields to the Configuration Table. This included
pretasking_hook, predriver_hook, postdriver_hook, idle_task,
do_zero_of_workspace, extra_mpci_receive_server_stack,
stack_allocate_hook, and stack_free_hook. As a side-effect of this
effort some multiprocessing code was made conditional and some style
clean up occurred.
* shared/bspstart.c: Moved most of the remaining CPU Table fields to
the Configuration Table. This included pretasking_hook,
predriver_hook, postdriver_hook, idle_task, do_zero_of_workspace,
extra_mpci_receive_server_stack, stack_allocate_hook, and
stack_free_hook. As a side-effect of this effort some multiprocessing
code was made conditional and some style clean up occurred.
* amba/amba.c, startup/bspstart.c: Moved most of the remaining CPU
Table fields to the Configuration Table. This included
pretasking_hook, predriver_hook, postdriver_hook, idle_task,
do_zero_of_workspace, extra_mpci_receive_server_stack,
stack_allocate_hook, and stack_free_hook. As a side-effect of this
effort some multiprocessing code was made conditional and some style
clean up occurred.
* Makefile.am: Moved most of the remaining CPU Table fields to the
Configuration Table. This included pretasking_hook, predriver_hook,
postdriver_hook, idle_task, do_zero_of_workspace,
extra_mpci_receive_server_stack, stack_allocate_hook, and
stack_free_hook. As a side-effect of this effort some multiprocessing
code was made conditional and some style clean up occurred.
* libcsupport/src/malloc.c, libmisc/monitor/mon-command.c,
posix/preinstall.am, posix/include/rtems/posix/cond.h,
posix/include/rtems/posix/mqueue.h,
posix/include/rtems/posix/mutex.h,
posix/include/rtems/posix/pthread.h,
posix/include/rtems/posix/semaphore.h, posix/src/conddestroy.c,
posix/src/mutexdestroy.c, posix/src/mutexinit.c,
posix/src/mutexsetprioceiling.c, posix/src/mutexunlock.c,
sapi/include/confdefs.h, sapi/include/rtems/config.h,
sapi/include/rtems/init.h, sapi/include/rtems/sptables.h,
sapi/src/exinit.c, score/include/rtems/system.h,
score/include/rtems/score/mpci.h, score/src/mpci.c,
score/src/thread.c, score/src/threadcreateidle.c,
score/src/threadstackallocate.c, score/src/threadstackfree.c,
score/src/wkspace.c: Moved most of the remaining CPU Table fields to
the Configuration Table. This included pretasking_hook,
predriver_hook, postdriver_hook, idle_task, do_zero_of_workspace,
extra_mpci_receive_server_stack, stack_allocate_hook, and
stack_free_hook. As a side-effect of this effort some multiprocessing
code was made conditional and some style clean up occurred.
* cpu_supplement/arm.t, cpu_supplement/i386.t, cpu_supplement/m68k.t,
cpu_supplement/mips.t, cpu_supplement/powerpc.t, cpu_supplement/sh.t,
cpu_supplement/sparc.t, cpu_supplement/tic4x.t, user/conf.t: Moved
most of the remaining CPU Table fields to the Configuration Table.
This included pretasking_hook, predriver_hook, postdriver_hook,
idle_task, do_zero_of_workspace, extra_mpci_receive_server_stack,
stack_allocate_hook, and stack_free_hook. As a side-effect of this
effort some multiprocessing code was made conditional and some style
clean up occurred.
* rtems/score/cpu.h: Moved most of the remaining CPU Table fields to
the Configuration Table. This included pretasking_hook,
predriver_hook, postdriver_hook, idle_task, do_zero_of_workspace,
extra_mpci_receive_server_stack, stack_allocate_hook, and
stack_free_hook. As a side-effect of this effort some multiprocessing
code was made conditional and some style clean up occurred.
* rtems/new-exceptions/cpu.h, rtems/old-exceptions/cpu.h: Moved most of
the remaining CPU Table fields to the Configuration Table. This
included pretasking_hook, predriver_hook, postdriver_hook, idle_task,
do_zero_of_workspace, extra_mpci_receive_server_stack,
stack_allocate_hook, and stack_free_hook. As a side-effect of this
effort some multiprocessing code was made conditional and some style
clean up occurred.
* libmisc/shell/shell.h: Added comments for the parameters to the
shell_init function.
* libmisc/shell/shell.c: Only set cflags if tcflags is
non-zero. This means the shell can use the current cflags settings
and the application does not need to know the baudrate etc.
* libmisc/capture/capture.h: Fix the comment.
* iostream/Makefile.am: Change the executable name so it does not
create a file which is the same name as the standard header file.
* iostream/system.h: Need to increase the number of semaphores for
the libstdc++ runtime.
* shared/irq/i8259.c, shared/irq/irq.h, shared/irq/irq_supp.h,
shared/irq/openpic_i8259_irq.c: BSP_disable_irq_at_pic(),
openpic_disable_irq(), BSP_irq_disable_at_i8259s() now return
0/1 if irq was disabled/enabled prior to disabling.
irq_supp.h now exports a inline helper routine for scanning
a list of shared handlers; to be used by PIC drivers.
* irq/irq_init.c: added new args to openpic_init().
This BSP probably needs them (8245 has an EPIC).
I would be surprised if the PCI interrupts with the
old code actually worked...
* shared/openpic/openpic.c shared/openpic/openpic.h,
shared/irq/irq_init.c: added more parameters to
openpic_init() so that more details of the configuration
can be overridden/set from the BSP. Moved setup of
the EPIC-specific EOI delay from BSP code into openpic_init()
using the new 'epic_freq' parameter.
* shared/openpic/openpic.c, shared/openpic/openpic.h:
- eliminated conditional compilation (#ifdef mpc8240)
The difference in register-layout between the EPIC
and the std. openPIC is handled by an offset parameter
which can be set at run-time (initialization) with
a new routine 'openpic_set_src_offset()'.
- allow BSP to define symbol BSP_OPEN_PIC_BIG_ENDIAN
which builds the driver for big-endian register access
(mpc8540).
- openpic_disable_irq() now returns the old state so
that it can be restored later.
* shared/irq/openpic_i8259_irq.c:
- conditionally define 'irq_mask_or_tbl' only if
BSP_PCI_ISA_BRIDGE_IRQ is defined.
- use _ISR_Get_level() / _ISR_Set_level() for re-enabling
interrupts rather than messing with MSR directly;
these macros:
o implement compiler memory barrier
o will handle multiple levels (e500 'critical' interrupts)
if they are ever supported.
- decrementer irqs are also shareable - added list traversal.
* shared/irq/irq_supp.h: Make sure BSP_SHARED_HANDLER_SUPPORT
is set. The shared irq manager supports shared interrupts
(but requires also that the PIC-driver supports them by
traversing the list of shared handlers).
Declare C_dispatch_irq_handler() which must be defined
(like the other routines declared in this header) by the
PIC-driver.
* shared/pci/detect_raven_bridge.c: use ifdef mvme2100
rather than ifdef mpc824x so that we don't depend on
compile-time CPU flavor. Eventually, this should become
a run-time check.
* shared/vme/vmeconfig.c: Include <libcpu/bat.h> only
if the BSP-specific configuration header (VMEConfig.h)
defines BSP_VME_BAT_IDX so that this file can be used
on CPUs w/o bats (e500).
* new-exceptions/raw_exception.c, new-exceptions/raw_exception.h,
old-exception/cpu.c: define bsp_exceptions_in_RAM variable.
This is probably only used by the simulator (were else
can you install something to ROM ??).
* rtems/score/cpu.h: Wonderful bookE doesn't have mftb/mftbu;
( CPU_Get_timebase_low() ) they only define the TBRU/TBRL SPRs
so we use these. Should work on all CPUs.
* mpc6xx/mmu/bat.c, mpc6xx/mmu/pte121.c: use new
feature-checks from cpuIdent.h rather than filtering
CPU types when checking for availability of high BATs
and an MMU with hardware page-table lookup.
* shared/include/cpuIdent.h, shared/include/cpuIdent.c:
Added a simple 'feature check' facility. Code should
not check for a particular CPU type if possible but
check the respective feature bit (e.g., 'has_altivec').
This makes it much less cumbersome to add more CPU
types in the future.
* shared/startup/pretaskinghook.c: Replaced inclusion of
<bsp/consoleIo.h> by <rtems/bspIo.> (for printk) and
made it conditional on #ifdef SHOW_MORE_INIT_SETTINGS.
* Makefile.am, irq/irq.c: fixed source-tree path of irq_supp.h,
fixed type of 1st arg to C_dispatch_irq_handler() which
is NOT a CPU_Interrupt_frame but a BSP_Exception_frame
(not that it is ever used but the two layouts differ).
* rtems/src/barrierdelete.c, rtems/src/barrierrelease.c,
rtems/src/barriertranslatereturncode.c, rtems/src/barrierwait.c,
rtems/src/clockget.c, rtems/src/dpmemdelete.c,
rtems/src/dpmemexternal2internal.c,
rtems/src/dpmeminternal2external.c, rtems/src/eventsend.c,
rtems/src/eventtimeout.c, rtems/src/msgqbroadcast.c,
rtems/src/msgqdelete.c, rtems/src/msgqflush.c,
rtems/src/msgqgetnumberpending.c, rtems/src/msgqreceive.c,
rtems/src/msgqsend.c, rtems/src/msgqurgent.c, rtems/src/partdelete.c,
rtems/src/partgetbuffer.c, rtems/src/partreturnbuffer.c,
rtems/src/ratemoncancel.c, rtems/src/ratemondelete.c,
rtems/src/ratemongetstatistics.c, rtems/src/ratemongetstatus.c,
rtems/src/ratemonperiod.c, rtems/src/ratemonresetstatistics.c,
rtems/src/ratemontimeout.c, rtems/src/semdelete.c,
rtems/src/semflush.c, rtems/src/semobtain.c, rtems/src/semrelease.c,
rtems/src/semtranslatereturncode.c, rtems/src/signalsend.c,
rtems/src/taskdelete.c, rtems/src/taskgetnote.c,
rtems/src/taskissuspended.c, rtems/src/taskrestart.c,
rtems/src/taskresume.c, rtems/src/tasksetnote.c,
rtems/src/tasksetpriority.c, rtems/src/taskstart.c,
rtems/src/tasksuspend.c, rtems/src/taskvariableadd.c,
rtems/src/taskvariabledelete.c, rtems/src/taskvariableget.c,
rtems/src/timercancel.c, rtems/src/timerdelete.c,
rtems/src/timerfirewhen.c, rtems/src/timergetinfo.c,
rtems/src/timerreset.c, rtems/src/timerserverfireafter.c,
rtems/src/timerserverfirewhen.c: Restructured all code with
the switch (location) pattern so that OBJECTS_LOCAL is first
and we can fall into it and the OBJECTS_ERROR case breaks
to a return RTEMS_INVALID_ID. This eliminates the return
RTEMS_INTERNAL_ERROR at the bottom of each of these files which
was unreachable and untestable code. This resulted in a code
savings of approximately 20 bytes per file on the SPARC/ERC32.
* shared/irq/irq.h, shared/irq/irq.c, shared/irq/irq_init.c,
shared/irq/irq_supp.h (added):
Removed 'is_processor_irq()' from irq.c; the BSP routines
BSP_enable_irq_at_pic()/BSP_disable_irq_at_pic() are required
to ignore processor irqs anyways. Removed
all BSP-defined constants from irq.c. This makes irq.c (almost)
binary-compatible among BSPs (ultimate goal is making 'shared'
a library).
Added a header (irq_supp.h) defining the interface between
the generic interrupt manager (irq.c) and the routines it
requires to be supplied by the BSP (eventually, these
should go into rtems/irq.h).
* posix/Makefile.am: Restructed to move the
OBJECTS_LOCAL case to the top of the switch statement and
eliminate the fall-through return of POSIX_BOTTOM_REACHED. These
changes produced simplier assembly code and allowed for complete
test coverage. Also applied some consistency to the functions
that translate the core status codes to POSIX status codes.
* irq/irq.h, irq/irq_init.c: Removed the definition
of ASM_IRQ_VECTOR_BASE; this symbol was only use to
initialize the irqBase member of the rtems_irq_global_settings
struct. However, irqBase is an rtems_irq_symbolic_name,
so using BSP_LOWEST_OFFSET is more appropriate.
* posix/include/rtems/posix/mutex.h,
posix/include/rtems/posix/semaphore.h, posix/src/cancel.c,
posix/src/conddestroy.c, posix/src/condsignalsupp.c,
posix/src/condwaitsupp.c, posix/src/keydelete.c,
posix/src/keygetspecific.c, posix/src/keysetspecific.c,
posix/src/mqueueclose.c, posix/src/mqueuegetattr.c,
posix/src/mqueuenotify.c, posix/src/mqueuerecvsupp.c,
posix/src/mqueuesendsupp.c, posix/src/mqueuesetattr.c,
posix/src/mqueuetranslatereturncode.c, posix/src/mutexdestroy.c,
posix/src/mutexgetprioceiling.c, posix/src/mutexinit.c,
posix/src/mutexlocksupp.c, posix/src/mutexsetprioceiling.c,
posix/src/mutexunlock.c, posix/src/pbarrierdestroy.c,
posix/src/pbarriertranslatereturncode.c, posix/src/pbarrierwait.c,
posix/src/prwlockdestroy.c, posix/src/prwlockrdlock.c,
posix/src/prwlocktimedrdlock.c, posix/src/prwlocktimedwrlock.c,
posix/src/prwlocktranslatereturncode.c, posix/src/prwlocktryrdlock.c,
posix/src/prwlocktrywrlock.c, posix/src/prwlockunlock.c,
posix/src/prwlockwrlock.c, posix/src/pspindestroy.c,
posix/src/pspinlock.c, posix/src/pspinlocktranslatereturncode.c,
posix/src/pspintrylock.c, posix/src/pspinunlock.c,
posix/src/pthreaddetach.c, posix/src/pthreadequal.c,
posix/src/pthreadgetschedparam.c, posix/src/pthreadjoin.c,
posix/src/pthreadkill.c, posix/src/pthreadsetschedparam.c,
posix/src/ptimer1.c, posix/src/semaphorewaitsupp.c,
posix/src/semclose.c, posix/src/semdestroy.c,
posix/src/semgetvalue.c, posix/src/sempost.c, posix/src/types.c,
rtems/src/msgqtranslatereturncode.c, rtems/src/semobtain.c,
rtems/src/timerfireafter.c, score/include/rtems/system.h,
score/include/rtems/score/corebarrier.h,
score/include/rtems/score/coremsg.h,
score/include/rtems/score/coremutex.h,
score/include/rtems/score/coresem.h: Restructed to move the
OBJECTS_LOCAL case to the top of the switch statement and
eliminate the fall-through return of POSIX_BOTTOM_REACHED. These
changes produced simplier assembly code and allowed for complete
test coverage. Also applied some consistency to the functions
that translate the core status codes to POSIX status codes.
* posix/src/mutextranslatereturncode.c,
posix/src/semaphoretranslatereturncode.c: New files.
* posix/src/mutexfromcorestatus.c: Removed.