<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 17, 2015 at 6:24 PM, Alexander Kuleshov <span dir="ltr">&lt;<a href="mailto:alex0xax@gmail.com" target="_blank">alex0xax@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ah, I understood, $-1 is just -1 here. But why we push it - 0xffffffffffffffff?<br>
<div class="HOEnZb"><div class="h5"><br>
2015-06-17 17:22 GMT+06:00 Alexander Kuleshov &lt;<a href="mailto:alex0xax@gmail.com">alex0xax@gmail.com</a>&gt;:<br>
&gt; Hello,<br>
&gt;<br>
&gt; I have a question about interrupt handling in Linux kernel for x86_64.<br>
&gt; As we can read in the<br>
&gt; 64-ia-32-architectures-software-developer-vol-3a-part-1-manual, when<br>
&gt; an interurpt/exception occurs, the handler&#39;s stack contains SS, RSP,<br>
&gt; RFLAGS, CS, RIP and error code. My question is: does processor push<br>
&gt; this register on the stack when an interrupt occurs or kernel must<br>
&gt; push it?<br>
&gt;<br>
&gt; In the arch/x86/kernel/entry_64.S we can see following code in the<br>
&gt; idtentry macro:<br>
&gt;<br>
&gt; .ifeq \has_error_code<br>
&gt; pushq_cfi $-1<br>
&gt; .endif<br>
&gt;<br>
&gt; where pushq_cfi is:<br>
&gt;<br>
&gt; .macro pushq_cfi reg<br>
&gt;     pushq \reg<br>
&gt;     CFI_ADJUST_CFA_OFFSET 8<br>
&gt; .endm<br>
&gt;<br>
&gt; First of all what does it mean $-1 here? I have write simple assembly<br>
&gt; program and I see:<br>
&gt;<br>
&gt; push 0xffffffffffffffff<br>
&gt;<br>
&gt; in the gdb. The second question, if processor pushes error code and<br>
&gt; other during interrupt why we push it here?<br>
&gt;<br>
&gt; Thank you.<br></div></div></blockquote></div><br></div><div class="gmail_extra">Hi<br><br></div><div class="gmail_extra">Please don&#39;t top post, even replying to yourself :)<br><br></div><div class="gmail_extra">IMHO, pushing -1 is to signify this is error code. Later, (just my guess), the error code will be pushed too. <br><br></div><div class="gmail_extra"><br><br>-- <br><div class="gmail_signature">regards,<br><br>Mulyadi Santosa<br>Freelance Linux trainer and consultant<br><br>blog: <a href="http://the-hydra.blogspot.com" target="_blank">the-hydra.blogspot.com</a><br>training: <a href="http://mulyaditraining.blogspot.com" target="_blank">mulyaditraining.blogspot.com</a></div>
</div></div>