util-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Davidlohr Bueso <dave@gnu.org>
To: Karel Zak <kzak@redhat.com>
Cc: util-linux <util-linux@vger.kernel.org>
Subject: [PATCH] prlimit: add a units column
Date: Mon, 24 Oct 2011 12:30:58 +0200	[thread overview]
Message-ID: <1319452258.2170.7.camel@offworld> (raw)

From: Davidlohr Bueso <dave@gnu.org>

Signed-off-by: Davidlohr Bueso <dave@gnu.org>
---
 sys-utils/prlimit.c |   40 ++++++++++++++++++++++++----------------
 1 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/sys-utils/prlimit.c b/sys-utils/prlimit.c
index 74c7fc9..49f8f6e 100644
--- a/sys-utils/prlimit.c
+++ b/sys-utils/prlimit.c
@@ -55,27 +55,28 @@ enum {
 struct prlimit_desc {
 	const char *name;
 	const char *help;
+	const char *unit;
 	int resource;
 };
 
 static struct prlimit_desc prlimit_desc[] =
 {
-	[AS]         = { "AS",         N_("address space limit"),                RLIMIT_AS },
-	[CORE]       = { "CORE",       N_("max core file size"),                 RLIMIT_CORE },
-	[CPU]        = { "CPU",        N_("CPU time in secs"),                   RLIMIT_CPU },
-	[DATA]       = { "DATA",       N_("max data size"),                      RLIMIT_DATA },
-	[FSIZE]      = { "FSIZE",      N_("max file size"),                      RLIMIT_FSIZE },
-	[LOCKS]      = { "LOCKS",      N_("max amount of file locks held"),      RLIMIT_LOCKS },
-	[MEMLOCK]    = { "MEMLOCK",    N_("max locked-in-memory address space"), RLIMIT_MEMLOCK },
-	[MSGQUEUE]   = { "MSGQUEUE",   N_("max bytes in POSIX mqueues"),         RLIMIT_MSGQUEUE },
-	[NICE]       = { "NICE",       N_("max nice prio allowed to raise"),     RLIMIT_NICE },
-	[NOFILE]     = { "NOFILE",     N_("max amount of open files"),           RLIMIT_NOFILE },
-	[NPROC]      = { "NPROC",      N_("max number of processes"),            RLIMIT_NPROC },
-	[RSS]        = { "RSS",        N_("max resident set size"),              RLIMIT_RSS },
-	[RTPRIO]     = { "RTPRIO",     N_("max real-time priority"),             RLIMIT_RTPRIO },
-	[RTTIME]     = { "RTTIME",     N_("timeout for real-time tasks"),        RLIMIT_RTTIME },
-	[SIGPENDING] = { "SIGPENDING", N_("max amount of pending signals"),      RLIMIT_SIGPENDING },
-	[STACK]      = { "STACK",      N_("max stack size"),                     RLIMIT_STACK }
+	[AS]         = { "AS",         N_("address space limit"),                "bytes",     RLIMIT_AS },
+	[CORE]       = { "CORE",       N_("max core file size"),                 "blocks",    RLIMIT_CORE },
+	[CPU]        = { "CPU",        N_("CPU time"),                           "seconds",   RLIMIT_CPU },
+	[DATA]       = { "DATA",       N_("max data size"),                      "bytes",     RLIMIT_DATA },
+	[FSIZE]      = { "FSIZE",      N_("max file size"),                      "blocks",    RLIMIT_FSIZE },
+	[LOCKS]      = { "LOCKS",      N_("max amount of file locks held"),      NULL,        RLIMIT_LOCKS },
+	[MEMLOCK]    = { "MEMLOCK",    N_("max locked-in-memory address space"), "kbytes",    RLIMIT_MEMLOCK },
+	[MSGQUEUE]   = { "MSGQUEUE",   N_("max bytes in POSIX mqueues"),         "bytes",     RLIMIT_MSGQUEUE },
+	[NICE]       = { "NICE",       N_("max nice prio allowed to raise"),     NULL,        RLIMIT_NICE },
+	[NOFILE]     = { "NOFILE",     N_("max amount of open files"),           NULL,        RLIMIT_NOFILE },
+	[NPROC]      = { "NPROC",      N_("max number of processes"),            NULL,        RLIMIT_NPROC },
+	[RSS]        = { "RSS",        N_("max resident set size"),              "pages",     RLIMIT_RSS },
+	[RTPRIO]     = { "RTPRIO",     N_("max real-time priority"),             NULL,        RLIMIT_RTPRIO },
+	[RTTIME]     = { "RTTIME",     N_("timeout for real-time tasks"),        "microsecs", RLIMIT_RTTIME },
+	[SIGPENDING] = { "SIGPENDING", N_("max amount of pending signals"),      NULL,        RLIMIT_SIGPENDING },
+	[STACK]      = { "STACK",      N_("max stack size"),                     "kbytes",    RLIMIT_STACK }
 };
 
 struct prlimit {
@@ -91,6 +92,7 @@ enum {
 	COL_RES,
 	COL_SOFT,
 	COL_HARD,
+	COL_UNITS,
 };
 
 /* column names */
@@ -107,6 +109,7 @@ struct colinfo infos[] = {
 	[COL_HELP]    = { "DESCRIPTION", 0.1,  TT_FL_TRUNC, N_("resource description")},
 	[COL_SOFT]    = { "SOFT",        0.1,  TT_FL_RIGHT, N_("soft limit")},
 	[COL_HARD]    = { "HARD",        1,    TT_FL_RIGHT, N_("hard limit (ceiling)")},
+	[COL_UNITS]   = { "UNITS",       0.1,    TT_FL_TRUNC, N_("units")},
 };
 
 #define NCOLS ARRAY_SIZE(infos)
@@ -217,6 +220,10 @@ static void add_tt_line(struct tt *tt, struct prlimit *l)
 				asprintf(&str, "%s", "unlimited") :
 				asprintf(&str, "%llu", (unsigned long long) l->rlim.rlim_max);
 			break;
+		case COL_UNITS:
+			rc =  l->desc->unit ? asprintf(&str, "%s", l->desc->unit) :
+			                      asprintf(&str, "------");
+			break;
 		default:
 			break;
 		}
@@ -557,6 +564,7 @@ int main(int argc, char **argv)
 		columns[ncolumns++] = COL_HELP;
 		columns[ncolumns++] = COL_SOFT;
 		columns[ncolumns++] = COL_HARD;
+		columns[ncolumns++] = COL_UNITS;
 	}
 
 	if (!n) {
-- 
1.7.7

             reply	other threads:[~2011-10-24 10:30 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-24 10:30 Davidlohr Bueso [this message]
2011-10-26 21:25 ` [PATCH] prlimit: add a units column Karel Zak
2011-11-02 17:40   ` Davidlohr Bueso
2011-11-07  8:58     ` Karel Zak

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1319452258.2170.7.camel@offworld \
    --to=dave@gnu.org \
    --cc=kzak@redhat.com \
    --cc=util-linux@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).