diff options
author | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2008-07-10 06:19:03 +0000 |
---|---|---|
committer | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2008-07-10 06:19:03 +0000 |
commit | 780428fb9da5a77c10a132b350a869678a790840 (patch) | |
tree | 9a1babf6df02bb949d9bfbaf11f8f31f4c0442ff /cpukit | |
parent | - Simple timing functions based on a time base reference. (diff) | |
download | rtems-780428fb9da5a77c10a132b350a869678a790840.tar.bz2 |
Extension of the RTEMS Interrupt Manager
(shared handler and handler with a handle).
Diffstat (limited to '')
-rw-r--r-- | cpukit/ChangeLog | 22 | ||||
-rw-r--r-- | cpukit/libcsupport/include/rtems/libcsupport.h | 9 | ||||
-rw-r--r-- | cpukit/rtems/include/rtems/rtems/intr.h | 85 |
3 files changed, 71 insertions, 45 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index 04afa3ad0e..c5941fabe4 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,25 @@ +2008-07-09 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * cpukit/include/rtems/status-checks.h: Macros for status code and + return value checks. + +2008-07-03 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * cpukit/libmisc/shell/shell.c: Restore terminal settings on exit. + +2008-07-03 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * cpukit/libfs/src/dosfs/msdos_dir.c, + cpukit/libfs/src/dosfs/msdos_file.c: Added S_IRWXU, S_IRWXG and S_IRWXO + to file mode. + +2008-07-03 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * cpukit/libi2c/libi2c.h, cpukit/libi2c/libi2c.c: Modified error + messages. Driver operations table is now constant. New entry in the + rtems_libi2c_tfr_mode_t structure: idle_char. This character will be + continuously transmitted in read only functions. + 2008-07-03 Chris Johns <chrisj@rtems.org> * cpukit/libcsupport/include/chain.h: Removed. Use the SAPI diff --git a/cpukit/libcsupport/include/rtems/libcsupport.h b/cpukit/libcsupport/include/rtems/libcsupport.h index 817e9d8a5b..e6db490670 100644 --- a/cpukit/libcsupport/include/rtems/libcsupport.h +++ b/cpukit/libcsupport/include/rtems/libcsupport.h @@ -24,6 +24,8 @@ extern "C" { #endif +#include <stdint.h> + #include <sys/types.h> void RTEMS_Malloc_Initialize( @@ -71,6 +73,13 @@ rtems_extension libc_delete_hook( 0 /* fatal */ \ } +/* + * FIXME: Nearly every BSP declares this function in the BSP startup file + * separately and uses the implementation in c/src/lib/libbsp/shared/bsplibc.c. + * Why differ the parameter types from RTEMS_Malloc_Initialize()? + */ +void bsp_libc_init( void *heap_start, uint32_t heap_size, int use_sbrk); + #ifdef __cplusplus } #endif diff --git a/cpukit/rtems/include/rtems/rtems/intr.h b/cpukit/rtems/include/rtems/rtems/intr.h index d824960252..5482193b04 100644 --- a/cpukit/rtems/include/rtems/rtems/intr.h +++ b/cpukit/rtems/include/rtems/rtems/intr.h @@ -1,8 +1,10 @@ /** - * @file rtems/rtems/intr.h + * @file rtems/rtems/intr.h * - * This include file contains all the constants and structures associated - * with the Interrupt Manager. + * @brief Header file for the Interrupt Manager. + * + * This include file contains all the constants and structures associated with + * the Interrupt Manager. */ /* COPYRIGHT (c) 1989-2008. @@ -32,43 +34,40 @@ extern "C" { /**@{*/ /** - * Interrupt level type + * @brief Interrupt level type. */ typedef ISR_Level rtems_interrupt_level; /** - * The following type defines the control block used to manage - * the vectors. + * @brief Control block type used to manage the vectors. */ typedef ISR_Vector_number rtems_vector_number; /** - * Return type for ISR Handler + * @brief Return type for interrupt handler. */ typedef void rtems_isr; /** - * Pointer to an ISR Handler + * @brief Interrupt handler type. + * + * @see rtems_interrupt_catch() */ typedef rtems_isr ( *rtems_isr_entry )( rtems_vector_number ); /** - * @brief Interrupt_Manager_initialization - * - * This routine initializes the interrupt manager. - * + * @brief Initializes the Interrupt Manager. */ void _Interrupt_Manager_initialization( void ); /** - * @brief rtems_interrupt_catch - * - * This routine implements the rtems_interrupt_catch directive. This - * directive installs new_isr_handler as the RTEMS interrupt service - * routine for vector. The previous RTEMS interrupt service - * routine is returned in old_isr_handler. + * @brief Implementation of the rtems_interrupt_catch directive. + * + * This directive installs @a new_isr_handler as the RTEMS interrupt service + * routine for the interrupt vector with number @a vector. The previous RTEMS + * interrupt service routine is returned in @a old_isr_handler. */ rtems_status_code rtems_interrupt_catch( rtems_isr_entry new_isr_handler, @@ -77,58 +76,54 @@ rtems_status_code rtems_interrupt_catch( ); /** - * @brief rtems_interrupt_disable - * - * This routine disables all maskable interrupts and returns the - * previous level in _isr_cookie. + * @brief Disables all maskable interrupts and returns the previous level in + * @a _isr_cookie. + * + * @note The interrupt level shall be of type @ref rtems_interrupt_level. */ #define rtems_interrupt_disable( _isr_cookie ) \ _ISR_Disable(_isr_cookie) /** - * @brief rtems_interrupt_enable - * - * This routine enables maskable interrupts to the level indicated + * @brief Enables maskable interrupts to the level indicated by @a * _isr_cookie. + * + * @note The interrupt level shall be of type @ref rtems_interrupt_level. */ #define rtems_interrupt_enable( _isr_cookie ) \ _ISR_Enable(_isr_cookie) /** - * @brief rtems_interrupt_flash - * - * This routine temporarily enables maskable interrupts to the - * level in _isr_cookie before redisabling them. + * @brief Temporarily enables maskable interrupts to the level in @a + * _isr_cookie before redisabling them. + * + * @note The interrupt level shall be of type @ref rtems_interrupt_level. */ #define rtems_interrupt_flash( _isr_cookie ) \ _ISR_Flash(_isr_cookie) /** - * @brief rtems_interrupt_is_in_progress - * - * This function returns TRUE if the processor is currently servicing - * an interrupt and FALSE otherwise. A return value of TRUE indicates - * that the caller is an interrupt service routine, NOT a thread. The - * directives available to an interrupt service routine are restricted. + * @brief Returns TRUE if the processor is currently servicing an interrupt + * and FALSE otherwise. + * + * A return value of TRUE indicates that the caller is an interrupt service + * routine and @b not a thread. The directives available to an interrupt + * service routine are restricted. */ #define rtems_interrupt_is_in_progress() \ _ISR_Is_in_progress() /** - * @brief rtems_interrupt_cause - * - * This routine generates an interrupt. - * - * NOTE: No implementation. + * @brief This routine generates an interrupt. + * + * @note No implementation. */ #define rtems_interrupt_cause( _interrupt_to_cause ) /** - * @brief rtems_interrupt_clear - * - * This routine clears the specified interrupt. - * - * NOTE: No implementation. + * @brief This routine clears the specified interrupt. + * + * @note No implementation. */ #define rtems_interrupt_clear( _interrupt_to_clear ) |