Changeset 3267f95 in rtems


Ignore:
Timestamp:
Jan 8, 2016, 9:54:20 PM (4 years ago)
Author:
Gedare Bloom <gedare@…>
Branches:
master
Children:
dda25b1
Parents:
505dc61
git-author:
Gedare Bloom <gedare@…> (01/08/16 21:54:20)
git-committer:
Gedare Bloom <gedare@…> (03/03/16 21:36:30)
Message:

i386: prepare for paravirtualized interrupts

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/i386/pc386/startup/bsp_fatal_halt.c

    r505dc61 r3267f95  
    1212void _CPU_Fatal_halt(uint32_t source, uint32_t error)
    1313{
    14   uint32_t _error_lvalue = ( _error );
    1514  __asm__ volatile (
    1615         "cli ; movl %0,%%eax ; hlt"
    17          : "=r" ((_error_lvalue))
    18          : "0" ((_error_lvalue))
     16         : "=r" ((error))
     17         : "0" ((error))
    1918  );
    2019}
  • cpukit/score/cpu/i386/cpu.c

    r505dc61 r3267f95  
    116116  uint32_t   level;
    117117
     118#if !defined(RTEMS_PARAVIRT)
    118119  i386_get_interrupt_level( level );
     120#else
     121  level = i386_get_interrupt_level();
     122#endif
    119123
    120124  return level;
  • cpukit/score/cpu/i386/rtems/score/cpu.h

    r505dc61 r3267f95  
    396396 */
    397397
     398#if !defined(RTEMS_PARAVIRT)
    398399#define _CPU_ISR_Disable( _level ) i386_disable_interrupts( _level )
    399400
     
    407408    else              __asm__ volatile ( "sti" ); \
    408409  }
     410#else
     411#define _CPU_ISR_Disable( _level ) _level = i386_disable_interrupts( )
     412#define _CPU_ISR_Enable( _level ) i386_enable_interrupts( _level )
     413#define _CPU_ISR_Flash( _level ) i386_flash_interrupts( _level )
     414#define _CPU_ISR_Set_level( _new_level ) i386_set_interrupt_level( _new_level)
     415#endif
    409416
    410417uint32_t   _CPU_ISR_Get_level( void );
  • cpukit/score/cpu/i386/rtems/score/interrupts.h

    r505dc61 r3267f95  
    3434 */
    3535/**@{**/
    36 
     36#if !defined(RTEMS_PARAVIRT)
    3737#define i386_disable_interrupts( _level ) \
    3838  { \
     
    7272    _level = (_eflags & EFLAGS_INTR_ENABLE) ? 0 : 1; \
    7373  } while (0)
     74#else
     75uint32_t i386_disable_interrupts( void );
     76void i386_enable_interrupts(uint32_t level);
     77void i386_flash_interrupts(uint32_t level);
     78void i386_set_interrupt_level(uint32_t new_level);
     79uint32_t i386_get_interrupt_level( void );
     80#endif /* PARAVIRT */
    7481
    7582/** @} */
Note: See TracChangeset for help on using the changeset viewer.