mulyadi.santosa at gmail.com
Sun Jun 21 11:04:05 EDT 2015
On Wed, Jun 17, 2015 at 6:24 PM, Alexander Kuleshov <alex0xax at gmail.com>
> Ah, I understood, $-1 is just -1 here. But why we push it -
> 2015-06-17 17:22 GMT+06:00 Alexander Kuleshov <alex0xax at gmail.com>:
> > Hello,
> > I have a question about interrupt handling in Linux kernel for x86_64.
> > As we can read in the
> > 64-ia-32-architectures-software-developer-vol-3a-part-1-manual, when
> > an interurpt/exception occurs, the handler's stack contains SS, RSP,
> > RFLAGS, CS, RIP and error code. My question is: does processor push
> > this register on the stack when an interrupt occurs or kernel must
> > push it?
> > In the arch/x86/kernel/entry_64.S we can see following code in the
> > idtentry macro:
> > .ifeq \has_error_code
> > pushq_cfi $-1
> > .endif
> > where pushq_cfi is:
> > .macro pushq_cfi reg
> > pushq \reg
> > CFI_ADJUST_CFA_OFFSET 8
> > .endm
> > First of all what does it mean $-1 here? I have write simple assembly
> > program and I see:
> > push 0xffffffffffffffff
> > in the gdb. The second question, if processor pushes error code and
> > other during interrupt why we push it here?
> > Thank you.
Please don't top post, even replying to yourself :)
IMHO, pushing -1 is to signify this is error code. Later, (just my guess),
the error code will be pushed too.
Freelance Linux trainer and consultant
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Kernelnewbies