[PATCH] prlimit: add a units column

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Davidlohr Bueso <dave@xxxxxxx>

Signed-off-by: Davidlohr Bueso <dave@xxxxxxx>
---
 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



--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux