Commit Graph

8207 Commits

Author SHA1 Message Date
Alex Ivanov
355ee7dbd5 score misc: Clean up Doxygen #3 (GCI 2012)
This patch is a task from GCI 2012 which improves the Doxygen
comments in the RTEMS source.

http://www.google-melange.com/gci/task/view/google/gci2012/7982215
2012-11-28 13:57:31 -06:00
Christopher Kerl
d4d7899bb2 score misc: Clean up Doxygen #2 (GCI 2012)
This patch is a task from GCI 2012 which improves the Doxygen
comments in the RTEMS source.

http://www.google-melange.com/gci/task/view/google/gci2012/7986213
2012-11-28 13:31:53 -06:00
Alex Ivanov
f7f1d776de score misc: Clean up Doxygen (GCI 2012)
This patch is a task from GCI 2012 which improves the Doxygen
comments in the RTEMS source.
https://google-melange.appspot.com/gci/task/view/google/gci2012/7978208
2012-11-28 08:17:26 -06:00
Sebastian Huber
815994fd17 score: Add CPU_Exception_frame
Add CPU port type CPU_Exception_frame and function
_CPU_Exception_frame_print().

The CPU ports of avr, bfin, h8300, lm32, m32c, m32r, m68k, nios2, sh,
sparc64, and v850 use an empty default implementation of
_CPU_Exception_frame_print().

Add rtems_exception_frame and rtems_exception_frame_print().

Add RTEMS_FATAL_SOURCE_EXCEPTION for CPU exceptions.  Use rtems_fatal()
with source RTEMS_FATAL_SOURCE_EXCEPTION in CPU ports of i386, powerpc,
and sparc for unexpected exceptions.

Add third parameter to RTEMS_BSP_CLEANUP_OPTIONS() which controls the
BSP_PRINT_EXCEPTION_CONTEXT define used in the default
bsp_fatal_extension().

Add test sptests/spfatal26.
2012-11-27 17:03:40 +01:00
Sebastian Huber
d2202ac56d powerpc: Add CPU_Exception_frame
The powerpc port uses now a unified CPU_Exception_frame.  This resulted
in a CPU_Exception_frame layout change for the MPC5XX.
2012-11-27 17:03:40 +01:00
Sebastian Huber
acec386c75 Filesystem: PR1619: Use ENOSYS for default statvfs
POSIX does not specify an error number in case the file system does not
support this call.  Use the Linux value.
2012-11-22 17:33:13 +01:00
Sebastian Huber
f1738ed619 score: PR1607: Add and use CPU_SIZEOF_POINTER
Add and use new CPU port define CPU_SIZEOF_POINTER.  It must be an
integer literal that can be used by the assembler.  This value will be
used to calculate offsets of structure members.  These offsets will be
used in assembler code.

The size of a pointer is part of the application binary interface (ABI)
and thus independent of the actual programming language.  The compiler
will provide defines to determine the current ABI.  We use these defines
to select the appropriate CPU_SIZEOF_POINTER value.

Static assertions in the new file "cpukit/score/src/percpuasm.c" will
ensure that the value of CPU_SIZEOF_POINTER is consistent with the
current compiler settings.  Also the offset values used by assembler
code are verfied.
2012-11-22 16:35:07 +01:00
Sebastian Huber
74d22fd1a9 score: Inline _API_extensions_Run_postswitch()
The _API_extensions_Run_postswitch() function is only used in
_Thread_Dispatch().   Avoid superfluous load of _Thread_Executing.
2012-11-22 16:35:07 +01:00
Sebastian Huber
32b2c83d00 score: Inline _User_extensions_Thread_switch()
The _User_extensions_Thread_switch() function is only used in
_Thread_Dispatch().
2012-11-22 16:35:07 +01:00
Sebastian Huber
3be0c9afa3 score: Add and use <rtems/score/userextimpl.h>
This file contains the parts of <rtems/score/userext.h> that are only
necessary for the RTEMS implementation.
2012-11-22 16:35:07 +01:00
Sebastian Huber
67a9159e57 score: Avoid superfluous loads 2012-11-22 16:35:06 +01:00
Sebastian Huber
1906a36a86 score: Change _Internal_error_Occurred()
Call the fatal handlers of the user extensions before the update of
_Internal_errors_What_happened.  This reduces the requirements on the
execution context further.  Now a valid read-write data is only required
after the call to the fatal handlers.
2012-11-22 16:35:06 +01:00
Sebastian Huber
e5a2249a49 score: Delete nest level from internal error state
This reverts commit 7d0bdcac1a.
2012-11-22 16:35:06 +01:00
Sebastian Huber
82eb2c4d5f ftpfs: Fix NULL pointer access 2012-11-22 16:35:06 +01:00
Sebastian Huber
fe0f24ea39 ftpfs: Use SIZE command 2012-11-21 16:38:34 +01:00
Sebastian Huber
ad5e0708a2 ftpfs: Open control connection during path eval 2012-11-21 16:38:34 +01:00
Sebastian Huber
be6f505df7 ftpfs: Format 2012-11-21 16:38:34 +01:00
Sebastian Huber
55a36b724c ftpd: Add SIZE command 2012-11-21 16:38:34 +01:00
Sebastian Huber
f4539aa395 arm: Add _CPU_Thread_Idle_body for ARMv7-M 2012-11-21 16:38:34 +01:00
Sebastian Huber
7e32b62a59 score: Add RTEMS_FATAL_SOURCE_POWERPC_EXCEPTION
Add ppc_exc_print_frame_and_context() which prints an exception frame
and the context via printk().

The global exception handler will call now rtems_fatal() with source
RTEMS_FATAL_SOURCE_POWERPC_EXCEPTION.  The fatal code will contain the
pointer value to the exception frame.
2012-11-21 16:38:28 +01:00
Sebastian Huber
3fbcadfbf7 libnetworking: Use rtems_clock_get_uptime_seconds
This reduces the start-up time of the network stack.

With a 1ms tick the ticks since boot value overflows after approximately
50 days.  This problem is avoided with the
rtems_clock_get_uptime_seconds() function.
2012-11-21 16:29:41 +01:00
Sebastian Huber
94eb1bb342 libnetworking: Use rtems_clock_get_uptime_timeval 2012-11-21 16:29:41 +01:00
Sebastian Huber
90733a86b8 rtems: Add rtems_clock_get_uptime_seconds() 2012-11-21 16:29:40 +01:00
Sebastian Huber
bfddb0478c rtems: Add rtems_clock_get_uptime_timeval() 2012-11-21 16:29:36 +01:00
Sebastian Huber
62181b21c2 score: Add and use _TOD_Get_with_nanoseconds()
Delete _TOD_Get_as_timestamp().
2012-11-21 16:24:22 +01:00
Sebastian Huber
154721c434 score: Add _Timestamp_To_timeval() 2012-11-21 16:24:22 +01:00
Sebastian Huber
7f23eadb47 powerpc: Add more BUCSR register values 2012-11-21 16:24:22 +01:00
Sebastian Huber
5adf02e575 monitor: Typo 2012-11-21 16:24:21 +01:00
Sebastian Huber
a12f7e98f1 score: Add RTEMS_FATAL_SOURCE_STACK_CHECKER 2012-11-15 15:33:13 +01:00
Sebastian Huber
a0c7aa5555 score: Add RTEMS_FATAL_SOURCE_ASSERT 2012-11-15 15:33:13 +01:00
Sebastian Huber
b9bc399bdd score: Add RTEMS_FATAL_SOURCE_BSP_SPECIFIC 2012-11-15 15:33:13 +01:00
Sebastian Huber
9d10cf904b score: Add RTEMS_FATAL_SOURCE_BSP_GENERIC 2012-11-15 15:33:13 +01:00
Sebastian Huber
a052181ca2 score: Add RTEMS_FATAL_SOURCE_EXIT
Include <bsp/default-initial-extension.h> in all BSPs.  Call
rtems_fatal() with RTEMS_FATAL_SOURCE_EXIT as source and the exit()
status code as fatal code in every bsp_cleanup().  Move previous
bsp_cleanup() code into bsp_fatal_extension().
2012-11-15 15:33:12 +01:00
Sebastian Huber
038e2f4a88 score: Add RTEMS_FATAL_SOURCE_APPLICATION 2012-11-15 15:33:12 +01:00
Sebastian Huber
608940fe08 score: Add RTEMS_FATAL_SOURCE_BDBUF
Add rtems_bdbuf_fatal_code as a replacement for the previous fatal error
codes.  Remove unused error codes.  Add new error codes.  Use
rtems_fatal() with RTEMS_FATAL_SOURCE_BDBUF as source.
2012-11-15 15:33:12 +01:00
Sebastian Huber
156e91e0f2 score: Add RTEMS_FATAL_SOURCE_LAST
This enum value ensures that the enum type needs at least 32-bits for
architectures with short enums.
2012-11-15 15:33:12 +01:00
Sebastian Huber
e2e5b49215 score: Add rtems_fatal() 2012-11-15 15:33:12 +01:00
Sebastian Huber
b31a9603e0 score: Add INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR
Use INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR on PowerPC for
_CPU_ISR_install_vector().
2012-11-15 15:33:11 +01:00
Sebastian Huber
dc6e830c10 sapi: Add and use rtems_internal_error_description 2012-11-15 15:33:11 +01:00
Sebastian Huber
e4b40531f3 sapi: Add rtems_fatal_source and rtems_fatal_code 2012-11-15 15:33:11 +01:00
Sebastian Huber
7d0bdcac1a score: Add nest level to interal error state
Add Internal_errors_Information::nest_level.  This helps to detect
recursive calls to _Internal_error_Occurred().
2012-11-15 15:33:11 +01:00
Sebastian Huber
891d0d9624 score: Documentation 2012-11-15 15:33:11 +01:00
Sebastian Huber
00dae1866d powerpc: Delete _CPU_Install_interrupt_stack()
This function is only used if CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE.
2012-11-14 14:06:59 +01:00
Sebastian Huber
3c1d387523 Filesystem: Preserve source NULL pointer in mount 2012-11-13 09:38:03 +01:00
Sebastian Huber
0f0db894f7 dosfs: Lazy update of FAT32 FS info sector
The FAT32 FS info sector contains hints for the free cluster count and
the next free cluster.  The previous code read these values during mount
and replaced them with invalid values.  The shutdown operation updated
them with the current values.  These values are only hints.  Every FAT
implementation must cope with arbitrary values.  They are intended to
speed up certain operations.

Now we update the free cluster count and next free culster in the FAT32
FS info sector only during unmount or sync operations and only if the
values have changed.  This avoids writes to the FS info sector and
conforms to the behaviour of Linux and Windows.

The application can force an update of these values now with the fsync()
and fdatasync() operations.  Applications that only read will perform
not write operations to the FAT32 FS info sector.

The new fat_sync() function performs all non-file specific
synchronizations.
2012-11-13 09:38:03 +01:00
Sebastian Huber
886333844e dosfs: Use FAT_UNDEFINED_VALUE 2012-11-13 09:38:03 +01:00
Sebastian Huber
84ff9a471a score: Fix per CPU member offsets
Offset calculation was wrong for 16-bit and 64-bit pointer targets.

Remove unused offsets.  Move Per_CPU_Control::dispatch_necessary after
Per_CPU_Control::isr_nest_level.  Move SMP members to end of structure.
All assembler relevant members are now at the structure beginning.
2012-11-13 09:38:02 +01:00
Sebastian Huber
228df42204 sapi: Add BSP_INITIAL_EXTENSION to confdefs.h
A BSP can supply an initial extension via the new optional
BSP_INITIAL_EXTENSION define.  It will be the last in the initial
extension table.
2012-11-13 09:38:02 +01:00
Sebastian Huber
ecf9858504 score: Move global variables definition
Define _System_state_Current and _Internal_errors_What_happened in
interr.c to make _Internal_error_Occurred() more independent.
2012-11-13 09:20:57 +01:00
Sebastian Huber
466cf31d81 score: Statically initialize user extensions
The initial extensions remain now in a read-only table and will not be
copied to work space memory.  The extension chains are statically
initialized.  This makes it possible to call _User_extensions_Iterate()
independent of the system state.  It is now guaranteed that the fatal
callout of the initial extensions will be called provided the stack
pointer, the read-only data, and code memory are valid.
2012-11-13 09:20:57 +01:00