Changeset 2ccd275 in mainline for arch/ia64/include


Ignore:
Timestamp:
2005-11-09T14:23:05Z (20 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
802bb95
Parents:
b183865e
Message:

Changes in build system.
For .S targets, always do -DASM.
Remove unnecessary #define ASM from various *.S files.
At the end of build, generate disassembler dump for kernel.raw.

ia64 work.
Better General Exception handler.

Location:
arch/ia64/include
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • arch/ia64/include/asm.h

    rb183865e r2ccd275  
    221221static inline void interrupts_restore(ipl_t ipl)
    222222{
    223         __asm__ volatile (
    224                 "mov psr.l = %0\n"
    225                 ";;\n"
    226                 "srlz.d\n"
    227                 : : "r" ((__u64) ipl)
    228         );
     223        if (ipl & PSR_I_MASK)
     224                (void) interrupts_enable();
     225        else
     226                (void) interrupts_disable();
    229227}
    230228
  • arch/ia64/include/interrupt.h

    rb183865e r2ccd275  
    3131
    3232#include <arch/types.h>
     33#include <arch/register.h>
    3334
    34 /** External interrupt vectors. */
     35/** External Interrupt vectors. */
    3536#define INTERRUPT_TIMER         0
    3637#define INTERRUPT_SPURIOUS      15
     38
     39/** General Exception codes. */
     40#define GE_ILLEGALOP            0
     41#define GE_PRIVOP               1
     42#define GE_PRIVREG              2
     43#define GE_RESREGFLD            3
     44#define GE_DISBLDISTRAN         4
     45#define GE_ILLEGALDEP           8
    3746
    3847#define EOI     0               /**< The actual value doesn't matter. */
     
    4655        __u64 ar_rsc;
    4756        __address cr_ifa;
    48         __u64 cr_isr;
     57        cr_isr_t cr_isr;
    4958        __address cr_iipa;
    5059        __u64 cr_ips;
  • arch/ia64/include/register.h

    rb183865e r2ccd275  
    3030#define __ia64_REGISTER_H__
    3131
     32#ifndef __ASM__
    3233#include <arch/types.h>
     34#endif
    3335
    3436#define CR_IVR_MASK     0xf
    3537#define PSR_I_MASK      0x4000
     38#define PSR_IC_MASK     0x2000
    3639
    3740/** Application registers. */
     
    109112/* CR82-CR127 reserved */
    110113
     114#ifndef __ASM__
    111115/** External Interrupt Vector Register */
    112116union cr_ivr {
     
    144148typedef union cr_itv cr_itv_t;
    145149
     150/** Interruption Status Register */
     151union cr_isr {
     152        struct {
     153                union {
     154                        /** General Exception code field structuring. */
     155                        struct {
     156                                unsigned ge_na : 4;
     157                                unsigned ge_code : 4;
     158                        } __attribute__ ((packed));
     159                        __u16 code;
     160                };
     161                __u8 vector;
     162                unsigned : 8;
     163                unsigned x : 1;                 /**< Execute exception. */
     164                unsigned w : 1;                 /**< Write exception. */
     165                unsigned r : 1;                 /**< Read exception. */
     166                unsigned na : 1;                /**< Non-access exception. */
     167                unsigned sp : 1;                /**< Speculative load exception. */
     168                unsigned rs : 1;                /**< Register stack. */
     169                unsigned ir : 1;                /**< Incomplete Register frame. */
     170                unsigned ni : 1;                /**< Nested Interruption. */
     171                unsigned so : 1;                /**< IA-32 Supervisor Override. */
     172                unsigned ei : 2;                /**< Excepting Instruction. */
     173                unsigned ed : 1;                /**< Exception Deferral. */
     174                unsigned : 20;
     175        } __attribute__ ((packed));
     176        __u64 value;
     177};
     178
     179typedef union cr_isr cr_isr_t;
     180
     181#endif /* !__ASM__ */
     182
    146183#endif
Note: See TracChangeset for help on using the changeset viewer.