Changeset e2ec980f in mainline for arch/ia64/include/asm.h


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

ia64 work.
Big cleanup of IA-64 interrupt processing.
Merge of interrupt.c and interrupt_handler.c.
Rewrite of ivt.S and interrupt.c.
Higher level interrupt handlers are now passed a vector number and a pointer to stack structure.

ia32 work.
ia32 has ordered writes. Until it deploys weaker memory ordering model, write_barrier() can be empty statement.

File:
1 edited

Legend:

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

    r0b5ac364 re2ec980f  
    4949}
    5050
     51/** Read IVA (Interruption Vector Address).
     52 *
     53 * @return Return location of interruption vector table.
     54 */
     55static inline __u64 iva_read(void)
     56{
     57        __u64 v;
     58       
     59        __asm__ volatile ("mov %0 = cr.iva\n" : "=r" (v));
     60       
     61        return v;
     62}
     63
     64/** Write IVA (Interruption Vector Address) register.
     65 *
     66 * @param New location of interruption vector table.
     67 */
     68static inline void iva_write(__u64 v)
     69{
     70        __asm__ volatile ("mov cr.iva = %0\n" : : "r" (v));
     71}
     72
     73
    5174/** Read IVR (External Interrupt Vector Register).
    5275 *
     
    219242}
    220243
    221 #define set_shadow_register(reg,val) {__u64 v = val; __asm__  volatile("mov r15 = %0;;\n""bsw.0;;\n""mov "   #reg   " = r15;;\n""bsw.1;;\n" : : "r" (v) : "r15" ); }
    222 #define get_shadow_register(reg,val) {__u64 v ; __asm__  volatile("bsw.0;;\n" "mov r15 = r" #reg ";;\n" "bsw.1;;\n" "mov %0 = r15;;\n" : "=r" (v) : : "r15" ); val=v; }
    223 
    224 #define get_control_register(reg,val) {__u64 v ; __asm__  volatile("mov r15 = cr" #reg ";;\n" "mov %0 = r15;;\n" : "=r" (v) : : "r15" ); val=v; }
    225 #define get_aplication_register(reg,val) {__u64 v ; __asm__  volatile("mov r15 = ar" #reg ";;\n" "mov %0 = r15;;\n" : "=r" (v) : : "r15" ); val=v; }
    226 #define get_psr(val) {__u64 v ; __asm__  volatile("mov r15 = psr;;\n" "mov %0 = r15;;\n" : "=r" (v) : : "r15" ); val=v; }
    227 
    228244extern void cpu_halt(void);
    229245extern void cpu_sleep(void);
Note: See TracChangeset for help on using the changeset viewer.