#defines in asm.h to use them, and convert code which needs to use C labels
to use _C_LABEL as well. (I can't see any reason why the label vs. function
differentiation shouldn't be GC'd; i only added uses of _C_LABEL.) This
should help if this port is converted to use ELF, and was checked by
compiling all kernels in arm32/conf (with some driver removals and some
MI header fixups re: common blocks) with an arm-linux ELF toolchain.
has already been called and thus we know the values the timers are using.
This also ensures that clock_sc will always be valid when we try and use
it to read the timer registers.
Fixes PR7357.
Modify current_spl_level to reflect the temporary change in interrupt
priority level which dispatching.
Don't increment the interrupt stats for every handler in the interrupt chain.
Cleaned up a number of comments.
Define soft interrupt names.
A few miscellaneous tidy ups.
Removed any remnants of soft interrupt dispatching.
Cleaned up a number of comments.
Removed a number of blank lines.
Nuked register keywords.
Made sure code is in sync with interrupt handling for other ARM hardware.
to remove. The address of the pointer rather than the address of what
is pointed to was use to track the previous handler resulting in problems
when releasing a chained irq. (from John Ballance)
- New versions of the drivers for the devices that really are IOMD
specific. The old arm32/mainbus drivers have either been rewritten
and are now child devices of the IOMD or they have been restructured
and split into generic drivers will IOMD specific attachments.
- IOMD specific clock support. This used to the the generic ARM clock
support but is now specific to the IOMD device.
- Updated to support new IOMD device etc.
- IOMD specific interrupt handling. These files are mainly the old
arch/arm32/irq* files moved here and updated for new iomd device etc.
(revision history maintained).
- Create an independ IOMD device that can be utilised by all ARM
architectures that use an IOMD.
- Configure all IOMD child devices based on the IOMD type and features.
Eliminate obsolete global kernel variable "struct timezone tz"
Add RTC_OFFSET option
Add global kernel variable rtc_offset, which is initialized by
RTC_OFFSET at kernel compile time.
on i386, x68k, mac68k, pc532 and arm32, RTC_OFFSET indicates how many
minutes west (east) of GMT the hardware RTC runs. Defaults to 0.
Places where tz variable was used to indicate this in the past have
been replaced with rtc_offset.
Add sysctl interface to rtc_offset.
Kill obsolete DST_* macros in sys/time.h
gettimeofday now always returns zeroed timezone if zone is requested.
settimeofday now ignores and logs attempts to set non-existant kernel
timezone.
ends for irq_claim() and irq_release() that will allocate and free
memory for the irqhandler structure.
Added an irqblock array that provides a quick reference to all the
interrupts that should be blocked when a particular interrupt is
received. The irq_claim() and irq_release() functions now update the
irqblock array.
These alternative macros have a workaround for the STM^ bug in revision < 3
StrongARM CPU's that causes incorrect register saving if a cache line fill
is in progress during the STM.