<!doctype html public "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>Linux/arch/i386/kernel/entry.S</title>
<base href="http://lxr.linux.no/">
</head>

<body bgcolor=white text=black>
<table width="100%" cellpadding=0 border=0>
  <tr valign=top>
    <td align=left valign=top>
      <img src="/pengmini.gif"
        alt="Penguin" border=0 width=67 height=92 align=middle>
    </td>
    <td>
      <table width="100%" cellpadding=0 border=0>
        <tr valign=top>
          <td align=center>  
            <h1>
              <a href="blurb.html">
                Cross-Referencing Linux</a><br>
              <a href="source/">Linux</a>/<a href="source/arch/">arch</a>/<a href="source/arch/i386/">i386</a>/<a href="source/arch/i386/kernel/">kernel</a>/<a href="source/arch/i386/kernel/entry.S">entry.S</a>
            </h1>
          </td>
          <td align=right nowrap>
            
            [&nbsp;<b><i>source navigation</i></b>&nbsp;]<br>
            [&nbsp;<a href="diff/arch/i386/kernel/entry.S">diff markup</a>&nbsp;]<br>
            [&nbsp;<a href="ident">identifier search</a>&nbsp;]<br>
            [&nbsp;<a href="search">freetext search</a>&nbsp;]<br>
            [&nbsp;<a href="find">file search</a>&nbsp;]<br>
          </td>
        </tr>
      </table>
      <table width="100%" cellpadding=0 border=0>
        
        <tr>
          <td align=left>
            Version:
          </td>
          <td align=right>
            
            [&nbsp;<a href="source/arch/i386/kernel/entry.S?v=1.0.9">1.0.9</a>&nbsp;]
            [&nbsp;<a href="source/arch/i386/kernel/entry.S?v=1.2.13">1.2.13</a>&nbsp;]
            [&nbsp;<a href="source/arch/i386/kernel/entry.S?v=2.0.40">2.0.40</a>&nbsp;]
            [&nbsp;<a href="source/arch/i386/kernel/entry.S?v=2.2.26">2.2.26</a>&nbsp;]
            [&nbsp;<a href="source/arch/i386/kernel/entry.S?v=2.4.18">2.4.18</a>&nbsp;]
            [&nbsp;<a href="source/arch/i386/kernel/entry.S?v=2.4.20">2.4.20</a>&nbsp;]
            [&nbsp;<a href="source/arch/i386/kernel/entry.S?v=2.4.28">2.4.28</a>&nbsp;]
            [&nbsp;<a href="source/arch/i386/kernel/entry.S?v=2.6.10">2.6.10</a>&nbsp;]
            [&nbsp;<b><i>2.6.11</i></b>&nbsp;]
            <br>
          </td>
        </tr>
        <tr>
          <td align=left>
            Architecture:
          </td>
          <td align=right>
            
            [&nbsp;<b><i>i386</i></b>&nbsp;]
            [&nbsp;<a href="source/arch/alpha/kernel/entry.S?a=alpha">alpha</a>&nbsp;]
            [&nbsp;<a href="source/arch/arm/kernel/entry.S?a=arm">arm</a>&nbsp;]
            [&nbsp;<a href="source/arch/ia64/kernel/entry.S?a=ia64">ia64</a>&nbsp;]
            [&nbsp;<a href="source/arch/m68k/kernel/entry.S?a=m68k">m68k</a>&nbsp;]
            [&nbsp;<a href="source/arch/mips/kernel/entry.S?a=mips">mips</a>&nbsp;]
            [&nbsp;<a href="source/arch/mips64/kernel/entry.S?a=mips64">mips64</a>&nbsp;]
            [&nbsp;<a href="source/arch/ppc/kernel/entry.S?a=ppc">ppc</a>&nbsp;]
            [&nbsp;<a href="source/arch/s390/kernel/entry.S?a=s390">s390</a>&nbsp;]
            [&nbsp;<a href="source/arch/sh/kernel/entry.S?a=sh">sh</a>&nbsp;]
            [&nbsp;<a href="source/arch/sparc/kernel/entry.S?a=sparc">sparc</a>&nbsp;]
            [&nbsp;<a href="source/arch/sparc64/kernel/entry.S?a=sparc64">sparc64</a>&nbsp;]
            [&nbsp;<a href="source/arch//kernel/entry.S?a=x86_64">x86_64</a>&nbsp;]
            <br>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<hr>
<pre><a name=L1 href="source/arch/i386/kernel/entry.S#L1">1</a> /*
<a name=L2 href="source/arch/i386/kernel/entry.S#L2">2</a>  *  linux/arch/i386/entry.S
<a name=L3 href="source/arch/i386/kernel/entry.S#L3">3</a>  *
<a name=L4 href="source/arch/i386/kernel/entry.S#L4">4</a>  *  Copyright (C) 1991, 1992  Linus Torvalds
<a name=L5 href="source/arch/i386/kernel/entry.S#L5">5</a>  */
<a name=L6 href="source/arch/i386/kernel/entry.S#L6">6</a> 
<a name=L7 href="source/arch/i386/kernel/entry.S#L7">7</a> /*
<a name=L8 href="source/arch/i386/kernel/entry.S#L8">8</a>  * entry.S contains the system-call and fault low-level handling routines.
<a name=L9 href="source/arch/i386/kernel/entry.S#L9">9</a>  * This also contains the timer-interrupt handler, as well as all interrupts
<a name=L10 href="source/arch/i386/kernel/entry.S#L10">10</a>  * and faults that can result in a task-switch.
<a name=L11 href="source/arch/i386/kernel/entry.S#L11">11</a>  *
<a name=L12 href="source/arch/i386/kernel/entry.S#L12">12</a>  * NOTE: This code handles signal-recognition, which happens every time
<a name=L13 href="source/arch/i386/kernel/entry.S#L13">13</a>  * after a timer-interrupt and after each system call.
<a name=L14 href="source/arch/i386/kernel/entry.S#L14">14</a>  *
<a name=L15 href="source/arch/i386/kernel/entry.S#L15">15</a>  * I changed all the .align's to 4 (16 byte alignment), as that's faster
<a name=L16 href="source/arch/i386/kernel/entry.S#L16">16</a>  * on a 486.
<a name=L17 href="source/arch/i386/kernel/entry.S#L17">17</a>  *
<a name=L18 href="source/arch/i386/kernel/entry.S#L18">18</a>  * Stack layout in 'ret_from_system_call':
<a name=L19 href="source/arch/i386/kernel/entry.S#L19">19</a>  *      ptrace needs to have all regs on the stack.
<a name=L20 href="source/arch/i386/kernel/entry.S#L20">20</a>  *      if the order here is changed, it needs to be
<a name=L21 href="source/arch/i386/kernel/entry.S#L21">21</a>  *      updated in fork.c:copy_process, signal.c:do_signal,
<a name=L22 href="source/arch/i386/kernel/entry.S#L22">22</a>  *      ptrace.c and ptrace.h
<a name=L23 href="source/arch/i386/kernel/entry.S#L23">23</a>  *
<a name=L24 href="source/arch/i386/kernel/entry.S#L24">24</a>  *       0(%esp) - %ebx
<a name=L25 href="source/arch/i386/kernel/entry.S#L25">25</a>  *       4(%esp) - %ecx
<a name=L26 href="source/arch/i386/kernel/entry.S#L26">26</a>  *       8(%esp) - %edx
<a name=L27 href="source/arch/i386/kernel/entry.S#L27">27</a>  *       C(%esp) - %esi
<a name=L28 href="source/arch/i386/kernel/entry.S#L28">28</a>  *      10(%esp) - %edi
<a name=L29 href="source/arch/i386/kernel/entry.S#L29">29</a>  *      14(%esp) - %ebp
<a name=L30 href="source/arch/i386/kernel/entry.S#L30">30</a>  *      18(%esp) - %eax
<a name=L31 href="source/arch/i386/kernel/entry.S#L31">31</a>  *      1C(%esp) - %ds
<a name=L32 href="source/arch/i386/kernel/entry.S#L32">32</a>  *      20(%esp) - %es
<a name=L33 href="source/arch/i386/kernel/entry.S#L33">33</a>  *      24(%esp) - orig_eax
<a name=L34 href="source/arch/i386/kernel/entry.S#L34">34</a>  *      28(%esp) - %eip
<a name=L35 href="source/arch/i386/kernel/entry.S#L35">35</a>  *      2C(%esp) - %cs
<a name=L36 href="source/arch/i386/kernel/entry.S#L36">36</a>  *      30(%esp) - %eflags
<a name=L37 href="source/arch/i386/kernel/entry.S#L37">37</a>  *      34(%esp) - %oldesp
<a name=L38 href="source/arch/i386/kernel/entry.S#L38">38</a>  *      38(%esp) - %oldss
<a name=L39 href="source/arch/i386/kernel/entry.S#L39">39</a>  *
<a name=L40 href="source/arch/i386/kernel/entry.S#L40">40</a>  * "current" is in register %ebx during any slow entries.
<a name=L41 href="source/arch/i386/kernel/entry.S#L41">41</a>  */
<a name=L42 href="source/arch/i386/kernel/entry.S#L42">42</a> 
<a name=L43 href="source/arch/i386/kernel/entry.S#L43">43</a> #include &lt;linux/config.h&gt;
<a name=L44 href="source/arch/i386/kernel/entry.S#L44">44</a> #include &lt;linux/linkage.h&gt;
<a name=L45 href="source/arch/i386/kernel/entry.S#L45">45</a> #include &lt;asm/thread_info.h&gt;
<a name=L46 href="source/arch/i386/kernel/entry.S#L46">46</a> #include &lt;asm/errno.h&gt;
<a name=L47 href="source/arch/i386/kernel/entry.S#L47">47</a> #include &lt;asm/segment.h&gt;
<a name=L48 href="source/arch/i386/kernel/entry.S#L48">48</a> #include &lt;asm/smp.h&gt;
<a name=L49 href="source/arch/i386/kernel/entry.S#L49">49</a> #include &lt;asm/page.h&gt;
<a name=L50 href="source/arch/i386/kernel/entry.S#L50">50</a> #include "irq_vectors.h"
<a name=L51 href="source/arch/i386/kernel/entry.S#L51">51</a> 
<a name=L52 href="source/arch/i386/kernel/entry.S#L52">52</a> #define nr_syscalls ((syscall_table_size)/4)
<a name=L53 href="source/arch/i386/kernel/entry.S#L53">53</a> 
<a name=L54 href="source/arch/i386/kernel/entry.S#L54">54</a> EBX             = 0x00
<a name=L55 href="source/arch/i386/kernel/entry.S#L55">55</a> ECX             = 0x04
<a name=L56 href="source/arch/i386/kernel/entry.S#L56">56</a> EDX             = 0x08
<a name=L57 href="source/arch/i386/kernel/entry.S#L57">57</a> ESI             = 0x0C
<a name=L58 href="source/arch/i386/kernel/entry.S#L58">58</a> EDI             = 0x10
<a name=L59 href="source/arch/i386/kernel/entry.S#L59">59</a> EBP             = 0x14
<a name=L60 href="source/arch/i386/kernel/entry.S#L60">60</a> EAX             = 0x18
<a name=L61 href="source/arch/i386/kernel/entry.S#L61">61</a> DS              = 0x1C
<a name=L62 href="source/arch/i386/kernel/entry.S#L62">62</a> ES              = 0x20
<a name=L63 href="source/arch/i386/kernel/entry.S#L63">63</a> ORIG_EAX        = 0x24
<a name=L64 href="source/arch/i386/kernel/entry.S#L64">64</a> EIP             = 0x28
<a name=L65 href="source/arch/i386/kernel/entry.S#L65">65</a> CS              = 0x2C
<a name=L66 href="source/arch/i386/kernel/entry.S#L66">66</a> EFLAGS          = 0x30
<a name=L67 href="source/arch/i386/kernel/entry.S#L67">67</a> OLDESP          = 0x34
<a name=L68 href="source/arch/i386/kernel/entry.S#L68">68</a> OLDSS           = 0x38
<a name=L69 href="source/arch/i386/kernel/entry.S#L69">69</a> 
<a name=L70 href="source/arch/i386/kernel/entry.S#L70">70</a> CF_MASK         = 0x00000001
<a name=L71 href="source/arch/i386/kernel/entry.S#L71">71</a> TF_MASK         = 0x00000100
<a name=L72 href="source/arch/i386/kernel/entry.S#L72">72</a> IF_MASK         = 0x00000200
<a name=L73 href="source/arch/i386/kernel/entry.S#L73">73</a> DF_MASK         = 0x00000400 
<a name=L74 href="source/arch/i386/kernel/entry.S#L74">74</a> NT_MASK         = 0x00004000
<a name=L75 href="source/arch/i386/kernel/entry.S#L75">75</a> VM_MASK         = 0x00020000
<a name=L76 href="source/arch/i386/kernel/entry.S#L76">76</a> 
<a name=L77 href="source/arch/i386/kernel/entry.S#L77">77</a> #ifdef CONFIG_PREEMPT
<a name=L78 href="source/arch/i386/kernel/entry.S#L78">78</a> #define preempt_stop            cli
<a name=L79 href="source/arch/i386/kernel/entry.S#L79">79</a> #else
<a name=L80 href="source/arch/i386/kernel/entry.S#L80">80</a> #define preempt_stop
<a name=L81 href="source/arch/i386/kernel/entry.S#L81">81</a> #define resume_kernel           restore_all
<a name=L82 href="source/arch/i386/kernel/entry.S#L82">82</a> #endif
<a name=L83 href="source/arch/i386/kernel/entry.S#L83">83</a> 
<a name=L84 href="source/arch/i386/kernel/entry.S#L84">84</a> #define SAVE_ALL \
<a name=L85 href="source/arch/i386/kernel/entry.S#L85">85</a>         cld; \
<a name=L86 href="source/arch/i386/kernel/entry.S#L86">86</a>         pushl %es; \
<a name=L87 href="source/arch/i386/kernel/entry.S#L87">87</a>         pushl %ds; \
<a name=L88 href="source/arch/i386/kernel/entry.S#L88">88</a>         pushl %eax; \
<a name=L89 href="source/arch/i386/kernel/entry.S#L89">89</a>         pushl %ebp; \
<a name=L90 href="source/arch/i386/kernel/entry.S#L90">90</a>         pushl %edi; \
<a name=L91 href="source/arch/i386/kernel/entry.S#L91">91</a>         pushl %esi; \
<a name=L92 href="source/arch/i386/kernel/entry.S#L92">92</a>         pushl %edx; \
<a name=L93 href="source/arch/i386/kernel/entry.S#L93">93</a>         pushl %ecx; \
<a name=L94 href="source/arch/i386/kernel/entry.S#L94">94</a>         pushl %ebx; \
<a name=L95 href="source/arch/i386/kernel/entry.S#L95">95</a>         movl $(__USER_DS), %edx; \
<a name=L96 href="source/arch/i386/kernel/entry.S#L96">96</a>         movl %edx, %ds; \
<a name=L97 href="source/arch/i386/kernel/entry.S#L97">97</a>         movl %edx, %es;
<a name=L98 href="source/arch/i386/kernel/entry.S#L98">98</a> 
<a name=L99 href="source/arch/i386/kernel/entry.S#L99">99</a> #define RESTORE_INT_REGS \
<a name=L100 href="source/arch/i386/kernel/entry.S#L100">100</a>         popl %ebx;      \
<a name=L101 href="source/arch/i386/kernel/entry.S#L101">101</a>         popl %ecx;      \
<a name=L102 href="source/arch/i386/kernel/entry.S#L102">102</a>         popl %edx;      \
<a name=L103 href="source/arch/i386/kernel/entry.S#L103">103</a>         popl %esi;      \
<a name=L104 href="source/arch/i386/kernel/entry.S#L104">104</a>         popl %edi;      \
<a name=L105 href="source/arch/i386/kernel/entry.S#L105">105</a>         popl %ebp;      \
<a name=L106 href="source/arch/i386/kernel/entry.S#L106">106</a>         popl %eax
<a name=L107 href="source/arch/i386/kernel/entry.S#L107">107</a> 
<a name=L108 href="source/arch/i386/kernel/entry.S#L108">108</a> #define RESTORE_REGS    \
<a name=L109 href="source/arch/i386/kernel/entry.S#L109">109</a>         RESTORE_INT_REGS; \
<a name=L110 href="source/arch/i386/kernel/entry.S#L110">110</a> 1:      popl %ds;       \
<a name=L111 href="source/arch/i386/kernel/entry.S#L111">111</a> 2:      popl %es;       \
<a name=L112 href="source/arch/i386/kernel/entry.S#L112">112</a> .section .fixup,"ax";   \
<a name=L113 href="source/arch/i386/kernel/entry.S#L113">113</a> 3:      movl $0,(%esp); \
<a name=L114 href="source/arch/i386/kernel/entry.S#L114">114</a>         jmp 1b;         \
<a name=L115 href="source/arch/i386/kernel/entry.S#L115">115</a> 4:      movl $0,(%esp); \
<a name=L116 href="source/arch/i386/kernel/entry.S#L116">116</a>         jmp 2b;         \
<a name=L117 href="source/arch/i386/kernel/entry.S#L117">117</a> .previous;              \
<a name=L118 href="source/arch/i386/kernel/entry.S#L118">118</a> .section __ex_table,"a";\
<a name=L119 href="source/arch/i386/kernel/entry.S#L119">119</a>         .align 4;       \
<a name=L120 href="source/arch/i386/kernel/entry.S#L120">120</a>         .long 1b,3b;    \
<a name=L121 href="source/arch/i386/kernel/entry.S#L121">121</a>         .long 2b,4b;    \
<a name=L122 href="source/arch/i386/kernel/entry.S#L122">122</a> .previous
<a name=L123 href="source/arch/i386/kernel/entry.S#L123">123</a> 
<a name=L124 href="source/arch/i386/kernel/entry.S#L124">124</a> 
<a name=L125 href="source/arch/i386/kernel/entry.S#L125">125</a> #define RESTORE_ALL     \
<a name=L126 href="source/arch/i386/kernel/entry.S#L126">126</a>         RESTORE_REGS    \
<a name=L127 href="source/arch/i386/kernel/entry.S#L127">127</a>         addl $4, %esp;  \
<a name=L128 href="source/arch/i386/kernel/entry.S#L128">128</a> 1:      iret;           \
<a name=L129 href="source/arch/i386/kernel/entry.S#L129">129</a> .section .fixup,"ax";   \
<a name=L130 href="source/arch/i386/kernel/entry.S#L130">130</a> 2:      sti;            \
<a name=L131 href="source/arch/i386/kernel/entry.S#L131">131</a>         movl $(__USER_DS), %edx; \
<a name=L132 href="source/arch/i386/kernel/entry.S#L132">132</a>         movl %edx, %ds; \
<a name=L133 href="source/arch/i386/kernel/entry.S#L133">133</a>         movl %edx, %es; \
<a name=L134 href="source/arch/i386/kernel/entry.S#L134">134</a>         movl $11,%eax;  \
<a name=L135 href="source/arch/i386/kernel/entry.S#L135">135</a>         call do_exit;   \
<a name=L136 href="source/arch/i386/kernel/entry.S#L136">136</a> .previous;              \
<a name=L137 href="source/arch/i386/kernel/entry.S#L137">137</a> .section __ex_table,"a";\
<a name=L138 href="source/arch/i386/kernel/entry.S#L138">138</a>         .align 4;       \
<a name=L139 href="source/arch/i386/kernel/entry.S#L139">139</a>         .long 1b,2b;    \
<a name=L140 href="source/arch/i386/kernel/entry.S#L140">140</a> .previous
<a name=L141 href="source/arch/i386/kernel/entry.S#L141">141</a> 
<a name=L142 href="source/arch/i386/kernel/entry.S#L142">142</a> 
<a name=L143 href="source/arch/i386/kernel/entry.S#L143">143</a> ENTRY(ret_from_fork)
<a name=L144 href="source/arch/i386/kernel/entry.S#L144">144</a>         pushl %eax
<a name=L145 href="source/arch/i386/kernel/entry.S#L145">145</a>         call schedule_tail
<a name=L146 href="source/arch/i386/kernel/entry.S#L146">146</a>         GET_THREAD_INFO(%ebp)
<a name=L147 href="source/arch/i386/kernel/entry.S#L147">147</a>         popl %eax
<a name=L148 href="source/arch/i386/kernel/entry.S#L148">148</a>         jmp syscall_exit
<a name=L149 href="source/arch/i386/kernel/entry.S#L149">149</a> 
<a name=L150 href="source/arch/i386/kernel/entry.S#L150">150</a> /*
<a name=L151 href="source/arch/i386/kernel/entry.S#L151">151</a>  * Return to user mode is not as complex as all this looks,
<a name=L152 href="source/arch/i386/kernel/entry.S#L152">152</a>  * but we want the default path for a system call return to
<a name=L153 href="source/arch/i386/kernel/entry.S#L153">153</a>  * go as quickly as possible which is why some of this is
<a name=L154 href="source/arch/i386/kernel/entry.S#L154">154</a>  * less clear than it otherwise should be.
<a name=L155 href="source/arch/i386/kernel/entry.S#L155">155</a>  */
<a name=L156 href="source/arch/i386/kernel/entry.S#L156">156</a> 
<a name=L157 href="source/arch/i386/kernel/entry.S#L157">157</a>         # userspace resumption stub bypassing syscall exit tracing
<a name=L158 href="source/arch/i386/kernel/entry.S#L158">158</a>         ALIGN
<a name=L159 href="source/arch/i386/kernel/entry.S#L159">159</a> ret_from_exception:
<a name=L160 href="source/arch/i386/kernel/entry.S#L160">160</a>         preempt_stop
<a name=L161 href="source/arch/i386/kernel/entry.S#L161">161</a> ret_from_intr:
<a name=L162 href="source/arch/i386/kernel/entry.S#L162">162</a>         GET_THREAD_INFO(%ebp)
<a name=L163 href="source/arch/i386/kernel/entry.S#L163">163</a>         movl EFLAGS(%esp), %eax         # mix EFLAGS and CS
<a name=L164 href="source/arch/i386/kernel/entry.S#L164">164</a>         movb CS(%esp), %al
<a name=L165 href="source/arch/i386/kernel/entry.S#L165">165</a>         testl $(VM_MASK | 3), %eax
<a name=L166 href="source/arch/i386/kernel/entry.S#L166">166</a>         jz resume_kernel                # returning to kernel or vm86-space
<a name=L167 href="source/arch/i386/kernel/entry.S#L167">167</a> ENTRY(resume_userspace)
<a name=L168 href="source/arch/i386/kernel/entry.S#L168">168</a>         cli                             # make sure we don't miss an interrupt
<a name=L169 href="source/arch/i386/kernel/entry.S#L169">169</a>                                         # setting need_resched or sigpending
<a name=L170 href="source/arch/i386/kernel/entry.S#L170">170</a>                                         # between sampling and the iret
<a name=L171 href="source/arch/i386/kernel/entry.S#L171">171</a>         movl TI_flags(%ebp), %ecx
<a name=L172 href="source/arch/i386/kernel/entry.S#L172">172</a>         andl $_TIF_WORK_MASK, %ecx      # is there any work to be done on
<a name=L173 href="source/arch/i386/kernel/entry.S#L173">173</a>                                         # int/exception return?
<a name=L174 href="source/arch/i386/kernel/entry.S#L174">174</a>         jne work_pending
<a name=L175 href="source/arch/i386/kernel/entry.S#L175">175</a>         jmp restore_all
<a name=L176 href="source/arch/i386/kernel/entry.S#L176">176</a> 
<a name=L177 href="source/arch/i386/kernel/entry.S#L177">177</a> #ifdef CONFIG_PREEMPT
<a name=L178 href="source/arch/i386/kernel/entry.S#L178">178</a> ENTRY(resume_kernel)
<a name=L179 href="source/arch/i386/kernel/entry.S#L179">179</a>         cli
<a name=L180 href="source/arch/i386/kernel/entry.S#L180">180</a>         cmpl $0,TI_preempt_count(%ebp)  # non-zero preempt_count ?
<a name=L181 href="source/arch/i386/kernel/entry.S#L181">181</a>         jnz restore_all
<a name=L182 href="source/arch/i386/kernel/entry.S#L182">182</a> need_resched:
<a name=L183 href="source/arch/i386/kernel/entry.S#L183">183</a>         movl TI_flags(%ebp), %ecx       # need_resched set ?
<a name=L184 href="source/arch/i386/kernel/entry.S#L184">184</a>         testb $_TIF_NEED_RESCHED, %cl
<a name=L185 href="source/arch/i386/kernel/entry.S#L185">185</a>         jz restore_all
<a name=L186 href="source/arch/i386/kernel/entry.S#L186">186</a>         testl $IF_MASK,EFLAGS(%esp)     # interrupts off (exception path) ?
<a name=L187 href="source/arch/i386/kernel/entry.S#L187">187</a>         jz restore_all
<a name=L188 href="source/arch/i386/kernel/entry.S#L188">188</a>         call preempt_schedule_irq
<a name=L189 href="source/arch/i386/kernel/entry.S#L189">189</a>         jmp need_resched
<a name=L190 href="source/arch/i386/kernel/entry.S#L190">190</a> #endif
<a name=L191 href="source/arch/i386/kernel/entry.S#L191">191</a> 
<a name=L192 href="source/arch/i386/kernel/entry.S#L192">192</a> /* SYSENTER_RETURN points to after the "sysenter" instruction in
<a name=L193 href="source/arch/i386/kernel/entry.S#L193">193</a>    the vsyscall page.  See vsyscall-sysentry.S, which defines the symbol.  */
<a name=L194 href="source/arch/i386/kernel/entry.S#L194">194</a> 
<a name=L195 href="source/arch/i386/kernel/entry.S#L195">195</a>         # sysenter call handler stub
<a name=L196 href="source/arch/i386/kernel/entry.S#L196">196</a> ENTRY(sysenter_entry)
<a name=L197 href="source/arch/i386/kernel/entry.S#L197">197</a>         movl TSS_sysenter_esp0(%esp),%esp
<a name=L198 href="source/arch/i386/kernel/entry.S#L198">198</a> sysenter_past_esp:
<a name=L199 href="source/arch/i386/kernel/entry.S#L199">199</a>         sti
<a name=L200 href="source/arch/i386/kernel/entry.S#L200">200</a>         pushl $(__USER_DS)
<a name=L201 href="source/arch/i386/kernel/entry.S#L201">201</a>         pushl %ebp
<a name=L202 href="source/arch/i386/kernel/entry.S#L202">202</a>         pushfl
<a name=L203 href="source/arch/i386/kernel/entry.S#L203">203</a>         pushl $(__USER_CS)
<a name=L204 href="source/arch/i386/kernel/entry.S#L204">204</a>         pushl $SYSENTER_RETURN
<a name=L205 href="source/arch/i386/kernel/entry.S#L205">205</a> 
<a name=L206 href="source/arch/i386/kernel/entry.S#L206">206</a> /*
<a name=L207 href="source/arch/i386/kernel/entry.S#L207">207</a>  * Load the potential sixth argument from user stack.
<a name=L208 href="source/arch/i386/kernel/entry.S#L208">208</a>  * Careful about security.
<a name=L209 href="source/arch/i386/kernel/entry.S#L209">209</a>  */
<a name=L210 href="source/arch/i386/kernel/entry.S#L210">210</a>         cmpl $__PAGE_OFFSET-3,%ebp
<a name=L211 href="source/arch/i386/kernel/entry.S#L211">211</a>         jae syscall_fault
<a name=L212 href="source/arch/i386/kernel/entry.S#L212">212</a> 1:      movl (%ebp),%ebp
<a name=L213 href="source/arch/i386/kernel/entry.S#L213">213</a> .section __ex_table,"a"
<a name=L214 href="source/arch/i386/kernel/entry.S#L214">214</a>         .align 4
<a name=L215 href="source/arch/i386/kernel/entry.S#L215">215</a>         .long 1b,syscall_fault
<a name=L216 href="source/arch/i386/kernel/entry.S#L216">216</a> .previous
<a name=L217 href="source/arch/i386/kernel/entry.S#L217">217</a> 
<a name=L218 href="source/arch/i386/kernel/entry.S#L218">218</a>         pushl %eax
<a name=L219 href="source/arch/i386/kernel/entry.S#L219">219</a>         SAVE_ALL
<a name=L220 href="source/arch/i386/kernel/entry.S#L220">220</a>         GET_THREAD_INFO(%ebp)
<a name=L221 href="source/arch/i386/kernel/entry.S#L221">221</a> 
<a name=L222 href="source/arch/i386/kernel/entry.S#L222">222</a>         testb $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT),TI_flags(%ebp)
<a name=L223 href="source/arch/i386/kernel/entry.S#L223">223</a>         jnz syscall_trace_entry
<a name=L224 href="source/arch/i386/kernel/entry.S#L224">224</a>         cmpl $(nr_syscalls), %eax
<a name=L225 href="source/arch/i386/kernel/entry.S#L225">225</a>         jae syscall_badsys
<a name=L226 href="source/arch/i386/kernel/entry.S#L226">226</a>         call *sys_call_table(,%eax,4)
<a name=L227 href="source/arch/i386/kernel/entry.S#L227">227</a>         movl %eax,EAX(%esp)
<a name=L228 href="source/arch/i386/kernel/entry.S#L228">228</a>         cli
<a name=L229 href="source/arch/i386/kernel/entry.S#L229">229</a>         movl TI_flags(%ebp), %ecx
<a name=L230 href="source/arch/i386/kernel/entry.S#L230">230</a>         testw $_TIF_ALLWORK_MASK, %cx
<a name=L231 href="source/arch/i386/kernel/entry.S#L231">231</a>         jne syscall_exit_work
<a name=L232 href="source/arch/i386/kernel/entry.S#L232">232</a> /* if something modifies registers it must also disable sysexit */
<a name=L233 href="source/arch/i386/kernel/entry.S#L233">233</a>         movl EIP(%esp), %edx
<a name=L234 href="source/arch/i386/kernel/entry.S#L234">234</a>         movl OLDESP(%esp), %ecx
<a name=L235 href="source/arch/i386/kernel/entry.S#L235">235</a>         xorl %ebp,%ebp
<a name=L236 href="source/arch/i386/kernel/entry.S#L236">236</a>         sti
<a name=L237 href="source/arch/i386/kernel/entry.S#L237">237</a>         sysexit
<a name=L238 href="source/arch/i386/kernel/entry.S#L238">238</a> 
<a name=L239 href="source/arch/i386/kernel/entry.S#L239">239</a> 
<a name=L240 href="source/arch/i386/kernel/entry.S#L240">240</a>         # system call handler stub
<a name=L241 href="source/arch/i386/kernel/entry.S#L241">241</a> ENTRY(system_call)
<a name=L242 href="source/arch/i386/kernel/entry.S#L242">242</a>         pushl %eax                      # save orig_eax
<a name=L243 href="source/arch/i386/kernel/entry.S#L243">243</a>         SAVE_ALL
<a name=L244 href="source/arch/i386/kernel/entry.S#L244">244</a>         GET_THREAD_INFO(%ebp)
<a name=L245 href="source/arch/i386/kernel/entry.S#L245">245</a>                                         # system call tracing in operation
<a name=L246 href="source/arch/i386/kernel/entry.S#L246">246</a>         testb $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT),TI_flags(%ebp)
<a name=L247 href="source/arch/i386/kernel/entry.S#L247">247</a>         jnz syscall_trace_entry
<a name=L248 href="source/arch/i386/kernel/entry.S#L248">248</a>         cmpl $(nr_syscalls), %eax
<a name=L249 href="source/arch/i386/kernel/entry.S#L249">249</a>         jae syscall_badsys
<a name=L250 href="source/arch/i386/kernel/entry.S#L250">250</a> syscall_call:
<a name=L251 href="source/arch/i386/kernel/entry.S#L251">251</a>         call *sys_call_table(,%eax,4)
<a name=L252 href="source/arch/i386/kernel/entry.S#L252">252</a>         movl %eax,EAX(%esp)             # store the return value
<a name=L253 href="source/arch/i386/kernel/entry.S#L253">253</a> syscall_exit:
<a name=L254 href="source/arch/i386/kernel/entry.S#L254">254</a>         cli                             # make sure we don't miss an interrupt
<a name=L255 href="source/arch/i386/kernel/entry.S#L255">255</a>                                         # setting need_resched or sigpending
<a name=L256 href="source/arch/i386/kernel/entry.S#L256">256</a>                                         # between sampling and the iret
<a name=L257 href="source/arch/i386/kernel/entry.S#L257">257</a>         movl TI_flags(%ebp), %ecx
<a name=L258 href="source/arch/i386/kernel/entry.S#L258">258</a>         testw $_TIF_ALLWORK_MASK, %cx   # current-&gt;work
<a name=L259 href="source/arch/i386/kernel/entry.S#L259">259</a>         jne syscall_exit_work
<a name=L260 href="source/arch/i386/kernel/entry.S#L260">260</a> restore_all:
<a name=L261 href="source/arch/i386/kernel/entry.S#L261">261</a>         RESTORE_ALL
<a name=L262 href="source/arch/i386/kernel/entry.S#L262">262</a> 
<a name=L263 href="source/arch/i386/kernel/entry.S#L263">263</a>         # perform work that needs to be done immediately before resumption
<a name=L264 href="source/arch/i386/kernel/entry.S#L264">264</a>         ALIGN
<a name=L265 href="source/arch/i386/kernel/entry.S#L265">265</a> work_pending:
<a name=L266 href="source/arch/i386/kernel/entry.S#L266">266</a>         testb $_TIF_NEED_RESCHED, %cl
<a name=L267 href="source/arch/i386/kernel/entry.S#L267">267</a>         jz work_notifysig
<a name=L268 href="source/arch/i386/kernel/entry.S#L268">268</a> work_resched:
<a name=L269 href="source/arch/i386/kernel/entry.S#L269">269</a>         call schedule
<a name=L270 href="source/arch/i386/kernel/entry.S#L270">270</a>         cli                             # make sure we don't miss an interrupt
<a name=L271 href="source/arch/i386/kernel/entry.S#L271">271</a>                                         # setting need_resched or sigpending
<a name=L272 href="source/arch/i386/kernel/entry.S#L272">272</a>                                         # between sampling and the iret
<a name=L273 href="source/arch/i386/kernel/entry.S#L273">273</a>         movl TI_flags(%ebp), %ecx
<a name=L274 href="source/arch/i386/kernel/entry.S#L274">274</a>         andl $_TIF_WORK_MASK, %ecx      # is there any work to be done other
<a name=L275 href="source/arch/i386/kernel/entry.S#L275">275</a>                                         # than syscall tracing?
<a name=L276 href="source/arch/i386/kernel/entry.S#L276">276</a>         jz restore_all
<a name=L277 href="source/arch/i386/kernel/entry.S#L277">277</a>         testb $_TIF_NEED_RESCHED, %cl
<a name=L278 href="source/arch/i386/kernel/entry.S#L278">278</a>         jnz work_resched
<a name=L279 href="source/arch/i386/kernel/entry.S#L279">279</a> 
<a name=L280 href="source/arch/i386/kernel/entry.S#L280">280</a> work_notifysig:                         # deal with pending signals and
<a name=L281 href="source/arch/i386/kernel/entry.S#L281">281</a>                                         # notify-resume requests
<a name=L282 href="source/arch/i386/kernel/entry.S#L282">282</a>         testl $VM_MASK, EFLAGS(%esp)
<a name=L283 href="source/arch/i386/kernel/entry.S#L283">283</a>         movl %esp, %eax
<a name=L284 href="source/arch/i386/kernel/entry.S#L284">284</a>         jne work_notifysig_v86          # returning to kernel-space or
<a name=L285 href="source/arch/i386/kernel/entry.S#L285">285</a>                                         # vm86-space
<a name=L286 href="source/arch/i386/kernel/entry.S#L286">286</a>         xorl %edx, %edx
<a name=L287 href="source/arch/i386/kernel/entry.S#L287">287</a>         call do_notify_resume
<a name=L288 href="source/arch/i386/kernel/entry.S#L288">288</a>         jmp restore_all
<a name=L289 href="source/arch/i386/kernel/entry.S#L289">289</a> 
<a name=L290 href="source/arch/i386/kernel/entry.S#L290">290</a>         ALIGN
<a name=L291 href="source/arch/i386/kernel/entry.S#L291">291</a> work_notifysig_v86:
<a name=L292 href="source/arch/i386/kernel/entry.S#L292">292</a>         pushl %ecx                      # save ti_flags for do_notify_resume
<a name=L293 href="source/arch/i386/kernel/entry.S#L293">293</a>         call save_v86_state             # %eax contains pt_regs pointer
<a name=L294 href="source/arch/i386/kernel/entry.S#L294">294</a>         popl %ecx
<a name=L295 href="source/arch/i386/kernel/entry.S#L295">295</a>         movl %eax, %esp
<a name=L296 href="source/arch/i386/kernel/entry.S#L296">296</a>         xorl %edx, %edx
<a name=L297 href="source/arch/i386/kernel/entry.S#L297">297</a>         call do_notify_resume
<a name=L298 href="source/arch/i386/kernel/entry.S#L298">298</a>         jmp restore_all
<a name=L299 href="source/arch/i386/kernel/entry.S#L299">299</a> 
<a name=L300 href="source/arch/i386/kernel/entry.S#L300">300</a>         # perform syscall exit tracing
<a name=L301 href="source/arch/i386/kernel/entry.S#L301">301</a>         ALIGN
<a name=L302 href="source/arch/i386/kernel/entry.S#L302">302</a> syscall_trace_entry:
<a name=L303 href="source/arch/i386/kernel/entry.S#L303">303</a>         movl $-ENOSYS,EAX(%esp)
<a name=L304 href="source/arch/i386/kernel/entry.S#L304">304</a>         movl %esp, %eax
<a name=L305 href="source/arch/i386/kernel/entry.S#L305">305</a>         xorl %edx,%edx
<a name=L306 href="source/arch/i386/kernel/entry.S#L306">306</a>         call do_syscall_trace
<a name=L307 href="source/arch/i386/kernel/entry.S#L307">307</a>         movl ORIG_EAX(%esp), %eax
<a name=L308 href="source/arch/i386/kernel/entry.S#L308">308</a>         cmpl $(nr_syscalls), %eax
<a name=L309 href="source/arch/i386/kernel/entry.S#L309">309</a>         jnae syscall_call
<a name=L310 href="source/arch/i386/kernel/entry.S#L310">310</a>         jmp syscall_exit
<a name=L311 href="source/arch/i386/kernel/entry.S#L311">311</a> 
<a name=L312 href="source/arch/i386/kernel/entry.S#L312">312</a>         # perform syscall exit tracing
<a name=L313 href="source/arch/i386/kernel/entry.S#L313">313</a>         ALIGN
<a name=L314 href="source/arch/i386/kernel/entry.S#L314">314</a> syscall_exit_work:
<a name=L315 href="source/arch/i386/kernel/entry.S#L315">315</a>         testb $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP), %cl
<a name=L316 href="source/arch/i386/kernel/entry.S#L316">316</a>         jz work_pending
<a name=L317 href="source/arch/i386/kernel/entry.S#L317">317</a>         sti                             # could let do_syscall_trace() call
<a name=L318 href="source/arch/i386/kernel/entry.S#L318">318</a>                                         # schedule() instead
<a name=L319 href="source/arch/i386/kernel/entry.S#L319">319</a>         movl %esp, %eax
<a name=L320 href="source/arch/i386/kernel/entry.S#L320">320</a>         movl $1, %edx
<a name=L321 href="source/arch/i386/kernel/entry.S#L321">321</a>         call do_syscall_trace
<a name=L322 href="source/arch/i386/kernel/entry.S#L322">322</a>         jmp resume_userspace
<a name=L323 href="source/arch/i386/kernel/entry.S#L323">323</a> 
<a name=L324 href="source/arch/i386/kernel/entry.S#L324">324</a>         ALIGN
<a name=L325 href="source/arch/i386/kernel/entry.S#L325">325</a> syscall_fault:
<a name=L326 href="source/arch/i386/kernel/entry.S#L326">326</a>         pushl %eax                      # save orig_eax
<a name=L327 href="source/arch/i386/kernel/entry.S#L327">327</a>         SAVE_ALL
<a name=L328 href="source/arch/i386/kernel/entry.S#L328">328</a>         GET_THREAD_INFO(%ebp)
<a name=L329 href="source/arch/i386/kernel/entry.S#L329">329</a>         movl $-EFAULT,EAX(%esp)
<a name=L330 href="source/arch/i386/kernel/entry.S#L330">330</a>         jmp resume_userspace
<a name=L331 href="source/arch/i386/kernel/entry.S#L331">331</a> 
<a name=L332 href="source/arch/i386/kernel/entry.S#L332">332</a>         ALIGN
<a name=L333 href="source/arch/i386/kernel/entry.S#L333">333</a> syscall_badsys:
<a name=L334 href="source/arch/i386/kernel/entry.S#L334">334</a>         movl $-ENOSYS,EAX(%esp)
<a name=L335 href="source/arch/i386/kernel/entry.S#L335">335</a>         jmp resume_userspace
<a name=L336 href="source/arch/i386/kernel/entry.S#L336">336</a> 
<a name=L337 href="source/arch/i386/kernel/entry.S#L337">337</a> /*
<a name=L338 href="source/arch/i386/kernel/entry.S#L338">338</a>  * Build the entry stubs and pointer table with
<a name=L339 href="source/arch/i386/kernel/entry.S#L339">339</a>  * some assembler magic.
<a name=L340 href="source/arch/i386/kernel/entry.S#L340">340</a>  */
<a name=L341 href="source/arch/i386/kernel/entry.S#L341">341</a> .data
<a name=L342 href="source/arch/i386/kernel/entry.S#L342">342</a> ENTRY(interrupt)
<a name=L343 href="source/arch/i386/kernel/entry.S#L343">343</a> .text
<a name=L344 href="source/arch/i386/kernel/entry.S#L344">344</a> 
<a name=L345 href="source/arch/i386/kernel/entry.S#L345">345</a> vector=0
<a name=L346 href="source/arch/i386/kernel/entry.S#L346">346</a> ENTRY(irq_entries_start)
<a name=L347 href="source/arch/i386/kernel/entry.S#L347">347</a> .rept NR_IRQS
<a name=L348 href="source/arch/i386/kernel/entry.S#L348">348</a>         ALIGN
<a name=L349 href="source/arch/i386/kernel/entry.S#L349">349</a> 1:      pushl $vector-256
<a name=L350 href="source/arch/i386/kernel/entry.S#L350">350</a>         jmp common_interrupt
<a name=L351 href="source/arch/i386/kernel/entry.S#L351">351</a> .data
<a name=L352 href="source/arch/i386/kernel/entry.S#L352">352</a>         .long 1b
<a name=L353 href="source/arch/i386/kernel/entry.S#L353">353</a> .text
<a name=L354 href="source/arch/i386/kernel/entry.S#L354">354</a> vector=vector+1
<a name=L355 href="source/arch/i386/kernel/entry.S#L355">355</a> .endr
<a name=L356 href="source/arch/i386/kernel/entry.S#L356">356</a> 
<a name=L357 href="source/arch/i386/kernel/entry.S#L357">357</a>         ALIGN
<a name=L358 href="source/arch/i386/kernel/entry.S#L358">358</a> common_interrupt:
<a name=L359 href="source/arch/i386/kernel/entry.S#L359">359</a>         SAVE_ALL
<a name=L360 href="source/arch/i386/kernel/entry.S#L360">360</a>         movl %esp,%eax
<a name=L361 href="source/arch/i386/kernel/entry.S#L361">361</a>         call do_IRQ
<a name=L362 href="source/arch/i386/kernel/entry.S#L362">362</a>         jmp ret_from_intr
<a name=L363 href="source/arch/i386/kernel/entry.S#L363">363</a> 
<a name=L364 href="source/arch/i386/kernel/entry.S#L364">364</a> #define BUILD_INTERRUPT(name, nr)       \
<a name=L365 href="source/arch/i386/kernel/entry.S#L365">365</a> ENTRY(name)                             \
<a name=L366 href="source/arch/i386/kernel/entry.S#L366">366</a>         pushl $nr-256;                  \
<a name=L367 href="source/arch/i386/kernel/entry.S#L367">367</a>         SAVE_ALL                        \
<a name=L368 href="source/arch/i386/kernel/entry.S#L368">368</a>         movl %esp,%eax;                 \
<a name=L369 href="source/arch/i386/kernel/entry.S#L369">369</a>         call smp_/**/name;              \
<a name=L370 href="source/arch/i386/kernel/entry.S#L370">370</a>         jmp ret_from_intr;
<a name=L371 href="source/arch/i386/kernel/entry.S#L371">371</a> 
<a name=L372 href="source/arch/i386/kernel/entry.S#L372">372</a> /* The include is where all of the SMP etc. interrupts come from */
<a name=L373 href="source/arch/i386/kernel/entry.S#L373">373</a> #include "entry_arch.h"
<a name=L374 href="source/arch/i386/kernel/entry.S#L374">374</a> 
<a name=L375 href="source/arch/i386/kernel/entry.S#L375">375</a> ENTRY(divide_error)
<a name=L376 href="source/arch/i386/kernel/entry.S#L376">376</a>         pushl $0                        # no error code
<a name=L377 href="source/arch/i386/kernel/entry.S#L377">377</a>         pushl $do_divide_error
<a name=L378 href="source/arch/i386/kernel/entry.S#L378">378</a>         ALIGN
<a name=L379 href="source/arch/i386/kernel/entry.S#L379">379</a> error_code:
<a name=L380 href="source/arch/i386/kernel/entry.S#L380">380</a>         pushl %ds
<a name=L381 href="source/arch/i386/kernel/entry.S#L381">381</a>         pushl %eax
<a name=L382 href="source/arch/i386/kernel/entry.S#L382">382</a>         xorl %eax, %eax
<a name=L383 href="source/arch/i386/kernel/entry.S#L383">383</a>         pushl %ebp
<a name=L384 href="source/arch/i386/kernel/entry.S#L384">384</a>         pushl %edi
<a name=L385 href="source/arch/i386/kernel/entry.S#L385">385</a>         pushl %esi
<a name=L386 href="source/arch/i386/kernel/entry.S#L386">386</a>         pushl %edx
<a name=L387 href="source/arch/i386/kernel/entry.S#L387">387</a>         decl %eax                       # eax = -1
<a name=L388 href="source/arch/i386/kernel/entry.S#L388">388</a>         pushl %ecx
<a name=L389 href="source/arch/i386/kernel/entry.S#L389">389</a>         pushl %ebx
<a name=L390 href="source/arch/i386/kernel/entry.S#L390">390</a>         cld
<a name=L391 href="source/arch/i386/kernel/entry.S#L391">391</a>         movl %es, %ecx
<a name=L392 href="source/arch/i386/kernel/entry.S#L392">392</a>         movl ES(%esp), %edi             # get the function address
<a name=L393 href="source/arch/i386/kernel/entry.S#L393">393</a>         movl ORIG_EAX(%esp), %edx       # get the error code
<a name=L394 href="source/arch/i386/kernel/entry.S#L394">394</a>         movl %eax, ORIG_EAX(%esp)
<a name=L395 href="source/arch/i386/kernel/entry.S#L395">395</a>         movl %ecx, ES(%esp)
<a name=L396 href="source/arch/i386/kernel/entry.S#L396">396</a>         movl $(__USER_DS), %ecx
<a name=L397 href="source/arch/i386/kernel/entry.S#L397">397</a>         movl %ecx, %ds
<a name=L398 href="source/arch/i386/kernel/entry.S#L398">398</a>         movl %ecx, %es
<a name=L399 href="source/arch/i386/kernel/entry.S#L399">399</a>         movl %esp,%eax                  # pt_regs pointer
<a name=L400 href="source/arch/i386/kernel/entry.S#L400">400</a>         call *%edi
<a name=L401 href="source/arch/i386/kernel/entry.S#L401">401</a>         jmp ret_from_exception
<a name=L402 href="source/arch/i386/kernel/entry.S#L402">402</a> 
<a name=L403 href="source/arch/i386/kernel/entry.S#L403">403</a> ENTRY(coprocessor_error)
<a name=L404 href="source/arch/i386/kernel/entry.S#L404">404</a>         pushl $0
<a name=L405 href="source/arch/i386/kernel/entry.S#L405">405</a>         pushl $do_coprocessor_error
<a name=L406 href="source/arch/i386/kernel/entry.S#L406">406</a>         jmp error_code
<a name=L407 href="source/arch/i386/kernel/entry.S#L407">407</a> 
<a name=L408 href="source/arch/i386/kernel/entry.S#L408">408</a> ENTRY(simd_coprocessor_error)
<a name=L409 href="source/arch/i386/kernel/entry.S#L409">409</a>         pushl $0
<a name=L410 href="source/arch/i386/kernel/entry.S#L410">410</a>         pushl $do_simd_coprocessor_error
<a name=L411 href="source/arch/i386/kernel/entry.S#L411">411</a>         jmp error_code
<a name=L412 href="source/arch/i386/kernel/entry.S#L412">412</a> 
<a name=L413 href="source/arch/i386/kernel/entry.S#L413">413</a> ENTRY(device_not_available)
<a name=L414 href="source/arch/i386/kernel/entry.S#L414">414</a>         pushl $-1                       # mark this as an int
<a name=L415 href="source/arch/i386/kernel/entry.S#L415">415</a>         SAVE_ALL
<a name=L416 href="source/arch/i386/kernel/entry.S#L416">416</a>         movl %cr0, %eax
<a name=L417 href="source/arch/i386/kernel/entry.S#L417">417</a>         testl $0x4, %eax                # EM (math emulation bit)
<a name=L418 href="source/arch/i386/kernel/entry.S#L418">418</a>         jne device_not_available_emulate
<a name=L419 href="source/arch/i386/kernel/entry.S#L419">419</a>         preempt_stop
<a name=L420 href="source/arch/i386/kernel/entry.S#L420">420</a>         call math_state_restore
<a name=L421 href="source/arch/i386/kernel/entry.S#L421">421</a>         jmp ret_from_exception
<a name=L422 href="source/arch/i386/kernel/entry.S#L422">422</a> device_not_available_emulate:
<a name=L423 href="source/arch/i386/kernel/entry.S#L423">423</a>         pushl $0                        # temporary storage for ORIG_EIP
<a name=L424 href="source/arch/i386/kernel/entry.S#L424">424</a>         call math_emulate
<a name=L425 href="source/arch/i386/kernel/entry.S#L425">425</a>         addl $4, %esp
<a name=L426 href="source/arch/i386/kernel/entry.S#L426">426</a>         jmp ret_from_exception
<a name=L427 href="source/arch/i386/kernel/entry.S#L427">427</a> 
<a name=L428 href="source/arch/i386/kernel/entry.S#L428">428</a> /*
<a name=L429 href="source/arch/i386/kernel/entry.S#L429">429</a>  * Debug traps and NMI can happen at the one SYSENTER instruction
<a name=L430 href="source/arch/i386/kernel/entry.S#L430">430</a>  * that sets up the real kernel stack. Check here, since we can't
<a name=L431 href="source/arch/i386/kernel/entry.S#L431">431</a>  * allow the wrong stack to be used.
<a name=L432 href="source/arch/i386/kernel/entry.S#L432">432</a>  *
<a name=L433 href="source/arch/i386/kernel/entry.S#L433">433</a>  * "TSS_sysenter_esp0+12" is because the NMI/debug handler will have
<a name=L434 href="source/arch/i386/kernel/entry.S#L434">434</a>  * already pushed 3 words if it hits on the sysenter instruction:
<a name=L435 href="source/arch/i386/kernel/entry.S#L435">435</a>  * eflags, cs and eip.
<a name=L436 href="source/arch/i386/kernel/entry.S#L436">436</a>  *
<a name=L437 href="source/arch/i386/kernel/entry.S#L437">437</a>  * We just load the right stack, and push the three (known) values
<a name=L438 href="source/arch/i386/kernel/entry.S#L438">438</a>  * by hand onto the new stack - while updating the return eip past
<a name=L439 href="source/arch/i386/kernel/entry.S#L439">439</a>  * the instruction that would have done it for sysenter.
<a name=L440 href="source/arch/i386/kernel/entry.S#L440">440</a>  */
<a name=L441 href="source/arch/i386/kernel/entry.S#L441">441</a> #define FIX_STACK(offset, ok, label)            \
<a name=L442 href="source/arch/i386/kernel/entry.S#L442">442</a>         cmpw $__KERNEL_CS,4(%esp);              \
<a name=L443 href="source/arch/i386/kernel/entry.S#L443">443</a>         jne ok;                                 \
<a name=L444 href="source/arch/i386/kernel/entry.S#L444">444</a> label:                                          \
<a name=L445 href="source/arch/i386/kernel/entry.S#L445">445</a>         movl TSS_sysenter_esp0+offset(%esp),%esp;       \
<a name=L446 href="source/arch/i386/kernel/entry.S#L446">446</a>         pushfl;                                 \
<a name=L447 href="source/arch/i386/kernel/entry.S#L447">447</a>         pushl $__KERNEL_CS;                     \
<a name=L448 href="source/arch/i386/kernel/entry.S#L448">448</a>         pushl $sysenter_past_esp
<a name=L449 href="source/arch/i386/kernel/entry.S#L449">449</a> 
<a name=L450 href="source/arch/i386/kernel/entry.S#L450">450</a> ENTRY(debug)
<a name=L451 href="source/arch/i386/kernel/entry.S#L451">451</a>         cmpl $sysenter_entry,(%esp)
<a name=L452 href="source/arch/i386/kernel/entry.S#L452">452</a>         jne debug_stack_correct
<a name=L453 href="source/arch/i386/kernel/entry.S#L453">453</a>         FIX_STACK(12, debug_stack_correct, debug_esp_fix_insn)
<a name=L454 href="source/arch/i386/kernel/entry.S#L454">454</a> debug_stack_correct:
<a name=L455 href="source/arch/i386/kernel/entry.S#L455">455</a>         pushl $-1                       # mark this as an int
<a name=L456 href="source/arch/i386/kernel/entry.S#L456">456</a>         SAVE_ALL
<a name=L457 href="source/arch/i386/kernel/entry.S#L457">457</a>         xorl %edx,%edx                  # error code 0
<a name=L458 href="source/arch/i386/kernel/entry.S#L458">458</a>         movl %esp,%eax                  # pt_regs pointer
<a name=L459 href="source/arch/i386/kernel/entry.S#L459">459</a>         call do_debug
<a name=L460 href="source/arch/i386/kernel/entry.S#L460">460</a>         testl %eax,%eax
<a name=L461 href="source/arch/i386/kernel/entry.S#L461">461</a>         jnz restore_all
<a name=L462 href="source/arch/i386/kernel/entry.S#L462">462</a>         jmp ret_from_exception
<a name=L463 href="source/arch/i386/kernel/entry.S#L463">463</a> 
<a name=L464 href="source/arch/i386/kernel/entry.S#L464">464</a> /*
<a name=L465 href="source/arch/i386/kernel/entry.S#L465">465</a>  * NMI is doubly nasty. It can happen _while_ we're handling
<a name=L466 href="source/arch/i386/kernel/entry.S#L466">466</a>  * a debug fault, and the debug fault hasn't yet been able to
<a name=L467 href="source/arch/i386/kernel/entry.S#L467">467</a>  * clear up the stack. So we first check whether we got  an
<a name=L468 href="source/arch/i386/kernel/entry.S#L468">468</a>  * NMI on the sysenter entry path, but after that we need to
<a name=L469 href="source/arch/i386/kernel/entry.S#L469">469</a>  * check whether we got an NMI on the debug path where the debug
<a name=L470 href="source/arch/i386/kernel/entry.S#L470">470</a>  * fault happened on the sysenter path.
<a name=L471 href="source/arch/i386/kernel/entry.S#L471">471</a>  */
<a name=L472 href="source/arch/i386/kernel/entry.S#L472">472</a> ENTRY(nmi)
<a name=L473 href="source/arch/i386/kernel/entry.S#L473">473</a>         cmpl $sysenter_entry,(%esp)
<a name=L474 href="source/arch/i386/kernel/entry.S#L474">474</a>         je nmi_stack_fixup
<a name=L475 href="source/arch/i386/kernel/entry.S#L475">475</a>         pushl %eax
<a name=L476 href="source/arch/i386/kernel/entry.S#L476">476</a>         movl %esp,%eax
<a name=L477 href="source/arch/i386/kernel/entry.S#L477">477</a>         /* Do not access memory above the end of our stack page,
<a name=L478 href="source/arch/i386/kernel/entry.S#L478">478</a>          * it might not exist.
<a name=L479 href="source/arch/i386/kernel/entry.S#L479">479</a>          */
<a name=L480 href="source/arch/i386/kernel/entry.S#L480">480</a>         andl $(THREAD_SIZE-1),%eax
<a name=L481 href="source/arch/i386/kernel/entry.S#L481">481</a>         cmpl $(THREAD_SIZE-20),%eax
<a name=L482 href="source/arch/i386/kernel/entry.S#L482">482</a>         popl %eax
<a name=L483 href="source/arch/i386/kernel/entry.S#L483">483</a>         jae nmi_stack_correct
<a name=L484 href="source/arch/i386/kernel/entry.S#L484">484</a>         cmpl $sysenter_entry,12(%esp)
<a name=L485 href="source/arch/i386/kernel/entry.S#L485">485</a>         je nmi_debug_stack_check
<a name=L486 href="source/arch/i386/kernel/entry.S#L486">486</a> nmi_stack_correct:
<a name=L487 href="source/arch/i386/kernel/entry.S#L487">487</a>         pushl %eax
<a name=L488 href="source/arch/i386/kernel/entry.S#L488">488</a>         SAVE_ALL
<a name=L489 href="source/arch/i386/kernel/entry.S#L489">489</a>         xorl %edx,%edx          # zero error code
<a name=L490 href="source/arch/i386/kernel/entry.S#L490">490</a>         movl %esp,%eax          # pt_regs pointer
<a name=L491 href="source/arch/i386/kernel/entry.S#L491">491</a>         call do_nmi
<a name=L492 href="source/arch/i386/kernel/entry.S#L492">492</a>         RESTORE_ALL
<a name=L493 href="source/arch/i386/kernel/entry.S#L493">493</a> 
<a name=L494 href="source/arch/i386/kernel/entry.S#L494">494</a> nmi_stack_fixup:
<a name=L495 href="source/arch/i386/kernel/entry.S#L495">495</a>         FIX_STACK(12,nmi_stack_correct, 1)
<a name=L496 href="source/arch/i386/kernel/entry.S#L496">496</a>         jmp nmi_stack_correct
<a name=L497 href="source/arch/i386/kernel/entry.S#L497">497</a> nmi_debug_stack_check:
<a name=L498 href="source/arch/i386/kernel/entry.S#L498">498</a>         cmpw $__KERNEL_CS,16(%esp)
<a name=L499 href="source/arch/i386/kernel/entry.S#L499">499</a>         jne nmi_stack_correct
<a name=L500 href="source/arch/i386/kernel/entry.S#L500">500</a>         cmpl $debug - 1,(%esp)
<a name=L501 href="source/arch/i386/kernel/entry.S#L501">501</a>         jle nmi_stack_correct
<a name=L502 href="source/arch/i386/kernel/entry.S#L502">502</a>         cmpl $debug_esp_fix_insn,(%esp)
<a name=L503 href="source/arch/i386/kernel/entry.S#L503">503</a>         jle nmi_debug_stack_fixup
<a name=L504 href="source/arch/i386/kernel/entry.S#L504">504</a> nmi_debug_stack_fixup:
<a name=L505 href="source/arch/i386/kernel/entry.S#L505">505</a>         FIX_STACK(24,nmi_stack_correct, 1)
<a name=L506 href="source/arch/i386/kernel/entry.S#L506">506</a>         jmp nmi_stack_correct
<a name=L507 href="source/arch/i386/kernel/entry.S#L507">507</a> 
<a name=L508 href="source/arch/i386/kernel/entry.S#L508">508</a> ENTRY(int3)
<a name=L509 href="source/arch/i386/kernel/entry.S#L509">509</a>         pushl $-1                       # mark this as an int
<a name=L510 href="source/arch/i386/kernel/entry.S#L510">510</a>         SAVE_ALL
<a name=L511 href="source/arch/i386/kernel/entry.S#L511">511</a>         xorl %edx,%edx          # zero error code
<a name=L512 href="source/arch/i386/kernel/entry.S#L512">512</a>         movl %esp,%eax          # pt_regs pointer
<a name=L513 href="source/arch/i386/kernel/entry.S#L513">513</a>         call do_int3
<a name=L514 href="source/arch/i386/kernel/entry.S#L514">514</a>         testl %eax,%eax
<a name=L515 href="source/arch/i386/kernel/entry.S#L515">515</a>         jnz restore_all
<a name=L516 href="source/arch/i386/kernel/entry.S#L516">516</a>         jmp ret_from_exception
<a name=L517 href="source/arch/i386/kernel/entry.S#L517">517</a> 
<a name=L518 href="source/arch/i386/kernel/entry.S#L518">518</a> ENTRY(overflow)
<a name=L519 href="source/arch/i386/kernel/entry.S#L519">519</a>         pushl $0
<a name=L520 href="source/arch/i386/kernel/entry.S#L520">520</a>         pushl $do_overflow
<a name=L521 href="source/arch/i386/kernel/entry.S#L521">521</a>         jmp error_code
<a name=L522 href="source/arch/i386/kernel/entry.S#L522">522</a> 
<a name=L523 href="source/arch/i386/kernel/entry.S#L523">523</a> ENTRY(bounds)
<a name=L524 href="source/arch/i386/kernel/entry.S#L524">524</a>         pushl $0
<a name=L525 href="source/arch/i386/kernel/entry.S#L525">525</a>         pushl $do_bounds
<a name=L526 href="source/arch/i386/kernel/entry.S#L526">526</a>         jmp error_code
<a name=L527 href="source/arch/i386/kernel/entry.S#L527">527</a> 
<a name=L528 href="source/arch/i386/kernel/entry.S#L528">528</a> ENTRY(invalid_op)
<a name=L529 href="source/arch/i386/kernel/entry.S#L529">529</a>         pushl $0
<a name=L530 href="source/arch/i386/kernel/entry.S#L530">530</a>         pushl $do_invalid_op
<a name=L531 href="source/arch/i386/kernel/entry.S#L531">531</a>         jmp error_code
<a name=L532 href="source/arch/i386/kernel/entry.S#L532">532</a> 
<a name=L533 href="source/arch/i386/kernel/entry.S#L533">533</a> ENTRY(coprocessor_segment_overrun)
<a name=L534 href="source/arch/i386/kernel/entry.S#L534">534</a>         pushl $0
<a name=L535 href="source/arch/i386/kernel/entry.S#L535">535</a>         pushl $do_coprocessor_segment_overrun
<a name=L536 href="source/arch/i386/kernel/entry.S#L536">536</a>         jmp error_code
<a name=L537 href="source/arch/i386/kernel/entry.S#L537">537</a> 
<a name=L538 href="source/arch/i386/kernel/entry.S#L538">538</a> ENTRY(invalid_TSS)
<a name=L539 href="source/arch/i386/kernel/entry.S#L539">539</a>         pushl $do_invalid_TSS
<a name=L540 href="source/arch/i386/kernel/entry.S#L540">540</a>         jmp error_code
<a name=L541 href="source/arch/i386/kernel/entry.S#L541">541</a> 
<a name=L542 href="source/arch/i386/kernel/entry.S#L542">542</a> ENTRY(segment_not_present)
<a name=L543 href="source/arch/i386/kernel/entry.S#L543">543</a>         pushl $do_segment_not_present
<a name=L544 href="source/arch/i386/kernel/entry.S#L544">544</a>         jmp error_code
<a name=L545 href="source/arch/i386/kernel/entry.S#L545">545</a> 
<a name=L546 href="source/arch/i386/kernel/entry.S#L546">546</a> ENTRY(stack_segment)
<a name=L547 href="source/arch/i386/kernel/entry.S#L547">547</a>         pushl $do_stack_segment
<a name=L548 href="source/arch/i386/kernel/entry.S#L548">548</a>         jmp error_code
<a name=L549 href="source/arch/i386/kernel/entry.S#L549">549</a> 
<a name=L550 href="source/arch/i386/kernel/entry.S#L550">550</a> ENTRY(general_protection)
<a name=L551 href="source/arch/i386/kernel/entry.S#L551">551</a>         pushl $do_general_protection
<a name=L552 href="source/arch/i386/kernel/entry.S#L552">552</a>         jmp error_code
<a name=L553 href="source/arch/i386/kernel/entry.S#L553">553</a> 
<a name=L554 href="source/arch/i386/kernel/entry.S#L554">554</a> ENTRY(alignment_check)
<a name=L555 href="source/arch/i386/kernel/entry.S#L555">555</a>         pushl $do_alignment_check
<a name=L556 href="source/arch/i386/kernel/entry.S#L556">556</a>         jmp error_code
<a name=L557 href="source/arch/i386/kernel/entry.S#L557">557</a> 
<a name=L558 href="source/arch/i386/kernel/entry.S#L558">558</a> ENTRY(page_fault)
<a name=L559 href="source/arch/i386/kernel/entry.S#L559">559</a>         pushl $do_page_fault
<a name=L560 href="source/arch/i386/kernel/entry.S#L560">560</a>         jmp error_code
<a name=L561 href="source/arch/i386/kernel/entry.S#L561">561</a> 
<a name=L562 href="source/arch/i386/kernel/entry.S#L562">562</a> #ifdef CONFIG_X86_MCE
<a name=L563 href="source/arch/i386/kernel/entry.S#L563">563</a> ENTRY(machine_check)
<a name=L564 href="source/arch/i386/kernel/entry.S#L564">564</a>         pushl $0
<a name=L565 href="source/arch/i386/kernel/entry.S#L565">565</a>         pushl machine_check_vector
<a name=L566 href="source/arch/i386/kernel/entry.S#L566">566</a>         jmp error_code
<a name=L567 href="source/arch/i386/kernel/entry.S#L567">567</a> #endif
<a name=L568 href="source/arch/i386/kernel/entry.S#L568">568</a> 
<a name=L569 href="source/arch/i386/kernel/entry.S#L569">569</a> ENTRY(spurious_interrupt_bug)
<a name=L570 href="source/arch/i386/kernel/entry.S#L570">570</a>         pushl $0
<a name=L571 href="source/arch/i386/kernel/entry.S#L571">571</a>         pushl $do_spurious_interrupt_bug
<a name=L572 href="source/arch/i386/kernel/entry.S#L572">572</a>         jmp error_code
<a name=L573 href="source/arch/i386/kernel/entry.S#L573">573</a> 
<a name=L574 href="source/arch/i386/kernel/entry.S#L574">574</a> .data
<a name=L575 href="source/arch/i386/kernel/entry.S#L575">575</a> ENTRY(sys_call_table)
<a name=L576 href="source/arch/i386/kernel/entry.S#L576">576</a>         .long sys_restart_syscall       /* 0 - old "setup()" system call, used for restarting */
<a name=L577 href="source/arch/i386/kernel/entry.S#L577">577</a>         .long sys_exit
<a name=L578 href="source/arch/i386/kernel/entry.S#L578">578</a>         .long sys_fork
<a name=L579 href="source/arch/i386/kernel/entry.S#L579">579</a>         .long sys_read
<a name=L580 href="source/arch/i386/kernel/entry.S#L580">580</a>         .long sys_write
<a name=L581 href="source/arch/i386/kernel/entry.S#L581">581</a>         .long sys_open          /* 5 */
<a name=L582 href="source/arch/i386/kernel/entry.S#L582">582</a>         .long sys_close
<a name=L583 href="source/arch/i386/kernel/entry.S#L583">583</a>         .long sys_waitpid
<a name=L584 href="source/arch/i386/kernel/entry.S#L584">584</a>         .long sys_creat
<a name=L585 href="source/arch/i386/kernel/entry.S#L585">585</a>         .long sys_link
<a name=L586 href="source/arch/i386/kernel/entry.S#L586">586</a>         .long sys_unlink        /* 10 */
<a name=L587 href="source/arch/i386/kernel/entry.S#L587">587</a>         .long sys_execve
<a name=L588 href="source/arch/i386/kernel/entry.S#L588">588</a>         .long sys_chdir
<a name=L589 href="source/arch/i386/kernel/entry.S#L589">589</a>         .long sys_time
<a name=L590 href="source/arch/i386/kernel/entry.S#L590">590</a>         .long sys_mknod
<a name=L591 href="source/arch/i386/kernel/entry.S#L591">591</a>         .long sys_chmod         /* 15 */
<a name=L592 href="source/arch/i386/kernel/entry.S#L592">592</a>         .long sys_lchown16
<a name=L593 href="source/arch/i386/kernel/entry.S#L593">593</a>         .long sys_ni_syscall    /* old break syscall holder */
<a name=L594 href="source/arch/i386/kernel/entry.S#L594">594</a>         .long sys_stat
<a name=L595 href="source/arch/i386/kernel/entry.S#L595">595</a>         .long sys_lseek
<a name=L596 href="source/arch/i386/kernel/entry.S#L596">596</a>         .long sys_getpid        /* 20 */
<a name=L597 href="source/arch/i386/kernel/entry.S#L597">597</a>         .long sys_mount
<a name=L598 href="source/arch/i386/kernel/entry.S#L598">598</a>         .long sys_oldumount
<a name=L599 href="source/arch/i386/kernel/entry.S#L599">599</a>         .long sys_setuid16
<a name=L600 href="source/arch/i386/kernel/entry.S#L600">600</a>         .long sys_getuid16
<a name=L601 href="source/arch/i386/kernel/entry.S#L601">601</a>         .long sys_stime         /* 25 */
<a name=L602 href="source/arch/i386/kernel/entry.S#L602">602</a>         .long sys_ptrace
<a name=L603 href="source/arch/i386/kernel/entry.S#L603">603</a>         .long sys_alarm
<a name=L604 href="source/arch/i386/kernel/entry.S#L604">604</a>         .long sys_fstat
<a name=L605 href="source/arch/i386/kernel/entry.S#L605">605</a>         .long sys_pause
<a name=L606 href="source/arch/i386/kernel/entry.S#L606">606</a>         .long sys_utime         /* 30 */
<a name=L607 href="source/arch/i386/kernel/entry.S#L607">607</a>         .long sys_ni_syscall    /* old stty syscall holder */
<a name=L608 href="source/arch/i386/kernel/entry.S#L608">608</a>         .long sys_ni_syscall    /* old gtty syscall holder */
<a name=L609 href="source/arch/i386/kernel/entry.S#L609">609</a>         .long sys_access
<a name=L610 href="source/arch/i386/kernel/entry.S#L610">610</a>         .long sys_nice
<a name=L611 href="source/arch/i386/kernel/entry.S#L611">611</a>         .long sys_ni_syscall    /* 35 - old ftime syscall holder */
<a name=L612 href="source/arch/i386/kernel/entry.S#L612">612</a>         .long sys_sync
<a name=L613 href="source/arch/i386/kernel/entry.S#L613">613</a>         .long sys_kill
<a name=L614 href="source/arch/i386/kernel/entry.S#L614">614</a>         .long sys_rename
<a name=L615 href="source/arch/i386/kernel/entry.S#L615">615</a>         .long sys_mkdir
<a name=L616 href="source/arch/i386/kernel/entry.S#L616">616</a>         .long sys_rmdir         /* 40 */
<a name=L617 href="source/arch/i386/kernel/entry.S#L617">617</a>         .long sys_dup
<a name=L618 href="source/arch/i386/kernel/entry.S#L618">618</a>         .long sys_pipe
<a name=L619 href="source/arch/i386/kernel/entry.S#L619">619</a>         .long sys_times
<a name=L620 href="source/arch/i386/kernel/entry.S#L620">620</a>         .long sys_ni_syscall    /* old prof syscall holder */
<a name=L621 href="source/arch/i386/kernel/entry.S#L621">621</a>         .long sys_brk           /* 45 */
<a name=L622 href="source/arch/i386/kernel/entry.S#L622">622</a>         .long sys_setgid16
<a name=L623 href="source/arch/i386/kernel/entry.S#L623">623</a>         .long sys_getgid16
<a name=L624 href="source/arch/i386/kernel/entry.S#L624">624</a>         .long sys_signal
<a name=L625 href="source/arch/i386/kernel/entry.S#L625">625</a>         .long sys_geteuid16
<a name=L626 href="source/arch/i386/kernel/entry.S#L626">626</a>         .long sys_getegid16     /* 50 */
<a name=L627 href="source/arch/i386/kernel/entry.S#L627">627</a>         .long sys_acct
<a name=L628 href="source/arch/i386/kernel/entry.S#L628">628</a>         .long sys_umount        /* recycled never used phys() */
<a name=L629 href="source/arch/i386/kernel/entry.S#L629">629</a>         .long sys_ni_syscall    /* old lock syscall holder */
<a name=L630 href="source/arch/i386/kernel/entry.S#L630">630</a>         .long sys_ioctl
<a name=L631 href="source/arch/i386/kernel/entry.S#L631">631</a>         .long sys_fcntl         /* 55 */
<a name=L632 href="source/arch/i386/kernel/entry.S#L632">632</a>         .long sys_ni_syscall    /* old mpx syscall holder */
<a name=L633 href="source/arch/i386/kernel/entry.S#L633">633</a>         .long sys_setpgid
<a name=L634 href="source/arch/i386/kernel/entry.S#L634">634</a>         .long sys_ni_syscall    /* old ulimit syscall holder */
<a name=L635 href="source/arch/i386/kernel/entry.S#L635">635</a>         .long sys_olduname
<a name=L636 href="source/arch/i386/kernel/entry.S#L636">636</a>         .long sys_umask         /* 60 */
<a name=L637 href="source/arch/i386/kernel/entry.S#L637">637</a>         .long sys_chroot
<a name=L638 href="source/arch/i386/kernel/entry.S#L638">638</a>         .long sys_ustat
<a name=L639 href="source/arch/i386/kernel/entry.S#L639">639</a>         .long sys_dup2
<a name=L640 href="source/arch/i386/kernel/entry.S#L640">640</a>         .long sys_getppid
<a name=L641 href="source/arch/i386/kernel/entry.S#L641">641</a>         .long sys_getpgrp       /* 65 */
<a name=L642 href="source/arch/i386/kernel/entry.S#L642">642</a>         .long sys_setsid
<a name=L643 href="source/arch/i386/kernel/entry.S#L643">643</a>         .long sys_sigaction
<a name=L644 href="source/arch/i386/kernel/entry.S#L644">644</a>         .long sys_sgetmask
<a name=L645 href="source/arch/i386/kernel/entry.S#L645">645</a>         .long sys_ssetmask
<a name=L646 href="source/arch/i386/kernel/entry.S#L646">646</a>         .long sys_setreuid16    /* 70 */
<a name=L647 href="source/arch/i386/kernel/entry.S#L647">647</a>         .long sys_setregid16
<a name=L648 href="source/arch/i386/kernel/entry.S#L648">648</a>         .long sys_sigsuspend
<a name=L649 href="source/arch/i386/kernel/entry.S#L649">649</a>         .long sys_sigpending
<a name=L650 href="source/arch/i386/kernel/entry.S#L650">650</a>         .long sys_sethostname
<a name=L651 href="source/arch/i386/kernel/entry.S#L651">651</a>         .long sys_setrlimit     /* 75 */
<a name=L652 href="source/arch/i386/kernel/entry.S#L652">652</a>         .long sys_old_getrlimit
<a name=L653 href="source/arch/i386/kernel/entry.S#L653">653</a>         .long sys_getrusage
<a name=L654 href="source/arch/i386/kernel/entry.S#L654">654</a>         .long sys_gettimeofday
<a name=L655 href="source/arch/i386/kernel/entry.S#L655">655</a>         .long sys_settimeofday
<a name=L656 href="source/arch/i386/kernel/entry.S#L656">656</a>         .long sys_getgroups16   /* 80 */
<a name=L657 href="source/arch/i386/kernel/entry.S#L657">657</a>         .long sys_setgroups16
<a name=L658 href="source/arch/i386/kernel/entry.S#L658">658</a>         .long old_select
<a name=L659 href="source/arch/i386/kernel/entry.S#L659">659</a>         .long sys_symlink
<a name=L660 href="source/arch/i386/kernel/entry.S#L660">660</a>         .long sys_lstat
<a name=L661 href="source/arch/i386/kernel/entry.S#L661">661</a>         .long sys_readlink      /* 85 */
<a name=L662 href="source/arch/i386/kernel/entry.S#L662">662</a>         .long sys_uselib
<a name=L663 href="source/arch/i386/kernel/entry.S#L663">663</a>         .long sys_swapon
<a name=L664 href="source/arch/i386/kernel/entry.S#L664">664</a>         .long sys_reboot
<a name=L665 href="source/arch/i386/kernel/entry.S#L665">665</a>         .long old_readdir
<a name=L666 href="source/arch/i386/kernel/entry.S#L666">666</a>         .long old_mmap          /* 90 */
<a name=L667 href="source/arch/i386/kernel/entry.S#L667">667</a>         .long sys_munmap
<a name=L668 href="source/arch/i386/kernel/entry.S#L668">668</a>         .long sys_truncate
<a name=L669 href="source/arch/i386/kernel/entry.S#L669">669</a>         .long sys_ftruncate
<a name=L670 href="source/arch/i386/kernel/entry.S#L670">670</a>         .long sys_fchmod
<a name=L671 href="source/arch/i386/kernel/entry.S#L671">671</a>         .long sys_fchown16      /* 95 */
<a name=L672 href="source/arch/i386/kernel/entry.S#L672">672</a>         .long sys_getpriority
<a name=L673 href="source/arch/i386/kernel/entry.S#L673">673</a>         .long sys_setpriority
<a name=L674 href="source/arch/i386/kernel/entry.S#L674">674</a>         .long sys_ni_syscall    /* old profil syscall holder */
<a name=L675 href="source/arch/i386/kernel/entry.S#L675">675</a>         .long sys_statfs
<a name=L676 href="source/arch/i386/kernel/entry.S#L676">676</a>         .long sys_fstatfs       /* 100 */
<a name=L677 href="source/arch/i386/kernel/entry.S#L677">677</a>         .long sys_ioperm
<a name=L678 href="source/arch/i386/kernel/entry.S#L678">678</a>         .long sys_socketcall
<a name=L679 href="source/arch/i386/kernel/entry.S#L679">679</a>         .long sys_syslog
<a name=L680 href="source/arch/i386/kernel/entry.S#L680">680</a>         .long sys_setitimer
<a name=L681 href="source/arch/i386/kernel/entry.S#L681">681</a>         .long sys_getitimer     /* 105 */
<a name=L682 href="source/arch/i386/kernel/entry.S#L682">682</a>         .long sys_newstat
<a name=L683 href="source/arch/i386/kernel/entry.S#L683">683</a>         .long sys_newlstat
<a name=L684 href="source/arch/i386/kernel/entry.S#L684">684</a>         .long sys_newfstat
<a name=L685 href="source/arch/i386/kernel/entry.S#L685">685</a>         .long sys_uname
<a name=L686 href="source/arch/i386/kernel/entry.S#L686">686</a>         .long sys_iopl          /* 110 */
<a name=L687 href="source/arch/i386/kernel/entry.S#L687">687</a>         .long sys_vhangup
<a name=L688 href="source/arch/i386/kernel/entry.S#L688">688</a>         .long sys_ni_syscall    /* old "idle" system call */
<a name=L689 href="source/arch/i386/kernel/entry.S#L689">689</a>         .long sys_vm86old
<a name=L690 href="source/arch/i386/kernel/entry.S#L690">690</a>         .long sys_wait4
<a name=L691 href="source/arch/i386/kernel/entry.S#L691">691</a>         .long sys_swapoff       /* 115 */
<a name=L692 href="source/arch/i386/kernel/entry.S#L692">692</a>         .long sys_sysinfo
<a name=L693 href="source/arch/i386/kernel/entry.S#L693">693</a>         .long sys_ipc
<a name=L694 href="source/arch/i386/kernel/entry.S#L694">694</a>         .long sys_fsync
<a name=L695 href="source/arch/i386/kernel/entry.S#L695">695</a>         .long sys_sigreturn
<a name=L696 href="source/arch/i386/kernel/entry.S#L696">696</a>         .long sys_clone         /* 120 */
<a name=L697 href="source/arch/i386/kernel/entry.S#L697">697</a>         .long sys_setdomainname
<a name=L698 href="source/arch/i386/kernel/entry.S#L698">698</a>         .long sys_newuname
<a name=L699 href="source/arch/i386/kernel/entry.S#L699">699</a>         .long sys_modify_ldt
<a name=L700 href="source/arch/i386/kernel/entry.S#L700">700</a>         .long sys_adjtimex
<a name=L701 href="source/arch/i386/kernel/entry.S#L701">701</a>         .long sys_mprotect      /* 125 */
<a name=L702 href="source/arch/i386/kernel/entry.S#L702">702</a>         .long sys_sigprocmask
<a name=L703 href="source/arch/i386/kernel/entry.S#L703">703</a>         .long sys_ni_syscall    /* old "create_module" */ 
<a name=L704 href="source/arch/i386/kernel/entry.S#L704">704</a>         .long sys_init_module
<a name=L705 href="source/arch/i386/kernel/entry.S#L705">705</a>         .long sys_delete_module
<a name=L706 href="source/arch/i386/kernel/entry.S#L706">706</a>         .long sys_ni_syscall    /* 130: old "get_kernel_syms" */
<a name=L707 href="source/arch/i386/kernel/entry.S#L707">707</a>         .long sys_quotactl
<a name=L708 href="source/arch/i386/kernel/entry.S#L708">708</a>         .long sys_getpgid
<a name=L709 href="source/arch/i386/kernel/entry.S#L709">709</a>         .long sys_fchdir
<a name=L710 href="source/arch/i386/kernel/entry.S#L710">710</a>         .long sys_bdflush
<a name=L711 href="source/arch/i386/kernel/entry.S#L711">711</a>         .long sys_sysfs         /* 135 */
<a name=L712 href="source/arch/i386/kernel/entry.S#L712">712</a>         .long sys_personality
<a name=L713 href="source/arch/i386/kernel/entry.S#L713">713</a>         .long sys_ni_syscall    /* reserved for afs_syscall */
<a name=L714 href="source/arch/i386/kernel/entry.S#L714">714</a>         .long sys_setfsuid16
<a name=L715 href="source/arch/i386/kernel/entry.S#L715">715</a>         .long sys_setfsgid16
<a name=L716 href="source/arch/i386/kernel/entry.S#L716">716</a>         .long sys_llseek        /* 140 */
<a name=L717 href="source/arch/i386/kernel/entry.S#L717">717</a>         .long sys_getdents
<a name=L718 href="source/arch/i386/kernel/entry.S#L718">718</a>         .long sys_select
<a name=L719 href="source/arch/i386/kernel/entry.S#L719">719</a>         .long sys_flock
<a name=L720 href="source/arch/i386/kernel/entry.S#L720">720</a>         .long sys_msync
<a name=L721 href="source/arch/i386/kernel/entry.S#L721">721</a>         .long sys_readv         /* 145 */
<a name=L722 href="source/arch/i386/kernel/entry.S#L722">722</a>         .long sys_writev
<a name=L723 href="source/arch/i386/kernel/entry.S#L723">723</a>         .long sys_getsid
<a name=L724 href="source/arch/i386/kernel/entry.S#L724">724</a>         .long sys_fdatasync
<a name=L725 href="source/arch/i386/kernel/entry.S#L725">725</a>         .long sys_sysctl
<a name=L726 href="source/arch/i386/kernel/entry.S#L726">726</a>         .long sys_mlock         /* 150 */
<a name=L727 href="source/arch/i386/kernel/entry.S#L727">727</a>         .long sys_munlock
<a name=L728 href="source/arch/i386/kernel/entry.S#L728">728</a>         .long sys_mlockall
<a name=L729 href="source/arch/i386/kernel/entry.S#L729">729</a>         .long sys_munlockall
<a name=L730 href="source/arch/i386/kernel/entry.S#L730">730</a>         .long sys_sched_setparam
<a name=L731 href="source/arch/i386/kernel/entry.S#L731">731</a>         .long sys_sched_getparam   /* 155 */
<a name=L732 href="source/arch/i386/kernel/entry.S#L732">732</a>         .long sys_sched_setscheduler
<a name=L733 href="source/arch/i386/kernel/entry.S#L733">733</a>         .long sys_sched_getscheduler
<a name=L734 href="source/arch/i386/kernel/entry.S#L734">734</a>         .long sys_sched_yield
<a name=L735 href="source/arch/i386/kernel/entry.S#L735">735</a>         .long sys_sched_get_priority_max
<a name=L736 href="source/arch/i386/kernel/entry.S#L736">736</a>         .long sys_sched_get_priority_min  /* 160 */
<a name=L737 href="source/arch/i386/kernel/entry.S#L737">737</a>         .long sys_sched_rr_get_interval
<a name=L738 href="source/arch/i386/kernel/entry.S#L738">738</a>         .long sys_nanosleep
<a name=L739 href="source/arch/i386/kernel/entry.S#L739">739</a>         .long sys_mremap
<a name=L740 href="source/arch/i386/kernel/entry.S#L740">740</a>         .long sys_setresuid16
<a name=L741 href="source/arch/i386/kernel/entry.S#L741">741</a>         .long sys_getresuid16   /* 165 */
<a name=L742 href="source/arch/i386/kernel/entry.S#L742">742</a>         .long sys_vm86
<a name=L743 href="source/arch/i386/kernel/entry.S#L743">743</a>         .long sys_ni_syscall    /* Old sys_query_module */
<a name=L744 href="source/arch/i386/kernel/entry.S#L744">744</a>         .long sys_poll
<a name=L745 href="source/arch/i386/kernel/entry.S#L745">745</a>         .long sys_nfsservctl
<a name=L746 href="source/arch/i386/kernel/entry.S#L746">746</a>         .long sys_setresgid16   /* 170 */
<a name=L747 href="source/arch/i386/kernel/entry.S#L747">747</a>         .long sys_getresgid16
<a name=L748 href="source/arch/i386/kernel/entry.S#L748">748</a>         .long sys_prctl
<a name=L749 href="source/arch/i386/kernel/entry.S#L749">749</a>         .long sys_rt_sigreturn
<a name=L750 href="source/arch/i386/kernel/entry.S#L750">750</a>         .long sys_rt_sigaction
<a name=L751 href="source/arch/i386/kernel/entry.S#L751">751</a>         .long sys_rt_sigprocmask        /* 175 */
<a name=L752 href="source/arch/i386/kernel/entry.S#L752">752</a>         .long sys_rt_sigpending
<a name=L753 href="source/arch/i386/kernel/entry.S#L753">753</a>         .long sys_rt_sigtimedwait
<a name=L754 href="source/arch/i386/kernel/entry.S#L754">754</a>         .long sys_rt_sigqueueinfo
<a name=L755 href="source/arch/i386/kernel/entry.S#L755">755</a>         .long sys_rt_sigsuspend
<a name=L756 href="source/arch/i386/kernel/entry.S#L756">756</a>         .long sys_pread64       /* 180 */
<a name=L757 href="source/arch/i386/kernel/entry.S#L757">757</a>         .long sys_pwrite64
<a name=L758 href="source/arch/i386/kernel/entry.S#L758">758</a>         .long sys_chown16
<a name=L759 href="source/arch/i386/kernel/entry.S#L759">759</a>         .long sys_getcwd
<a name=L760 href="source/arch/i386/kernel/entry.S#L760">760</a>         .long sys_capget
<a name=L761 href="source/arch/i386/kernel/entry.S#L761">761</a>         .long sys_capset        /* 185 */
<a name=L762 href="source/arch/i386/kernel/entry.S#L762">762</a>         .long sys_sigaltstack
<a name=L763 href="source/arch/i386/kernel/entry.S#L763">763</a>         .long sys_sendfile
<a name=L764 href="source/arch/i386/kernel/entry.S#L764">764</a>         .long sys_ni_syscall    /* reserved for streams1 */
<a name=L765 href="source/arch/i386/kernel/entry.S#L765">765</a>         .long sys_ni_syscall    /* reserved for streams2 */
<a name=L766 href="source/arch/i386/kernel/entry.S#L766">766</a>         .long sys_vfork         /* 190 */
<a name=L767 href="source/arch/i386/kernel/entry.S#L767">767</a>         .long sys_getrlimit
<a name=L768 href="source/arch/i386/kernel/entry.S#L768">768</a>         .long sys_mmap2
<a name=L769 href="source/arch/i386/kernel/entry.S#L769">769</a>         .long sys_truncate64
<a name=L770 href="source/arch/i386/kernel/entry.S#L770">770</a>         .long sys_ftruncate64
<a name=L771 href="source/arch/i386/kernel/entry.S#L771">771</a>         .long sys_stat64        /* 195 */
<a name=L772 href="source/arch/i386/kernel/entry.S#L772">772</a>         .long sys_lstat64
<a name=L773 href="source/arch/i386/kernel/entry.S#L773">773</a>         .long sys_fstat64
<a name=L774 href="source/arch/i386/kernel/entry.S#L774">774</a>         .long sys_lchown
<a name=L775 href="source/arch/i386/kernel/entry.S#L775">775</a>         .long sys_getuid
<a name=L776 href="source/arch/i386/kernel/entry.S#L776">776</a>         .long sys_getgid        /* 200 */
<a name=L777 href="source/arch/i386/kernel/entry.S#L777">777</a>         .long sys_geteuid
<a name=L778 href="source/arch/i386/kernel/entry.S#L778">778</a>         .long sys_getegid
<a name=L779 href="source/arch/i386/kernel/entry.S#L779">779</a>         .long sys_setreuid
<a name=L780 href="source/arch/i386/kernel/entry.S#L780">780</a>         .long sys_setregid
<a name=L781 href="source/arch/i386/kernel/entry.S#L781">781</a>         .long sys_getgroups     /* 205 */
<a name=L782 href="source/arch/i386/kernel/entry.S#L782">782</a>         .long sys_setgroups
<a name=L783 href="source/arch/i386/kernel/entry.S#L783">783</a>         .long sys_fchown
<a name=L784 href="source/arch/i386/kernel/entry.S#L784">784</a>         .long sys_setresuid
<a name=L785 href="source/arch/i386/kernel/entry.S#L785">785</a>         .long sys_getresuid
<a name=L786 href="source/arch/i386/kernel/entry.S#L786">786</a>         .long sys_setresgid     /* 210 */
<a name=L787 href="source/arch/i386/kernel/entry.S#L787">787</a>         .long sys_getresgid
<a name=L788 href="source/arch/i386/kernel/entry.S#L788">788</a>         .long sys_chown
<a name=L789 href="source/arch/i386/kernel/entry.S#L789">789</a>         .long sys_setuid
<a name=L790 href="source/arch/i386/kernel/entry.S#L790">790</a>         .long sys_setgid
<a name=L791 href="source/arch/i386/kernel/entry.S#L791">791</a>         .long sys_setfsuid      /* 215 */
<a name=L792 href="source/arch/i386/kernel/entry.S#L792">792</a>         .long sys_setfsgid
<a name=L793 href="source/arch/i386/kernel/entry.S#L793">793</a>         .long sys_pivot_root
<a name=L794 href="source/arch/i386/kernel/entry.S#L794">794</a>         .long sys_mincore
<a name=L795 href="source/arch/i386/kernel/entry.S#L795">795</a>         .long sys_madvise
<a name=L796 href="source/arch/i386/kernel/entry.S#L796">796</a>         .long sys_getdents64    /* 220 */
<a name=L797 href="source/arch/i386/kernel/entry.S#L797">797</a>         .long sys_fcntl64
<a name=L798 href="source/arch/i386/kernel/entry.S#L798">798</a>         .long sys_ni_syscall    /* reserved for TUX */
<a name=L799 href="source/arch/i386/kernel/entry.S#L799">799</a>         .long sys_ni_syscall
<a name=L800 href="source/arch/i386/kernel/entry.S#L800">800</a>         .long sys_gettid
<a name=L801 href="source/arch/i386/kernel/entry.S#L801">801</a>         .long sys_readahead     /* 225 */
<a name=L802 href="source/arch/i386/kernel/entry.S#L802">802</a>         .long sys_setxattr
<a name=L803 href="source/arch/i386/kernel/entry.S#L803">803</a>         .long sys_lsetxattr
<a name=L804 href="source/arch/i386/kernel/entry.S#L804">804</a>         .long sys_fsetxattr
<a name=L805 href="source/arch/i386/kernel/entry.S#L805">805</a>         .long sys_getxattr
<a name=L806 href="source/arch/i386/kernel/entry.S#L806">806</a>         .long sys_lgetxattr     /* 230 */
<a name=L807 href="source/arch/i386/kernel/entry.S#L807">807</a>         .long sys_fgetxattr
<a name=L808 href="source/arch/i386/kernel/entry.S#L808">808</a>         .long sys_listxattr
<a name=L809 href="source/arch/i386/kernel/entry.S#L809">809</a>         .long sys_llistxattr
<a name=L810 href="source/arch/i386/kernel/entry.S#L810">810</a>         .long sys_flistxattr
<a name=L811 href="source/arch/i386/kernel/entry.S#L811">811</a>         .long sys_removexattr   /* 235 */
<a name=L812 href="source/arch/i386/kernel/entry.S#L812">812</a>         .long sys_lremovexattr
<a name=L813 href="source/arch/i386/kernel/entry.S#L813">813</a>         .long sys_fremovexattr
<a name=L814 href="source/arch/i386/kernel/entry.S#L814">814</a>         .long sys_tkill
<a name=L815 href="source/arch/i386/kernel/entry.S#L815">815</a>         .long sys_sendfile64
<a name=L816 href="source/arch/i386/kernel/entry.S#L816">816</a>         .long sys_futex         /* 240 */
<a name=L817 href="source/arch/i386/kernel/entry.S#L817">817</a>         .long sys_sched_setaffinity
<a name=L818 href="source/arch/i386/kernel/entry.S#L818">818</a>         .long sys_sched_getaffinity
<a name=L819 href="source/arch/i386/kernel/entry.S#L819">819</a>         .long sys_set_thread_area
<a name=L820 href="source/arch/i386/kernel/entry.S#L820">820</a>         .long sys_get_thread_area
<a name=L821 href="source/arch/i386/kernel/entry.S#L821">821</a>         .long sys_io_setup      /* 245 */
<a name=L822 href="source/arch/i386/kernel/entry.S#L822">822</a>         .long sys_io_destroy
<a name=L823 href="source/arch/i386/kernel/entry.S#L823">823</a>         .long sys_io_getevents
<a name=L824 href="source/arch/i386/kernel/entry.S#L824">824</a>         .long sys_io_submit
<a name=L825 href="source/arch/i386/kernel/entry.S#L825">825</a>         .long sys_io_cancel
<a name=L826 href="source/arch/i386/kernel/entry.S#L826">826</a>         .long sys_fadvise64     /* 250 */
<a name=L827 href="source/arch/i386/kernel/entry.S#L827">827</a>         .long sys_ni_syscall
<a name=L828 href="source/arch/i386/kernel/entry.S#L828">828</a>         .long sys_exit_group
<a name=L829 href="source/arch/i386/kernel/entry.S#L829">829</a>         .long sys_lookup_dcookie
<a name=L830 href="source/arch/i386/kernel/entry.S#L830">830</a>         .long sys_epoll_create
<a name=L831 href="source/arch/i386/kernel/entry.S#L831">831</a>         .long sys_epoll_ctl     /* 255 */
<a name=L832 href="source/arch/i386/kernel/entry.S#L832">832</a>         .long sys_epoll_wait
<a name=L833 href="source/arch/i386/kernel/entry.S#L833">833</a>         .long sys_remap_file_pages
<a name=L834 href="source/arch/i386/kernel/entry.S#L834">834</a>         .long sys_set_tid_address
<a name=L835 href="source/arch/i386/kernel/entry.S#L835">835</a>         .long sys_timer_create
<a name=L836 href="source/arch/i386/kernel/entry.S#L836">836</a>         .long sys_timer_settime         /* 260 */
<a name=L837 href="source/arch/i386/kernel/entry.S#L837">837</a>         .long sys_timer_gettime
<a name=L838 href="source/arch/i386/kernel/entry.S#L838">838</a>         .long sys_timer_getoverrun
<a name=L839 href="source/arch/i386/kernel/entry.S#L839">839</a>         .long sys_timer_delete
<a name=L840 href="source/arch/i386/kernel/entry.S#L840">840</a>         .long sys_clock_settime
<a name=L841 href="source/arch/i386/kernel/entry.S#L841">841</a>         .long sys_clock_gettime         /* 265 */
<a name=L842 href="source/arch/i386/kernel/entry.S#L842">842</a>         .long sys_clock_getres
<a name=L843 href="source/arch/i386/kernel/entry.S#L843">843</a>         .long sys_clock_nanosleep
<a name=L844 href="source/arch/i386/kernel/entry.S#L844">844</a>         .long sys_statfs64
<a name=L845 href="source/arch/i386/kernel/entry.S#L845">845</a>         .long sys_fstatfs64     
<a name=L846 href="source/arch/i386/kernel/entry.S#L846">846</a>         .long sys_tgkill        /* 270 */
<a name=L847 href="source/arch/i386/kernel/entry.S#L847">847</a>         .long sys_utimes
<a name=L848 href="source/arch/i386/kernel/entry.S#L848">848</a>         .long sys_fadvise64_64
<a name=L849 href="source/arch/i386/kernel/entry.S#L849">849</a>         .long sys_ni_syscall    /* sys_vserver */
<a name=L850 href="source/arch/i386/kernel/entry.S#L850">850</a>         .long sys_mbind
<a name=L851 href="source/arch/i386/kernel/entry.S#L851">851</a>         .long sys_get_mempolicy
<a name=L852 href="source/arch/i386/kernel/entry.S#L852">852</a>         .long sys_set_mempolicy
<a name=L853 href="source/arch/i386/kernel/entry.S#L853">853</a>         .long sys_mq_open
<a name=L854 href="source/arch/i386/kernel/entry.S#L854">854</a>         .long sys_mq_unlink
<a name=L855 href="source/arch/i386/kernel/entry.S#L855">855</a>         .long sys_mq_timedsend
<a name=L856 href="source/arch/i386/kernel/entry.S#L856">856</a>         .long sys_mq_timedreceive       /* 280 */
<a name=L857 href="source/arch/i386/kernel/entry.S#L857">857</a>         .long sys_mq_notify
<a name=L858 href="source/arch/i386/kernel/entry.S#L858">858</a>         .long sys_mq_getsetattr
<a name=L859 href="source/arch/i386/kernel/entry.S#L859">859</a>         .long sys_ni_syscall            /* reserved for kexec */
<a name=L860 href="source/arch/i386/kernel/entry.S#L860">860</a>         .long sys_waitid
<a name=L861 href="source/arch/i386/kernel/entry.S#L861">861</a>         .long sys_ni_syscall            /* 285 */ /* available */
<a name=L862 href="source/arch/i386/kernel/entry.S#L862">862</a>         .long sys_add_key
<a name=L863 href="source/arch/i386/kernel/entry.S#L863">863</a>         .long sys_request_key
<a name=L864 href="source/arch/i386/kernel/entry.S#L864">864</a>         .long sys_keyctl
<a name=L865 href="source/arch/i386/kernel/entry.S#L865">865</a> 
<a name=L866 href="source/arch/i386/kernel/entry.S#L866">866</a> syscall_table_size=(.-sys_call_table)
</pre><hr>
<table width="100%" cellpadding=0 border=0>
  <tr valign=middle>
    
    <td align=center nowrap>
      [&nbsp;<b><i>source navigation</i></b>&nbsp;]</td>
    <td align=center nowrap>
      [&nbsp;<a href="diff/arch/i386/kernel/entry.S">diff markup</a>&nbsp;]</td>
    <td align=center nowrap>
      [&nbsp;<a href="ident">identifier search</a>&nbsp;]</td>
    <td align=center nowrap>
      [&nbsp;<a href="search">freetext search</a>&nbsp;]</td>
    <td align=center nowrap>
      [&nbsp;<a href="find">file search</a>&nbsp;]</td>
  </tr>
</table>
<hr>
<table width="100%" cellpadding=0 border=0>
  <tr>
    <td align=left>
      This page was automatically generated by the 
      <a href="/blurb.html">LXR engine</a>.
      <address>
        <a href="mailto:lxr@linux.no">
          Arne Georg Gleditsch and Per Kristian Gjermshus
	  &lt;lxr@linux.no&gt;</a>
      </address>
    </td>
    <td align=right>
      <a href="http://ugweb.cs.ualberta.ca/~gerald/validate/?url=http://lxr.linux.no:80/source/arch/i386/kernel/entry.S%3f">
        <img src="/valid_html3.2.gif" border=0
           alt="HTML 3.2 Checked!">
      </a>
    </td>
  </tr>
</table>
</body>
</html>
