[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC] [PATCH 0/5] linux-user: refactor do_syscall()
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [RFC] [PATCH 0/5] linux-user: refactor do_syscall() |
Date: |
Sat, 13 Oct 2012 10:09:45 +0000 |
On Fri, Oct 12, 2012 at 6:24 PM, <address@hidden> wrote:
> From: Riku Voipio <address@hidden>
>
> Currently linux-user handles system calls with a 3000+ line switch/case
> construct
> in do_syscall(). Some syscalls are implemented inline in the switch/case,
> others
> as separate functions, and the rest as mix of both.
>
> As the first step of the cleanup, I'd like to move implementation of each
> syscall
> completely to their own functions. While at it, we define more standard
> interface between
> do_syscall() and the functions implementing the system calls: system call
> functions take
> parameter as raw abi_long, and leave the host to target errno conversion to
> do_syscall.
>
> Once all syscall are converted to separate functions, we can convert to
> switch/case to
> a table with syscall structs pointing to syscall implementation as well the
> strace definitions
> currently in strace.list.
>
> Before I proceed to convert all 300+ syscalls implemented, I'd like to hear
> if people think
> it is a good idea, or if you have some improvements to suggest. To see how it
> would look in
> practice, here are the first five syscalls cleaned up.
I think it will be a nice cleanup. However, please fix coding style
for the affected code.
>
> Riku Voipio (5):
> linux-user: move exit to own function
> linux-user: move read to own function
> linux-user: move write to own function
> linux-user: complete do_open function isolation
> linux-user: do_openat wrapper added
>
> linux-user/syscall.c | 182
> +++++++++++++++++++++++++++++---------------------
> 1 file changed, 106 insertions(+), 76 deletions(-)
>
> --
> 1.7.9.5
>
>
- [Qemu-devel] [RFC] [PATCH 0/5] linux-user: refactor do_syscall(), riku . voipio, 2012/10/12
- [Qemu-devel] [PATCH 4/5] linux-user: complete do_open function isolation, riku . voipio, 2012/10/12
- [Qemu-devel] [PATCH 5/5] linux-user: do_openat wrapper added, riku . voipio, 2012/10/12
- [Qemu-devel] [PATCH 1/5] linux-user: move exit to own function, riku . voipio, 2012/10/12
- [Qemu-devel] [PATCH 2/5] linux-user: move read to own function, riku . voipio, 2012/10/12
- [Qemu-devel] [PATCH 3/5] linux-user: move write to own function, riku . voipio, 2012/10/12
- Re: [Qemu-devel] [RFC] [PATCH 0/5] linux-user: refactor do_syscall(), Richard Henderson, 2012/10/12
- Re: [Qemu-devel] [RFC] [PATCH 0/5] linux-user: refactor do_syscall(),
Blue Swirl <=