prlimit: add a units column
PATCH 1/1 prlimit: add a units column
From: Davidlohr Bueso <[email protected]>
Signed-off-by Davidlohr Bueso <[email protected]>
--- sys-utils/prlimit.c | 40 ++++++++++++++++++++++++---------------- 1 files changed, 24 insertions(+), 16 deletions(-)
sys-utils/prlimit.c +24 -16
@@ -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) {
Signature · 1 line
1.7.7
Karel Zak
maintainerQuoted 6 lines · Davidlohr Bueso
sys-utils/prlimit.c +6
-0+ [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 },
sys-utils/prlimit.c enum { · line 79
Quoted 10 lines
sys-utils/prlimit.c +10
-0+ [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 }
Why without N_() ?
sys-utils/prlimit.c static void add_tt_line(struct tt *tt, struct prlimit *l) · line 226
Quoted 4 lines
sys-utils/prlimit.c +4
-0+case COL_UNITS : + rc = l->desc->unit ?asprintf (&str,"%s" , l->desc->unit) : +asprintf (&str,"------" ); +break ;
str = l->desc->unit ? xstrdup(_(l->desc->unit)) : NULL;
NULL should not be a problem for tt_* functions.
Karel
Signature · 2 lines
Karel Zak <[email protected]> http://karelzak.blogspot.com
Quoted 11 lines · Karel Zak
Quoted 10 lines · Davidlohr Bueso
(quoted diff) +10
-0+ [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 },
Quoted 8 lines
Review
Quoted 6 lines
(quoted diff) +6
-0+ [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 }Why without
N_()?
I don't know why I always avoid N(), sorry.
Quoted 9 lines
Review
Quoted 5 lines
(quoted diff) +4
-0+ case COL_UNITS: + rc = l->desc->unit ? asprintf(&str, "%s", l->desc->unit) : + asprintf(&str, "------"); + break;str = l->desc->unit ? xstrdup(_(l->desc->unit)) : NULL;NULL should not be a problem for tt_* functions.
Sorry for the delay, below is the corrected version.
Thanks,
Davidlohr
From: Davidlohr Bueso <[email protected]>
Date: Wed, 2 Nov 2011 18:38:12 +0100
Subject: [PATCH] prlimit: add units column
Signed-off-by Davidlohr Bueso <[email protected]>
--- sys-utils/prlimit.c | 39 +++++++++++++++++++++++---------------- 1 files changed, 23 insertions(+), 16 deletions(-)
sys-utils/prlimit.c +23 -16
@@ -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" ),N_ ("bytes" ),RLIMIT_AS }, + [CORE ] = {"CORE" ,N_ ("max core file size" ),N_ ("blocks" ),RLIMIT_CORE }, + [CPU ] = {"CPU" ,N_ ("CPU time" ),N_ ("seconds" ),RLIMIT_CPU }, + [DATA ] = {"DATA" ,N_ ("max data size" ),N_ ("bytes" ),RLIMIT_DATA }, + [FSIZE ] = {"FSIZE" ,N_ ("max file size" ),N_ ("blocks" ),RLIMIT_FSIZE }, + [LOCKS ] = {"LOCKS" ,N_ ("max amount of file locks held" ),NULL ,RLIMIT_LOCKS }, + [MEMLOCK ] = {"MEMLOCK" ,N_ ("max locked-in-memory address space" ),N_ ("kbytes" ),RLIMIT_MEMLOCK }, + [MSGQUEUE ] = {"MSGQUEUE" ,N_ ("max bytes in POSIX mqueues" ),N_ ("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" ),N_ ("pages" ),RLIMIT_RSS }, + [RTPRIO ] = {"RTPRIO" ,N_ ("max real-time priority" ),NULL ,RLIMIT_RTPRIO }, + [RTTIME ] = {"RTTIME" ,N_ ("timeout for real-time tasks" ),N_ ("microsecs" ),RLIMIT_RTTIME }, + [SIGPENDING ] = {"SIGPENDING" ,N_ ("max amount of pending signals" ),NULL ,RLIMIT_SIGPENDING }, + [STACK ] = {"STACK" ,N_ ("max stack size" ),N_ ("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,9 @@ 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 : + str = l->desc->unit ?xstrdup (_ (l->desc->unit)) :NULL ; +break ;default :break ; }
@@ -557,6 +563,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) {
Signature · 1 line
1.7.7
Quoted 2 lines · Davidlohr Bueso
sys-utils/prlimit.c | 39 +++++++++++++++++++++++---------------- 1 files changed, 23 insertions(+), 16 deletions(-)
Applied, thanks.
Signature · 2 lines
Karel Zak <[email protected]> http://karelzak.blogspot.com