[PATCH] linux-user: fill out task state in /proc/self/stat

Andreas Schwab posted 1 patch 1 year, 1 month ago
linux-user/syscall.c | 3 +++
1 file changed, 3 insertions(+)
[PATCH] linux-user: fill out task state in /proc/self/stat
Posted by Andreas Schwab 1 year, 1 month ago
Some programs want to match an actual task state character.

Signed-off-by: Andreas Schwab <schwab@suse.de>
---
 linux-user/syscall.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 36fffd36ca..eb4c2c3162 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8127,6 +8127,9 @@ static int open_self_stat(CPUArchState *cpu_env, int fd)
             gchar *bin = g_strrstr(ts->bprm->argv[0], "/");
             bin = bin ? bin + 1 : ts->bprm->argv[0];
             g_string_printf(buf, "(%.15s) ", bin);
+        } else if (i == 2) {
+            /* task state */
+            g_string_assign(buf, "R "); /* we are running right now */
         } else if (i == 3) {
             /* ppid */
             g_string_printf(buf, FMT_pid " ", getppid());
-- 
2.39.1


-- 
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
Re: [PATCH] linux-user: fill out task state in /proc/self/stat
Posted by Laurent Vivier 1 year, 1 month ago
Le 06/03/2023 à 10:59, Andreas Schwab a écrit :
> Some programs want to match an actual task state character.
> 
> Signed-off-by: Andreas Schwab <schwab@suse.de>
> ---
>   linux-user/syscall.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 36fffd36ca..eb4c2c3162 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -8127,6 +8127,9 @@ static int open_self_stat(CPUArchState *cpu_env, int fd)
>               gchar *bin = g_strrstr(ts->bprm->argv[0], "/");
>               bin = bin ? bin + 1 : ts->bprm->argv[0];
>               g_string_printf(buf, "(%.15s) ", bin);
> +        } else if (i == 2) {
> +            /* task state */
> +            g_string_assign(buf, "R "); /* we are running right now */
>           } else if (i == 3) {
>               /* ppid */
>               g_string_printf(buf, FMT_pid " ", getppid());

Applied to my linux-user-for-8.0 branch.

Thanks,
Laurent


Re: [PATCH] linux-user: fill out task state in /proc/self/stat
Posted by Laurent Vivier 1 year, 1 month ago
Le 06/03/2023 à 10:59, Andreas Schwab a écrit :
> Some programs want to match an actual task state character.
> 
> Signed-off-by: Andreas Schwab <schwab@suse.de>
> ---
>   linux-user/syscall.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 36fffd36ca..eb4c2c3162 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -8127,6 +8127,9 @@ static int open_self_stat(CPUArchState *cpu_env, int fd)
>               gchar *bin = g_strrstr(ts->bprm->argv[0], "/");
>               bin = bin ? bin + 1 : ts->bprm->argv[0];
>               g_string_printf(buf, "(%.15s) ", bin);
> +        } else if (i == 2) {
> +            /* task state */
> +            g_string_assign(buf, "R "); /* we are running right now */
>           } else if (i == 3) {
>               /* ppid */
>               g_string_printf(buf, FMT_pid " ", getppid());

Reviewed-by: Laurent Vivier <laurent@vivier.eu>