>>>>> Marin Ramesa <m...@hi.t-com.hr> writes:

 > * i386/i386/ldt.c (syscall): Remove forward declaration.
 > (syscall): New variable.

[…]

 >  #include "ldt.h"

 > -extern int syscall();
 > -
 >  #ifdef      MACH_PV_DESCRIPTORS
 >  /* It is actually defined in xen_boothdr.S */
 >  extern
 > @@ -60,6 +58,7 @@ ldt_init()
 >  #endif      /* MACH_PV_DESCRIPTORS */

 >      /* Initialize the LDT descriptors.  */
 > +    int syscall;
 >      fill_ldt_gate(USER_SCALL,
 >                    (vm_offset_t)&syscall, KERNEL_CS,
 >                    ACC_PL_U|ACC_CALL_GATE, 0);

        Correct me if I’m wrong, but doesn’t it replace a pointer to an
        global (external) syscall () function with a pointer to a local
        variable?  I don’t seem to understand how the logic is preserved
        in this change.

-- 
FSF associate member #7257

Reply via email to