Changeset 8b2ecf85 in rtems


Ignore:
Timestamp:
05/23/96 15:37:38 (28 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
9854e336
Parents:
64b976a
Message:

updates from Tony Bennett

Files:
17 edited

Legend:

Unmodified
Added
Removed
  • c/src/exec/libcsupport/src/libio.c

    r64b976a r8b2ecf85  
    1616#if defined(solaris2)
    1717#define O_NDELAY O_NONBLOCK
    18 #elif  defined(RTEMS_NEWLIB)
     18#elif defined(RTEMS_NEWLIB)
    1919#define O_NDELAY _FNBIO
    2020#endif
  • c/src/exec/libcsupport/src/malloc.c

    r64b976a r8b2ecf85  
    253253
    254254  new_area = malloc( size );
     255 
     256  MSBUMP(malloc_calls, -1);   /* subtract off the malloc */
     257
    255258  if ( !new_area ) {
    256259    free( ptr );
  • c/src/exec/libcsupport/src/newlibc.c

    r64b976a r8b2ecf85  
    132132 */
    133133 
    134 #ifdef RTEMS_UNIX
     134#ifdef NEED_SETVBUF
    135135rtems_extension
    136136libc_begin_hook(rtems_tcb *current_task)
     
    275275        libc_extension.thread_create  = libc_create_hook;
    276276        libc_extension.thread_start   = libc_start_hook;
    277 #ifdef RTEMS_UNIX
     277#ifdef NEED_SETVBUF
    278278        libc_extension.thread_begin   = libc_begin_hook;
    279279#endif
  • c/src/exec/score/cpu/hppa1.1/cpu.h

    r64b976a r8b2ecf85  
    268268
    269269/*
    270  * HPPA has 32 interrupts, then 32 external interrupts
     270 * HPPA has 32 traps, then 32 external interrupts
    271271 * Rtems (_ISR_Vector_Table) is aware ONLY of the first 32
    272272 * The BSP is aware of the external interrupts and possibly more.
     
    274274 */
    275275
    276 #define CPU_INTERRUPT_NUMBER_OF_VECTORS      (HPPA_INTERNAL_INTERRUPTS)
     276#define CPU_INTERRUPT_NUMBER_OF_VECTORS      (HPPA_INTERNAL_TRAPS)
    277277#define CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER  (CPU_INTERRUPT_NUMBER_OF_VECTORS - 1)
    278278
     
    319319 */
    320320
    321 /* Disable interrupts; returning previous level in _level */
    322 #define _CPU_ISR_Disable( _isr_cookie ) \
     321/* Disable interrupts; returning previous psw bits in _isr_level */
     322#define _CPU_ISR_Disable( _isr_level ) \
    323323  do { \
    324          HPPA_ASM_RSM(HPPA_PSW_I, _isr_cookie);   \
     324         HPPA_ASM_RSM(HPPA_PSW_I, _isr_level);         \
     325         if (_isr_level & HPPA_PSW_I) _isr_level = 0;  \
     326         else                          _isr_level = 1; \
    325327  } while(0)
    326328
    327329/* Enable interrupts to previous level from _CPU_ISR_Disable
    328330 * does not change 'level' */
    329 #define _CPU_ISR_Enable( _isr_cookie )  \
     331#define _CPU_ISR_Enable( _isr_level )  \
    330332  { \
    331         HPPA_ASM_MTSM( _isr_cookie ); \
     333        register int _ignore; \
     334        if (_isr_level == 0) HPPA_ASM_SSM(HPPA_PSW_I, _ignore); \
     335        else                 HPPA_ASM_RSM(HPPA_PSW_I, _ignore); \
    332336  }
    333337
    334338/* restore, then disable interrupts; does not change level */
    335 #define _CPU_ISR_Flash( _isr_cookie ) \
     339#define _CPU_ISR_Flash( _isr_level ) \
    336340  { \
    337         register int _ignore;  \
    338         _CPU_ISR_Enable( _isr_cookie ); \
    339         _CPU_ISR_Disable( _ignore ); \
     341        if (_isr_level == 0) \
     342        { \
     343              register int _ignore;  \
     344              HPPA_ASM_SSM(HPPA_PSW_I, _ignore); \
     345              HPPA_ASM_RSM(HPPA_PSW_I, _ignore); \
     346        } \
    340347  }
    341348
     
    569576
    570577
     578/*
     579 * The raw interrupt handler for external interrupts
     580 */
     581
     582extern void _Generic_ISR_Handler(
     583    void
     584);
     585
     586
    571587/*  The following routine swaps the endian format of an unsigned int.
    572588 *  It must be static so it can be referenced indirectly.
     
    583599}
    584600
    585 /*
    586  * Unused; I think it should go away
    587  */
    588 
    589 #if 0
    590 #define enable_tracing()
    591 #endif
    592 
    593601#endif   /* ! ASM */
    594602
  • c/src/exec/score/cpu/hppa1.1/cpu_asm.s

    r64b976a r8b2ecf85  
    425425        ldw         R28_OFFSET(arg0),%r28
    426426        ldw         R29_OFFSET(arg0),%r29
     427# skipping r30 (sp) until we turn off interrupts
     428        ldw         R31_OFFSET(arg0),%r31
     429
     430# Turn off Q & R & I so we can write r30 and interrupt control registers
     431        rsm        HPPA_PSW_Q + HPPA_PSW_R + HPPA_PSW_I, %r0
     432
     433# now safe to restore r30
    427434        ldw         R30_OFFSET(arg0),%r30
    428         ldw         R31_OFFSET(arg0),%r31
    429 
    430 # Turn off Q & R & I so we can write interrupt control registers
    431         rsm        HPPA_PSW_Q + HPPA_PSW_R + HPPA_PSW_I, %r0
    432435
    433436        ldw        IPSW_OFFSET(arg0), %r25
  • c/src/exec/score/cpu/hppa1.1/hppa.h

    r64b976a r8b2ecf85  
    125125 *
    126126 *      0-31    basic traps and interrupts defined by HPPA architecture
    127  *     32-63    32 external interrupts
    128  *     64-...   bsp defined
    129  */
    130 
    131 #define HPPA_INTERRUPT_NON_EXISTENT                     0
     127 *      0-31    32 external interrupts
     128 *     32-...   bsp defined
     129 */
     130
     131#define HPPA_TRAP_NON_EXISTENT                     0
    132132/* group 1 */
    133 #define HPPA_INTERRUPT_HIGH_PRIORITY_MACHINE_CHECK      1
     133#define HPPA_TRAP_HIGH_PRIORITY_MACHINE_CHECK      1
    134134/* group 2 */
    135 #define HPPA_INTERRUPT_POWER_FAIL                       2
    136 #define HPPA_INTERRUPT_RECOVERY_COUNTER                 3
    137 #define HPPA_INTERRUPT_EXTERNAL_INTERRUPT               4
    138 #define HPPA_INTERRUPT_LOW_PRIORITY_MACHINE_CHECK       5
    139 #define HPPA_INTERRUPT_PERFORMANCE_MONITOR             29
     135#define HPPA_TRAP_POWER_FAIL                       2
     136#define HPPA_TRAP_RECOVERY_COUNTER                 3
     137#define HPPA_TRAP_EXTERNAL_INTERRUPT               4
     138#define HPPA_TRAP_LOW_PRIORITY_MACHINE_CHECK       5
     139#define HPPA_TRAP_PERFORMANCE_MONITOR             29
    140140/* group 3 */
    141 #define HPPA_INTERRUPT_INSTRUCTION_TLB_MISS             6
    142 #define HPPA_INTERRUPT_INSTRUCTION_MEMORY_PROTECTION    7
    143 #define HPPA_INTERRUPT_INSTRUCTION_DEBUG               30
    144 #define HPPA_INTERRUPT_ILLEGAL_INSTRUCTION              8
    145 #define HPPA_INTERRUPT_BREAK_INSTRUCTION                9
    146 #define HPPA_INTERRUPT_PRIVILEGED_OPERATION            10
    147 #define HPPA_INTERRUPT_PRIVILEGED_REGISTER             11
    148 #define HPPA_INTERRUPT_OVERFLOW                        12
    149 #define HPPA_INTERRUPT_CONDITIONAL                     13
    150 #define HPPA_INTERRUPT_ASSIST_EXCEPTION                14
    151 #define HPPA_INTERRUPT_DATA_TLB_MISS                   15
    152 #define HPPA_INTERRUPT_NON_ACCESS_INSTRUCTION_TLB_MISS 16
    153 #define HPPA_INTERRUPT_NON_ACCESS_DATA_TLB_MISS        17
    154 #define HPPA_INTERRUPT_DATA_MEMORY_ACCESS_RIGHTS       26
    155 #define HPPA_INTERRUPT_DATA_MEMORY_PROTECTION_ID       27
    156 #define HPPA_INTERRUPT_UNALIGNED_DATA_REFERENCE        28
    157 #define HPPA_INTERRUPT_DATA_MEMORY_PROTECTION          18
    158 #define HPPA_INTERRUPT_DATA_MEMORY_BREAK               19
    159 #define HPPA_INTERRUPT_TLB_DIRTY_BIT                   20
    160 #define HPPA_INTERRUPT_PAGE_REFERENCE                  21
    161 #define HPPA_INTERRUPT_DATA_DEBUG                      31
    162 #define HPPA_INTERRUPT_ASSIST_EMULATION                22
     141#define HPPA_TRAP_INSTRUCTION_TLB_MISS             6
     142#define HPPA_TRAP_INSTRUCTION_MEMORY_PROTECTION    7
     143#define HPPA_TRAP_INSTRUCTION_DEBUG               30
     144#define HPPA_TRAP_ILLEGAL_INSTRUCTION              8
     145#define HPPA_TRAP_BREAK_INSTRUCTION                9
     146#define HPPA_TRAP_PRIVILEGED_OPERATION            10
     147#define HPPA_TRAP_PRIVILEGED_REGISTER             11
     148#define HPPA_TRAP_OVERFLOW                        12
     149#define HPPA_TRAP_CONDITIONAL                     13
     150#define HPPA_TRAP_ASSIST_EXCEPTION                14
     151#define HPPA_TRAP_DATA_TLB_MISS                   15
     152#define HPPA_TRAP_NON_ACCESS_INSTRUCTION_TLB_MISS 16
     153#define HPPA_TRAP_NON_ACCESS_DATA_TLB_MISS        17
     154#define HPPA_TRAP_DATA_MEMORY_ACCESS_RIGHTS       26
     155#define HPPA_TRAP_DATA_MEMORY_PROTECTION_ID       27
     156#define HPPA_TRAP_UNALIGNED_DATA_REFERENCE        28
     157#define HPPA_TRAP_DATA_MEMORY_PROTECTION          18
     158#define HPPA_TRAP_DATA_MEMORY_BREAK               19
     159#define HPPA_TRAP_TLB_DIRTY_BIT                   20
     160#define HPPA_TRAP_PAGE_REFERENCE                  21
     161#define HPPA_TRAP_DATA_DEBUG                      31
     162#define HPPA_TRAP_ASSIST_EMULATION                22
    163163/* group 4 */
    164 #define HPPA_INTERRUPT_HIGHER_PRIVILEGE_TRANSFER       23
    165 #define HPPA_INTERRUPT_LOWER_PRIVILEGE_TRANSFER        24
    166 #define HPPA_INTERRUPT_TAKEN_BRANCH                    25
    167 
    168 #define HPPA_INTERRUPT_ON_CHIP_MAX                     31
     164#define HPPA_TRAP_HIGHER_PRIVILEGE_TRANSFER       23
     165#define HPPA_TRAP_LOWER_PRIVILEGE_TRANSFER        24
     166#define HPPA_TRAP_TAKEN_BRANCH                    25
     167
     168#define HPPA_INTERNAL_TRAPS                       32
    169169
    170170/* External Interrupts via interrupt 4 */
    171171
    172 #define HPPA_INTERRUPT_EXTERNAL_BASE                   32
    173 
    174 #define HPPA_INTERRUPT_EXTERNAL_0                      32
    175 #define HPPA_INTERRUPT_EXTERNAL_1                      33
    176 #define HPPA_INTERRUPT_EXTERNAL_2                      34
    177 #define HPPA_INTERRUPT_EXTERNAL_3                      35
    178 #define HPPA_INTERRUPT_EXTERNAL_4                      36
    179 #define HPPA_INTERRUPT_EXTERNAL_5                      37
    180 #define HPPA_INTERRUPT_EXTERNAL_6                      38
    181 #define HPPA_INTERRUPT_EXTERNAL_7                      39
    182 #define HPPA_INTERRUPT_EXTERNAL_8                      40
    183 #define HPPA_INTERRUPT_EXTERNAL_9                      41
    184 #define HPPA_INTERRUPT_EXTERNAL_10                     42
    185 #define HPPA_INTERRUPT_EXTERNAL_11                     43
    186 #define HPPA_INTERRUPT_EXTERNAL_12                     44
    187 #define HPPA_INTERRUPT_EXTERNAL_13                     45
    188 #define HPPA_INTERRUPT_EXTERNAL_14                     46
    189 #define HPPA_INTERRUPT_EXTERNAL_15                     47
    190 #define HPPA_INTERRUPT_EXTERNAL_16                     48
    191 #define HPPA_INTERRUPT_EXTERNAL_17                     49
    192 #define HPPA_INTERRUPT_EXTERNAL_18                     50
    193 #define HPPA_INTERRUPT_EXTERNAL_19                     51
    194 #define HPPA_INTERRUPT_EXTERNAL_20                     52
    195 #define HPPA_INTERRUPT_EXTERNAL_21                     53
    196 #define HPPA_INTERRUPT_EXTERNAL_22                     54
    197 #define HPPA_INTERRUPT_EXTERNAL_23                     55
    198 #define HPPA_INTERRUPT_EXTERNAL_24                     56
    199 #define HPPA_INTERRUPT_EXTERNAL_25                     57
    200 #define HPPA_INTERRUPT_EXTERNAL_26                     58
    201 #define HPPA_INTERRUPT_EXTERNAL_27                     59
    202 #define HPPA_INTERRUPT_EXTERNAL_28                     60
    203 #define HPPA_INTERRUPT_EXTERNAL_29                     61
    204 #define HPPA_INTERRUPT_EXTERNAL_30                     62
    205 #define HPPA_INTERRUPT_EXTERNAL_31                     63
    206 
    207 #define HPPA_INTERRUPT_EXTERNAL_INTERVAL_TIMER         HPPA_INTERRUPT_EXTERNAL_0
    208 #define HPPA_EXTERNAL_INTERRUPTS                       32
    209 #define HPPA_INTERNAL_INTERRUPTS                       32
     172#define HPPA_INTERRUPT_EXTERNAL_0                  0
     173#define HPPA_INTERRUPT_EXTERNAL_1                  1
     174#define HPPA_INTERRUPT_EXTERNAL_2                  2
     175#define HPPA_INTERRUPT_EXTERNAL_3                  3
     176#define HPPA_INTERRUPT_EXTERNAL_4                  4
     177#define HPPA_INTERRUPT_EXTERNAL_5                  5
     178#define HPPA_INTERRUPT_EXTERNAL_6                  6
     179#define HPPA_INTERRUPT_EXTERNAL_7                  7
     180#define HPPA_INTERRUPT_EXTERNAL_8                  8
     181#define HPPA_INTERRUPT_EXTERNAL_9                  9
     182#define HPPA_INTERRUPT_EXTERNAL_10                10
     183#define HPPA_INTERRUPT_EXTERNAL_11                11
     184#define HPPA_INTERRUPT_EXTERNAL_12                12
     185#define HPPA_INTERRUPT_EXTERNAL_13                13
     186#define HPPA_INTERRUPT_EXTERNAL_14                14
     187#define HPPA_INTERRUPT_EXTERNAL_15                15
     188#define HPPA_INTERRUPT_EXTERNAL_16                16
     189#define HPPA_INTERRUPT_EXTERNAL_17                17
     190#define HPPA_INTERRUPT_EXTERNAL_18                18
     191#define HPPA_INTERRUPT_EXTERNAL_19                19
     192#define HPPA_INTERRUPT_EXTERNAL_20                20
     193#define HPPA_INTERRUPT_EXTERNAL_21                21
     194#define HPPA_INTERRUPT_EXTERNAL_22                22
     195#define HPPA_INTERRUPT_EXTERNAL_23                23
     196#define HPPA_INTERRUPT_EXTERNAL_24                24
     197#define HPPA_INTERRUPT_EXTERNAL_25                25
     198#define HPPA_INTERRUPT_EXTERNAL_26                26
     199#define HPPA_INTERRUPT_EXTERNAL_27                27
     200#define HPPA_INTERRUPT_EXTERNAL_28                28
     201#define HPPA_INTERRUPT_EXTERNAL_29                29
     202#define HPPA_INTERRUPT_EXTERNAL_30                30
     203#define HPPA_INTERRUPT_EXTERNAL_31                31
     204
     205#define HPPA_INTERRUPT_EXTERNAL_INTERVAL_TIMER    HPPA_INTERRUPT_EXTERNAL_0
     206#define HPPA_EXTERNAL_INTERRUPTS                  32
    210207
    211208/* BSP defined interrupts begin here */
    212209
    213 #define HPPA_INTERRUPT_MAX  64
     210#define HPPA_INTERRUPT_MAX  32
    214211
    215212/*
     
    219216#define HPPA_CACHELINE_SIZE     32
    220217#define HPPA_CACHELINE_MASK     (HPPA_CACHELINE_SIZE - 1)
     218
     219/*
     220 * page size characteristics
     221 */
     222
     223#define HPPA_PAGE_SIZE          4096
     224#define HPPA_PAGE_MASK          (0xfffff000)
    221225
    222226
  • c/src/lib/libc/libio.c

    r64b976a r8b2ecf85  
    1616#if defined(solaris2)
    1717#define O_NDELAY O_NONBLOCK
    18 #elif  defined(RTEMS_NEWLIB)
     18#elif defined(RTEMS_NEWLIB)
    1919#define O_NDELAY _FNBIO
    2020#endif
  • c/src/lib/libc/malloc.c

    r64b976a r8b2ecf85  
    253253
    254254  new_area = malloc( size );
     255 
     256  MSBUMP(malloc_calls, -1);   /* subtract off the malloc */
     257
    255258  if ( !new_area ) {
    256259    free( ptr );
  • c/src/lib/libc/newlibc.c

    r64b976a r8b2ecf85  
    132132 */
    133133 
    134 #ifdef RTEMS_UNIX
     134#ifdef NEED_SETVBUF
    135135rtems_extension
    136136libc_begin_hook(rtems_tcb *current_task)
     
    275275        libc_extension.thread_create  = libc_create_hook;
    276276        libc_extension.thread_start   = libc_start_hook;
    277 #ifdef RTEMS_UNIX
     277#ifdef NEED_SETVBUF
    278278        libc_extension.thread_begin   = libc_begin_hook;
    279279#endif
  • c/src/lib/libcpu/hppa1.1/timer/timer.c

    r64b976a r8b2ecf85  
    2525{
    2626  Timer_starting = get_itimer();
     27  set_eiem(0x80000000);
    2728}
    2829
  • c/src/tests/mptests/mp07/task1.c

    r64b976a r8b2ecf85  
    7373
    7474  while ( Stop_Test == FALSE ) {
    75     for ( count=DOT_COUNT ; count ; count-- ) {
     75    for ( count=DOT_COUNT ; count && (Stop_Test == FALSE) ; count-- ) {
    7676      status = rtems_event_receive(
    7777        RTEMS_EVENT_16,
     
    9191    put_dot('.');
    9292  }
     93
     94  /*
     95   * Wait a bit before shutting down so we don't screw up the other node
     96   * when our MPCI shuts down
     97   */
     98
     99  rtems_task_wake_after(10);
     100
    93101  puts( "\n*** END OF TEST 7 ***" );
    94102  exit( 0 );
  • c/src/tests/mptests/mp14/exit.c

    r64b976a r8b2ecf85  
    2525  rtems_mode        old_mode;
    2626
     27  /*
     28   * Wait a bit before shutting down so we don't screw up the other node
     29   * when our MPCI shuts down
     30   */
     31 
     32  rtems_task_wake_after(20);
     33 
    2734  status = rtems_task_mode( RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &old_mode );
    2835  directive_failed( status, "rtems_task_mode" );
  • cpukit/libcsupport/src/libio.c

    r64b976a r8b2ecf85  
    1616#if defined(solaris2)
    1717#define O_NDELAY O_NONBLOCK
    18 #elif  defined(RTEMS_NEWLIB)
     18#elif defined(RTEMS_NEWLIB)
    1919#define O_NDELAY _FNBIO
    2020#endif
  • cpukit/libcsupport/src/malloc.c

    r64b976a r8b2ecf85  
    253253
    254254  new_area = malloc( size );
     255 
     256  MSBUMP(malloc_calls, -1);   /* subtract off the malloc */
     257
    255258  if ( !new_area ) {
    256259    free( ptr );
  • cpukit/libcsupport/src/newlibc.c

    r64b976a r8b2ecf85  
    132132 */
    133133 
    134 #ifdef RTEMS_UNIX
     134#ifdef NEED_SETVBUF
    135135rtems_extension
    136136libc_begin_hook(rtems_tcb *current_task)
     
    275275        libc_extension.thread_create  = libc_create_hook;
    276276        libc_extension.thread_start   = libc_start_hook;
    277 #ifdef RTEMS_UNIX
     277#ifdef NEED_SETVBUF
    278278        libc_extension.thread_begin   = libc_begin_hook;
    279279#endif
  • testsuites/mptests/mp07/task1.c

    r64b976a r8b2ecf85  
    7373
    7474  while ( Stop_Test == FALSE ) {
    75     for ( count=DOT_COUNT ; count ; count-- ) {
     75    for ( count=DOT_COUNT ; count && (Stop_Test == FALSE) ; count-- ) {
    7676      status = rtems_event_receive(
    7777        RTEMS_EVENT_16,
     
    9191    put_dot('.');
    9292  }
     93
     94  /*
     95   * Wait a bit before shutting down so we don't screw up the other node
     96   * when our MPCI shuts down
     97   */
     98
     99  rtems_task_wake_after(10);
     100
    93101  puts( "\n*** END OF TEST 7 ***" );
    94102  exit( 0 );
  • testsuites/mptests/mp14/exit.c

    r64b976a r8b2ecf85  
    2525  rtems_mode        old_mode;
    2626
     27  /*
     28   * Wait a bit before shutting down so we don't screw up the other node
     29   * when our MPCI shuts down
     30   */
     31 
     32  rtems_task_wake_after(20);
     33 
    2734  status = rtems_task_mode( RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &old_mode );
    2835  directive_failed( status, "rtems_task_mode" );
Note: See TracChangeset for help on using the changeset viewer.