|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
Re: [Xen-devel] Using SYSCALL/SYSRET with a minios kernel
 
Daniel Stodden <stodden@xxxxxxxxxx> writes:
> Hi.
>
> On Mon, 2008-02-25 at 00:22 +0100, Goswin von Brederlow wrote: 
>> Hi,
>> 
>> I'm trying to use the SYSCALL/SYSRET opcodes with a minios kernel
>> without much success.
>...
> The PV interface simply does not support STAR/LSTAR. It's that
> simple. :) I suppose you want to implement system calls? Check the
> HYPERVISOR_set_callbacks() call. The syscall_address parameter presently
> remains entirely unused in mini-os. But as far as I could tell
> immediately from the source, syscall/sysret appears to be supported by
> the general callback mechanism the same way sysenter/sysleave presently
> is.
>
> regards,
> daniel
Ok, here is what I did for the callbacks:
--- x86_64.S ---
ENTRY(syscall_callback)
        int $80
        zeroentry do_syscall
--- kernel.c ---
  HYPERVISOR_set_callbacks((unsigned long)hypervisor_callback,
                           (unsigned long)failsafe_callback,
                           (unsigned long)syscall_callback);
  __asm__ __volatile__("syscall");
If I understood you right that should set the RIP to syscall_callback
and execute from there. But still, the syscall opcode does nothing.
In case you wonder. The "int $80" is there to crash the domain and
tell me it reached that point.
MfG
        Goswin
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 |   
 
 | 
    | 
  
  
    |   | 
    |