qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] linux-user: improved fake /proc/self/stat
@ 2012-01-03  7:25 Fabio Erculiani
  2012-01-03 14:26 ` Alexander Graf
  0 siblings, 1 reply; 3+ messages in thread
From: Fabio Erculiani @ 2012-01-03  7:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: riku.voipio, agraf

Hi all,
this is a patch on top of "[PATCH 4/5] linux-user: fake
/proc/self/stat" (sorry I couldn't find the git repo bound to this
patchwork) that also implements PID and binary name reading them from
the fake TSS.
The pid was just a "why not" while the binary name is required (as
well as the backets in order to make `ps` not segfault, because it
expects to find "(binary name)" on the second spot.

The only doubt I have is about printing ts->ts_tid which is a pid_t,
which is a signed int, so perhaps int would be enough.

--- qemu-1.0.orig/linux-user/syscall.c
+++ qemu-1.0/linux-user/syscall.c
@@ -4678,11 +4678,23 @@ static int open_self_stat(void *cpu_env,
       int len;
       uint64_t val = 0;

-      if (i == 27) {
+      if (i == 0) {
+          /* pid */
+          snprintf(buf, sizeof(buf), "%jd ", (intmax_t) ts->ts_tid);
+      }
+      else if (i == 1) {
+          /* app name */
+          snprintf(buf, sizeof(buf), "(%s) ", ts->bprm->filename);
+      }
+      else if (i == 27) {
           /* stack bottom */
           val = start_stack;
+          snprintf(buf, sizeof(buf), "%"PRId64 " ", val);
+      }
+      else {
+          /* for the rest, write zeros */
+          snprintf(buf, sizeof(buf), "0%c", i == 43 ? '\n' : ' ');
       }
-      snprintf(buf, sizeof(buf), "%"PRId64 "%c", val, i == 43 ? '\n' : ' ');
       len = strlen(buf);
       if (write(fd, buf, len) != len) {
           return -1;

--
Fabio Erculiani

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-01-03 15:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-03  7:25 [Qemu-devel] linux-user: improved fake /proc/self/stat Fabio Erculiani
2012-01-03 14:26 ` Alexander Graf
2012-01-03 15:31   ` Fabio Erculiani

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).