>>>>> Marin Ramesa <[email protected]> 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