Ignore:
Timestamp:
2010-07-13T21:48:00Z (14 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6b1a85c, 9171f12
Parents:
a7199c2
Message:

Change the amd64 istate_t and interrupt handler macro so that the istate
structure now captures all GPRs and provides seamless stack frame linkage.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/include/interrupt.h

    ra7199c2 rc0e9f3f  
    7474typedef struct istate {
    7575        uint64_t rax;
     76        uint64_t rbx;
    7677        uint64_t rcx;
    7778        uint64_t rdx;
    7879        uint64_t rsi;
    7980        uint64_t rdi;
     81        uint64_t rbp;
    8082        uint64_t r8;
    8183        uint64_t r9;
    8284        uint64_t r10;
    8385        uint64_t r11;
    84         uint64_t rbp;
    85         uint64_t error_word;
     86        uint64_t r12;
     87        uint64_t r13;
     88        uint64_t r14;
     89        uint64_t r15;
     90        uint64_t alignment;     /* align rbp_frame on multiple of 16 */
     91        uint64_t rbp_frame;     /* imitation of frame pointer linkage */
     92        uint64_t rip_frame;     /* imitation of return address linkage */
     93        uint64_t error_word;    /* real or fake error word */
    8694        uint64_t rip;
    8795        uint64_t cs;
    8896        uint64_t rflags;
    89         uint64_t stack[];  /* Additional data on stack */
     97        uint64_t rsp;           /* only if istate_t is from uspace */
     98        uint64_t ss;            /* only if istate_t is from uspace */
    9099} istate_t;
    91100
Note: See TracChangeset for help on using the changeset viewer.