Changeset 637df35 in rtems for cpukit/score/cpu/i386


Ignore:
Timestamp:
Jul 12, 1995, 7:47:25 PM (26 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
6cc85032
Parents:
68931b5
Message:

Ada95, gnat, go32

Location:
cpukit/score/cpu/i386
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • cpukit/score/cpu/i386/asm.h

    r68931b5 r637df35  
    4040 *  have to define these as appropriate.
    4141 */
     42
     43/*
     44 *  Go32 suffers the same bug as __REGISTER_PREFIX__
     45 */
     46 
     47#if __GO32__
     48#undef  __USER_LABEL_PREFIX__
     49#define __USER_LABEL_PREFIX__ _
     50#endif
    4251
    4352#ifndef __USER_LABEL_PREFIX__
  • cpukit/score/cpu/i386/cpu.c

    r68931b5 r637df35  
    6868}
    6969
    70 /*  _CPU_ISR_install_vector
     70/*PAGE
     71 *
     72 *  _CPU_ISR_install_raw_handler
     73 */
     74 
     75#if __GO32__
     76#include <cpu.h>
     77#include <go32.h>
     78#include <dpmi.h>
     79#endif /* __GO32__ */
     80
     81void _CPU_ISR_install_raw_handler(
     82  unsigned32  vector,
     83  proc_ptr    new_handler,
     84  proc_ptr   *old_handler
     85)
     86{
     87#if __GO32__
     88    _go32_dpmi_seginfo handler_info;
     89 
     90    *old_handler =  0;    /* XXX not supported */
     91
     92    handler_info.pm_offset = new_handler;
     93    handler_info.pm_selector = _go32_my_cs();
     94
     95    /* install the IDT entry */
     96    _go32_dpmi_set_protected_mode_interrupt_vector( vector, &handler_info );
     97#else
     98  i386_IDT_slot idt;
     99  unsigned32    handler;
     100
     101  *old_handler =  0;    /* XXX not supported */
     102
     103  handler = (unsigned32) new_handler;
     104
     105  /* build the IDT entry */
     106  idt.offset_0_15      = handler & 0xffff;
     107  idt.segment_selector = i386_get_cs();
     108  idt.reserved         = 0x00;
     109  idt.p_dpl            = 0x8e;         /* present, ISR */
     110  idt.offset_16_31     = handler >> 16;
     111
     112  /* install the IDT entry */
     113  i386_Install_idt(
     114    (unsigned32) &idt,
     115    _CPU_Table.interrupt_table_segment,
     116    (unsigned32) _CPU_Table.interrupt_table_offset + (8 * vector)
     117  );
     118#endif
     119}
     120
     121/*PAGE
     122 *
     123 *  _CPU_ISR_install_vector
    71124 *
    72125 *  This kernel routine installs the RTEMS handler for the
     
    96149)
    97150{
    98   i386_IDT_slot idt;
     151  proc_ptr      ignored;
    99152  unsigned32    unique_handler;
     153
     154  *old_handler = _ISR_Vector_table[ vector ];
    100155
    101156  /* calculate the unique entry point for this vector */
    102157  unique_handler = _Interrupt_Handler_entry( vector );
    103158
    104   /* build the IDT entry */
    105   idt.offset_0_15      = ((unsigned32) unique_handler) & 0xffff;
    106   idt.segment_selector = i386_get_cs();
    107   idt.reserved         = 0x00;
    108   idt.p_dpl            = 0x8e;         /* present, ISR */
    109   idt.offset_16_31     = ((unsigned32) unique_handler) >> 16;
     159  _CPU_ISR_install_raw_handler( vector, (void *)unique_handler, &ignored );
    110160
    111   /* install the IDT entry */
    112   i386_Install_idt(
    113     (unsigned32) &idt,
    114     _CPU_Table.interrupt_table_segment,
    115     (unsigned32) _CPU_Table.interrupt_table_offset + (8 * vector)
    116   );
    117 
    118   /* "portable" part */
    119   *old_handler = _ISR_Vector_table[ vector ];
    120161  _ISR_Vector_table[ vector ] = new_handler;
    121162}
  • cpukit/score/cpu/i386/rtems/asm.h

    r68931b5 r637df35  
    4040 *  have to define these as appropriate.
    4141 */
     42
     43/*
     44 *  Go32 suffers the same bug as __REGISTER_PREFIX__
     45 */
     46 
     47#if __GO32__
     48#undef  __USER_LABEL_PREFIX__
     49#define __USER_LABEL_PREFIX__ _
     50#endif
    4251
    4352#ifndef __USER_LABEL_PREFIX__
Note: See TracChangeset for help on using the changeset viewer.