Re: Interrupts handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ah, I understood, $-1 is just -1 here. But why we push it - 0xffffffffffffffff?

2015-06-17 17:22 GMT+06:00 Alexander Kuleshov <alex0xax@xxxxxxxxx>:
> 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.

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux