Skip to content
  • Aleksandar Markovic's avatar
    19f59bce
    linux-user: Add support for adjtimex() syscall · 19f59bce
    Aleksandar Markovic authored
    
    
    This patch implements Qemu user mode adjtimex() syscall support.
    
    Syscall adjtimex() reads and optionally sets parameters for a clock
    adjustment algorithm used in network synchonization or similar scenarios.
    
    Its declaration is:
    
    int adjtimex(struct timex *buf);
    
    The correspondent source code in the Linux kernel is at kernel/time.c,
    line 206.
    
    The Qemu implementation is based on invocation of host's adjtimex(), and
    its key part is in the "TARGET_NR_adjtimex" case segment of the the main
    switch statement of the function do_syscall(), in linux-user/syscalls.c. All
    necessary conversions of the data structures from target to host and from
    host to target are covered. Two new functions, target_to_host_timex() and
    host_to_target_timex(), are provided for the purpose of such conversions.
    For that purpose, the support for related structure "timex" had tp be added
    to the file linux-user/syscall_defs.h, based on its definition in Linux
    kernel. Also, the relevant support for "-strace" Qemu option is included
    in files linux-user/strace.c and linux-user/strace.list.
    
    This patch also fixes failures of LTP tests adjtimex01 and adjtimex02, if
    executed in Qemu user mode.
    
    Signed-off-by: default avatarAleksandar Rikalo <aleksandar.rikalo@imgtec.com>
    Signed-off-by: default avatarAleksandar Markovic <aleksandar.markovic@imgtec.com>
    Signed-off-by: default avatarRiku Voipio <riku.voipio@linaro.org>
    19f59bce
    linux-user: Add support for adjtimex() syscall
    Aleksandar Markovic authored
    
    
    This patch implements Qemu user mode adjtimex() syscall support.
    
    Syscall adjtimex() reads and optionally sets parameters for a clock
    adjustment algorithm used in network synchonization or similar scenarios.
    
    Its declaration is:
    
    int adjtimex(struct timex *buf);
    
    The correspondent source code in the Linux kernel is at kernel/time.c,
    line 206.
    
    The Qemu implementation is based on invocation of host's adjtimex(), and
    its key part is in the "TARGET_NR_adjtimex" case segment of the the main
    switch statement of the function do_syscall(), in linux-user/syscalls.c. All
    necessary conversions of the data structures from target to host and from
    host to target are covered. Two new functions, target_to_host_timex() and
    host_to_target_timex(), are provided for the purpose of such conversions.
    For that purpose, the support for related structure "timex" had tp be added
    to the file linux-user/syscall_defs.h, based on its definition in Linux
    kernel. Also, the relevant support for "-strace" Qemu option is included
    in files linux-user/strace.c and linux-user/strace.list.
    
    This patch also fixes failures of LTP tests adjtimex01 and adjtimex02, if
    executed in Qemu user mode.
    
    Signed-off-by: default avatarAleksandar Rikalo <aleksandar.rikalo@imgtec.com>
    Signed-off-by: default avatarAleksandar Markovic <aleksandar.markovic@imgtec.com>
    Signed-off-by: default avatarRiku Voipio <riku.voipio@linaro.org>
Loading