2011-12-23 03:48:43 +05:30
|
|
|
LIBPROCPS_0 {
|
2003-01-24 15:45:23 +05:30
|
|
|
global:
|
2011-11-05 17:59:54 +05:30
|
|
|
escape_str;
|
2015-09-11 10:30:00 +05:30
|
|
|
fatal_proc_unmounted;
|
2015-06-29 18:01:36 +05:30
|
|
|
procps_cpu_count;
|
2015-07-07 18:12:06 +05:30
|
|
|
procps_diskstat_dev_count;
|
|
|
|
procps_diskstat_dev_get;
|
|
|
|
procps_diskstat_dev_getbyname;
|
|
|
|
procps_diskstat_dev_getname;
|
|
|
|
procps_diskstat_dev_isdisk;
|
|
|
|
procps_diskstat_new;
|
|
|
|
procps_diskstat_read;
|
|
|
|
procps_diskstat_ref;
|
|
|
|
procps_diskstat_unref;
|
2015-06-24 17:46:16 +05:30
|
|
|
procps_hertz_get;
|
2015-06-19 16:30:46 +05:30
|
|
|
procps_linux_version;
|
2015-07-01 17:17:30 +05:30
|
|
|
procps_loadavg;
|
2015-06-20 18:38:47 +05:30
|
|
|
procps_meminfo_new;
|
|
|
|
procps_meminfo_ref;
|
|
|
|
procps_meminfo_unref;
|
|
|
|
procps_meminfo_get;
|
2016-05-11 22:30:00 +05:30
|
|
|
procps_meminfo_select;
|
2015-09-03 18:02:19 +05:30
|
|
|
procps_ns_get_name;
|
|
|
|
procps_ns_get_id;
|
|
|
|
procps_ns_read_pid;
|
2016-04-16 12:33:57 +05:30
|
|
|
procps_pid_length;
|
2015-08-19 10:30:00 +05:30
|
|
|
procps_pids_new;
|
|
|
|
procps_pids_ref;
|
library: standardize portions of interface, <PIDS> api
This represents a rather major interface redesign. The
following highlights most of the changes/enhancements.
. The 'read' interface (employed by pgrep & pidof) saw
the biggest change. The 'open', 'next' and 'shut' guys
all went bye-bye, replaced by a single 'get' function.
. The items specified at 'new' time no longer serve as
the maximum. In fact, items & numitems are now treated
as optional, should callers prefer to wait until later
when the 'reset' function would then become mandatory.
. Even at 'reset' time, the stacks are not tied to any
sort of maximum. They will grow dynamically as needed.
. The order of some parameters was changed to parallel
that found in our other APIs. Specifically, when items
& numitems are needed they're specified in that order.
. A user will no longer be prevented from concurrently
employing any accessor functions. In other words, that
'get' (old 'read') won't preclude 'reap' and 'select'.
. A duplicate enumerator was found dealing with locked
resident pages. So, the name VM_LOCK was eliminated in
favor of VM_RSS_LOCKED, which is way more descriptive.
. The struct address returned to callers following any
reap() or select() is now more sharable as pids_fetch.
. Some input parameter names were changed to make them
more descriptive of the intended purpose/requirements.
------------------------------------------------------
Internally, there were numerous implementation changes
made that did not directly impact any potential users.
. That #define FPRINT_STACKS was eliminated along with
the associated supporting function and its invocation.
. Addresses returned following 'reap' or 'select' will
now be NULL delimited, so one has the option of stacks
access via the total count or this new NULL fencepost.
. Input params were simplified and generalized in both
oldproc_open() & close() to enable more than 1 PROCTAB
to be open simultaneously, which was required for get.
. The PROCPS_PIDS_logical_end enum was relocated after
the Item_table making the need to keep it synchronized
more apparent (if the table expands it's right there).
. The 'Public function' section of the source file was
subdivided into 1) the three basic required functions;
and 2) functions that can sometimes vary between APIs.
Signed-off-by: Jim Warner <james.warner@comcast.net>
2016-05-14 10:30:00 +05:30
|
|
|
procps_pids_unref;
|
|
|
|
procps_pids_get;
|
|
|
|
procps_pids_reap;
|
2015-08-19 10:30:00 +05:30
|
|
|
procps_pids_reset;
|
2015-10-01 10:30:00 +05:30
|
|
|
procps_pids_select;
|
2015-10-11 10:30:00 +05:30
|
|
|
procps_pids_sort;
|
2015-07-04 10:29:59 +05:30
|
|
|
procps_slabinfo_new;
|
|
|
|
procps_slabinfo_read;
|
|
|
|
procps_slabinfo_ref;
|
|
|
|
procps_slabinfo_unref;
|
2015-07-11 10:30:00 +05:30
|
|
|
procps_slabs_get;
|
2015-07-21 10:30:00 +05:30
|
|
|
procps_slabs_getstack;
|
2015-07-11 10:30:00 +05:30
|
|
|
procps_slabnode_count;
|
|
|
|
procps_slabnode_getname;
|
|
|
|
procps_slabnode_get;
|
2015-07-21 10:30:00 +05:30
|
|
|
procps_slabnode_getstack;
|
|
|
|
procps_slabnode_stack_fill;
|
|
|
|
procps_slabnode_stack_alloc;
|
|
|
|
procps_slabnode_stacks_fill;
|
|
|
|
procps_slabnode_stacks_sort;
|
|
|
|
procps_slabnode_stacks_alloc;
|
2015-06-20 03:13:02 +05:30
|
|
|
procps_stat_new;
|
|
|
|
procps_stat_ref;
|
|
|
|
procps_stat_unref;
|
library: improve/standardize one interface, <STAT> api
This commit represents a complete redesign of the stat
interface. Gone are the confusing 8 separate accessors
along with their 2 additional read functions. In their
place we have just 3 accessors, with no read required.
That old interface also suffered an inflexibility with
respect to structures. Now we deal with an unchanging
standard 'result' struct enabling future changes where
the binary interface will no longer need to be broken.
And gone is that former unnecessary typedef, used when
dealing with jiffies. Now the standard C type is used.
Our new API also adds some brand new functionality. If
a caller plans to employ successive 'select' or 'reap'
invocations, then delta values are available (which is
actually only what that top program is interested in).
At some future point a 'sort' function could be easily
introduced to complement the 'reap' function. However,
I saw no need for it at present and so it was omitted.
There were several design decisions which everyone may
not agree with. In support I'll offer these rationals:
. The 'get' function returns a signed long long result
which means a potential loss of some significance. But
I felt the ability to distinguish actual errors (minus
values) from true zero results were worth such a risk.
. The DELTA item enumerators were also made signed and
smaller than their parents. And they are intentionally
grouped as last so as to emphasize those distinctions.
. The SYS type items were excluded from the new 'reap'
function. It would not make sense to duplicate them in
each results stack. They're limited to 'get'/'select'.
. By the same token, some items (DELTA, etc.) will not
be allowed under that 'get' routine. That function was
already open to significant internal overhead (through
subsequent calls like in vmstat.c). That is why it has
been limited via 1 second between reads of /proc/stat.
Lastly, when we finally get around to documenting this
interface there's a real potential toe stubber when it
comes to the numa node portion. The libnuma.so doesn't
really provide any means to retrieve the active nodes.
Thus, any total reported by <stat> is just the highest
node number plus one, as reported by the numa library.
Any unused/inactive nodes are identified through these
. PROCPS_STAT_TIC_ID shows as PROCPS_STAT_NODE_INVALID
By the same token after the STAT_REAP_CPUS_ONLY 'reap'
. PROCPS_STAT_TIC_NUMA_NODE = PROCPS_STAT_NODE_INVALID
Reference(s):
http://www.freelists.org/post/procps/newlib-stat-interface
Signed-off-by: Jim Warner <james.warner@comcast.net>
2016-05-06 10:30:00 +05:30
|
|
|
procps_stat_get;
|
|
|
|
procps_stat_reap;
|
|
|
|
procps_stat_select;
|
2015-06-29 17:39:59 +05:30
|
|
|
procps_uptime;
|
|
|
|
procps_uptime_sprint;
|
|
|
|
procps_uptime_sprint_short;
|
2015-06-20 03:13:02 +05:30
|
|
|
procps_vmstat_new;
|
|
|
|
procps_vmstat_read;
|
|
|
|
procps_vmstat_ref;
|
|
|
|
procps_vmstat_unref;
|
|
|
|
procps_vmstat_get;
|
2015-07-21 10:30:00 +05:30
|
|
|
procps_vmstat_getstack;
|
2011-11-05 17:59:54 +05:30
|
|
|
local:
|
|
|
|
*;
|
2003-01-15 16:22:39 +05:30
|
|
|
};
|