Skip to content
  • Filip Bozuta's avatar
    f4d92c5e
    linux-user: Add strace support for printing arguments of fallocate() · f4d92c5e
    Filip Bozuta authored
    This patch implements strace argument printing functionality for following syscall:
    
        *fallocate - manipulate file space
    
            int fallocate(int fd, int mode, off_t offset, off_t len)
            man page: https://www.man7.org/linux/man-pages/man2/fallocate.2.html
    
    
    
    Implementation notes:
    
        This syscall's second argument "mode" is composed of predefined values
        which represent flags that determine the type of operation that is
        to be performed on the file space. For that reason, a printing
        function "print_fallocate" was stated in file "strace.list". This printing
        function uses an already existing function "print_flags()" to print flags of
        the "mode" argument. These flags are stated inside an array "falloc_flags"
        that contains values of type "struct flags". These values are instantiated
        using an existing macro "FLAG_GENERIC()". Most of these flags are defined
        after kernel version 3.0 which is why they are enwrapped in an #ifdef
        directive.
        The syscall's third ant fourth argument are of type "off_t" which can
        cause variations between 32/64-bit architectures. To handle this variation,
        function "target_offset64()" was copied from file "strace.c" and used in
        "print_fallocate" to print "off_t" arguments for 32-bit architectures.
    
    Signed-off-by: default avatarFilip Bozuta <Filip.Bozuta@syrmia.com>
    Reviewed-by: default avatarLaurent Vivier <laurent@vivier.eu>
    Message-Id: <20200619123331.17387-7-filip.bozuta@syrmia.com>
    Signed-off-by: default avatarLaurent Vivier <laurent@vivier.eu>
    f4d92c5e
    linux-user: Add strace support for printing arguments of fallocate()
    Filip Bozuta authored
    This patch implements strace argument printing functionality for following syscall:
    
        *fallocate - manipulate file space
    
            int fallocate(int fd, int mode, off_t offset, off_t len)
            man page: https://www.man7.org/linux/man-pages/man2/fallocate.2.html
    
    
    
    Implementation notes:
    
        This syscall's second argument "mode" is composed of predefined values
        which represent flags that determine the type of operation that is
        to be performed on the file space. For that reason, a printing
        function "print_fallocate" was stated in file "strace.list". This printing
        function uses an already existing function "print_flags()" to print flags of
        the "mode" argument. These flags are stated inside an array "falloc_flags"
        that contains values of type "struct flags". These values are instantiated
        using an existing macro "FLAG_GENERIC()". Most of these flags are defined
        after kernel version 3.0 which is why they are enwrapped in an #ifdef
        directive.
        The syscall's third ant fourth argument are of type "off_t" which can
        cause variations between 32/64-bit architectures. To handle this variation,
        function "target_offset64()" was copied from file "strace.c" and used in
        "print_fallocate" to print "off_t" arguments for 32-bit architectures.
    
    Signed-off-by: default avatarFilip Bozuta <Filip.Bozuta@syrmia.com>
    Reviewed-by: default avatarLaurent Vivier <laurent@vivier.eu>
    Message-Id: <20200619123331.17387-7-filip.bozuta@syrmia.com>
    Signed-off-by: default avatarLaurent Vivier <laurent@vivier.eu>
Loading