Commit bb55173c authored by Alex Bennée's avatar Alex Bennée
Browse files

linux-user: clean-up padding on /proc/self/maps



Don't use magic spaces, calculate the justification for the file
field like the kernel does with seq_pad.

Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
Message-Id: <20200403191150.863-10-alex.bennee@linaro.org>
parent 01ef6b9e
Loading
Loading
Loading
Loading
+19 −13
Original line number Diff line number Diff line
@@ -7235,6 +7235,7 @@ static int open_self_maps(void *cpu_env, int fd)
    TaskState *ts = cpu->opaque;
    GSList *map_info = read_self_maps();
    GSList *s;
    int count;

    for (s = map_info; s; s = g_slist_next(s)) {
        MapInfo *e = (MapInfo *) s->data;
@@ -7258,15 +7259,19 @@ static int open_self_maps(void *cpu_env, int fd)
                path = e->path;
            }

            dprintf(fd, TARGET_ABI_FMT_ptr "-" TARGET_ABI_FMT_ptr
                    " %c%c%c%c %08" PRIx64 " %s %"PRId64" %s%s\n",
            count = dprintf(fd, TARGET_ABI_FMT_ptr "-" TARGET_ABI_FMT_ptr
                            " %c%c%c%c %08" PRIx64 " %s %"PRId64,
                            h2g(min), h2g(max - 1) + 1,
                            e->is_read ? 'r' : '-',
                            e->is_write ? 'w' : '-',
                            e->is_exec ? 'x' : '-',
                            e->is_priv ? 'p' : '-',
                    (uint64_t) e->offset, e->dev, e->inode,
                    path ? "         " : "", path ? path : "");
                            (uint64_t) e->offset, e->dev, e->inode);
            if (path) {
                dprintf(fd, "%*s%s\n", 73 - count, "", path);
            } else {
                dprintf(fd, "\n");
            }
        }
    }

@@ -7277,9 +7282,10 @@ static int open_self_maps(void *cpu_env, int fd)
     * We only support execution from the vsyscall page.
     * This is as if CONFIG_LEGACY_VSYSCALL_XONLY=y from v5.3.
     */
    dprintf(fd, TARGET_FMT_lx "-" TARGET_FMT_lx
            " --xp 00000000 00:00 0 [vsyscall]\n",
    count = dprintf(fd, TARGET_FMT_lx "-" TARGET_FMT_lx
                    " --xp 00000000 00:00 0",
                    TARGET_VSYSCALL_PAGE, TARGET_VSYSCALL_PAGE + TARGET_PAGE_SIZE);
    dprintf(fd, "%*s%s\n", 73 - count, "",  "[vsyscall]");
#endif

    return 0;