library: refactor the XTRA_PROCPS_DEBUG implementation

If we ever were to eliminate the procps.h header file,
as discussed in the thread referenced below, then that
would impair the current XTRA_PROCPS_DEBUG provisions.

The only remaining way to verify result types would be
to explicitly include that <proc/xtra-procps-debug.h>.

So, this commit will once again enable the ./configure
provision for defining the -DXTRA_PROCPS_DEBUG option.

Reference(s):
https://www.freelists.org/post/procps/newlib-Qualys-patches,6

Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
Jim Warner 2018-09-01 00:00:00 -05:00 committed by Craig Small
parent 19dd4f7120
commit fab37662ef
8 changed files with 53 additions and 36 deletions

View File

@ -126,6 +126,10 @@ struct diskstats_stack **procps_diskstats_sort (
enum diskstats_item sortitem, enum diskstats_item sortitem,
enum diskstats_sort_order order); enum diskstats_sort_order order);
#ifdef XTRA_PROCPS_DEBUG
# include <proc/xtra-procps-debug.h>
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -171,6 +171,10 @@ struct meminfo_stack *procps_meminfo_select (
enum meminfo_item *items, enum meminfo_item *items,
int numitems); int numitems);
#ifdef XTRA_PROCPS_DEBUG
# include <proc/xtra-procps-debug.h>
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -234,6 +234,10 @@ struct pids_stack **procps_pids_sort (
enum pids_item sortitem, enum pids_item sortitem,
enum pids_sort_order order); enum pids_sort_order order);
#ifdef XTRA_PROCPS_DEBUG
# include <proc/xtra-procps-debug.h>
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -34,8 +34,4 @@
#define ESC_STRETCH 1 // since we mangle to '?' this is 1 (would be 4 for octal escapes) #define ESC_STRETCH 1 // since we mangle to '?' this is 1 (would be 4 for octal escapes)
int escape_str(char *__restrict dst, const char *__restrict src, int bufsize, int *maxcells); int escape_str(char *__restrict dst, const char *__restrict src, int bufsize, int *maxcells);
#ifdef XTRA_PROCPS_DEBUG
#include <proc/xtra-procps-debug.h>
#endif
#endif #endif

View File

@ -130,6 +130,10 @@ struct slabinfo_stack **procps_slabinfo_sort (
enum slabinfo_item sortitem, enum slabinfo_item sortitem,
enum slabinfo_sort_order order); enum slabinfo_sort_order order);
#ifdef XTRA_PROCPS_DEBUG
# include <proc/xtra-procps-debug.h>
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -154,6 +154,10 @@ struct stat_stack **procps_stat_sort (
enum stat_item sortitem, enum stat_item sortitem,
enum stat_sort_order order); enum stat_sort_order order);
#ifdef XTRA_PROCPS_DEBUG
# include <proc/xtra-procps-debug.h>
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -308,6 +308,10 @@ struct vmstat_stack *procps_vmstat_select (
enum vmstat_item *items, enum vmstat_item *items,
int numitems); int numitems);
#ifdef XTRA_PROCPS_DEBUG
# include <proc/xtra-procps-debug.h>
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -18,15 +18,13 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#ifndef XTRA_PROCPS_DEBUG_H
#define XTRA_PROCPS_DEBUG_H
#include <proc/procps-private.h> #include <proc/procps-private.h>
// --- DISKSTATS ------------------------------------------ // --- DISKSTATS ------------------------------------------
#ifdef DISKSTATS_GET #if defined(PROCPS_DISKSTATS_H) && !defined(PROCPS_DISKSTATS_H_DEBUG)
#undef DISKSTATS_GET #define PROCPS_DISKSTATS_H_DEBUG
struct diskstats_result *xtra_diskstats_get ( struct diskstats_result *xtra_diskstats_get (
struct diskstats_info *info, struct diskstats_info *info,
const char *name, const char *name,
@ -35,14 +33,12 @@ struct diskstats_result *xtra_diskstats_get (
const char *file, const char *file,
int lineno); int lineno);
# undef DISKSTATS_GET
#define DISKSTATS_GET( info, name, actual_enum, type ) ( { \ #define DISKSTATS_GET( info, name, actual_enum, type ) ( { \
struct diskstats_result *r; \ struct diskstats_result *r; \
r = xtra_diskstats_get(info, name, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \ r = xtra_diskstats_get(info, name, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \
r ? r->result . type : 0; } ) r ? r->result . type : 0; } )
#endif // . . . . . . . . . .
#ifdef DISKSTATS_VAL
#undef DISKSTATS_VAL
struct diskstats_result *xtra_diskstats_val ( struct diskstats_result *xtra_diskstats_val (
int relative_enum, int relative_enum,
const char *typestr, const char *typestr,
@ -51,6 +47,7 @@ struct diskstats_result *xtra_diskstats_val (
const char *file, const char *file,
int lineno); int lineno);
# undef DISKSTATS_VAL
#define DISKSTATS_VAL( relative_enum, type, stack, info ) ( { \ #define DISKSTATS_VAL( relative_enum, type, stack, info ) ( { \
struct diskstats_result *r; \ struct diskstats_result *r; \
r = xtra_diskstats_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \ r = xtra_diskstats_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \
@ -59,8 +56,9 @@ struct diskstats_result *xtra_diskstats_val (
// --- MEMINFO -------------------------------------------- // --- MEMINFO --------------------------------------------
#ifdef MEMINFO_GET #if defined(PROCPS_MEMINFO_H) && !defined(PROCPS_MEMINFO_H_DEBUG)
#undef MEMINFO_GET #define PROCPS_MEMINFO_H_DEBUG
struct meminfo_result *xtra_meminfo_get ( struct meminfo_result *xtra_meminfo_get (
struct meminfo_info *info, struct meminfo_info *info,
enum meminfo_item actual_enum, enum meminfo_item actual_enum,
@ -68,14 +66,12 @@ struct meminfo_result *xtra_meminfo_get (
const char *file, const char *file,
int lineno); int lineno);
# undef MEMINFO_GET
#define MEMINFO_GET( info, actual_enum, type ) ( { \ #define MEMINFO_GET( info, actual_enum, type ) ( { \
struct meminfo_result *r; \ struct meminfo_result *r; \
r = xtra_meminfo_get(info, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \ r = xtra_meminfo_get(info, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \
r ? r->result . type : 0; } ) r ? r->result . type : 0; } )
#endif // . . . . . . . . . .
#ifdef MEMINFO_VAL
#undef MEMINFO_VAL
struct meminfo_result *xtra_meminfo_val ( struct meminfo_result *xtra_meminfo_val (
int relative_enum, int relative_enum,
const char *typestr, const char *typestr,
@ -84,6 +80,7 @@ struct meminfo_result *xtra_meminfo_val (
const char *file, const char *file,
int lineno); int lineno);
# undef MEMINFO_VAL
#define MEMINFO_VAL( relative_enum, type, stack, info ) ( { \ #define MEMINFO_VAL( relative_enum, type, stack, info ) ( { \
struct meminfo_result *r; \ struct meminfo_result *r; \
r = xtra_meminfo_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \ r = xtra_meminfo_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \
@ -92,8 +89,9 @@ struct meminfo_result *xtra_meminfo_val (
// --- PIDS ----------------------------------------------- // --- PIDS -----------------------------------------------
#ifdef PIDS_VAL #if defined(PROCPS_PIDS_H) && !defined(PROCPS_PIDS_H_DEBUG)
#undef PIDS_VAL #define PROCPS_PIDS_H_DEBUG
struct pids_result *xtra_pids_val ( struct pids_result *xtra_pids_val (
int relative_enum, int relative_enum,
const char *typestr, const char *typestr,
@ -102,6 +100,7 @@ struct pids_result *xtra_pids_val (
const char *file, const char *file,
int lineno); int lineno);
# undef PIDS_VAL
#define PIDS_VAL( relative_enum, type, stack, info ) ( { \ #define PIDS_VAL( relative_enum, type, stack, info ) ( { \
struct pids_result *r; \ struct pids_result *r; \
r = xtra_pids_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \ r = xtra_pids_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \
@ -110,8 +109,9 @@ struct pids_result *xtra_pids_val (
// --- SLABINFO ------------------------------------------- // --- SLABINFO -------------------------------------------
#ifdef SLABINFO_GET #if defined(PROCPS_SLABINFO_H) && !defined(PROCPS_SLABINFO_H_DEBUG)
#undef SLABINFO_GET #define PROCPS_SLABINFO_H_DEBUG
struct slabinfo_result *xtra_slabinfo_get ( struct slabinfo_result *xtra_slabinfo_get (
struct slabinfo_info *info, struct slabinfo_info *info,
enum slabinfo_item actual_enum, enum slabinfo_item actual_enum,
@ -119,14 +119,12 @@ struct slabinfo_result *xtra_slabinfo_get (
const char *file, const char *file,
int lineno); int lineno);
# undef SLABINFO_GET
#define SLABINFO_GET( info, actual_enum, type ) ( { \ #define SLABINFO_GET( info, actual_enum, type ) ( { \
struct slabinfo_result *r; \ struct slabinfo_result *r; \
r = xtra_slabinfo_get(info, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \ r = xtra_slabinfo_get(info, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \
r ? r->result . type : 0; } ) r ? r->result . type : 0; } )
#endif // . . . . . . . . . .
#ifdef SLABINFO_VAL
#undef SLABINFO_VAL
struct slabinfo_result *xtra_slabinfo_val ( struct slabinfo_result *xtra_slabinfo_val (
int relative_enum, int relative_enum,
const char *typestr, const char *typestr,
@ -135,6 +133,7 @@ struct slabinfo_result *xtra_slabinfo_val (
const char *file, const char *file,
int lineno); int lineno);
# undef SLABINFO_VAL
#define SLABINFO_VAL( relative_enum, type, stack, info ) ( { \ #define SLABINFO_VAL( relative_enum, type, stack, info ) ( { \
struct slabinfo_result *r; \ struct slabinfo_result *r; \
r = xtra_slabinfo_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \ r = xtra_slabinfo_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \
@ -143,8 +142,9 @@ struct slabinfo_result *xtra_slabinfo_val (
// --- STAT ----------------------------------------------- // --- STAT -----------------------------------------------
#ifdef STAT_GET #if defined(PROCPS_STAT_H) && !defined(PROCPS_STAT_H_DEBUG)
#undef STAT_GET #define PROCPS_STAT_H_DEBUG
struct stat_result *xtra_stat_get ( struct stat_result *xtra_stat_get (
struct stat_info *info, struct stat_info *info,
enum stat_item actual_enum, enum stat_item actual_enum,
@ -152,14 +152,12 @@ struct stat_result *xtra_stat_get (
const char *file, const char *file,
int lineno); int lineno);
# undef STAT_GET
#define STAT_GET( info, actual_enum, type ) ( { \ #define STAT_GET( info, actual_enum, type ) ( { \
struct stat_result *r; \ struct stat_result *r; \
r = xtra_stat_get(info, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \ r = xtra_stat_get(info, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \
r ? r->result . type : 0; } ) r ? r->result . type : 0; } )
#endif // . . . . . . . . . .
#ifdef STAT_VAL
#undef STAT_VAL
struct stat_result *xtra_stat_val ( struct stat_result *xtra_stat_val (
int relative_enum, int relative_enum,
const char *typestr, const char *typestr,
@ -168,6 +166,7 @@ struct stat_result *xtra_stat_val (
const char *file, const char *file,
int lineno); int lineno);
# undef STAT_VAL
#define STAT_VAL( relative_enum, type, stack, info ) ( { \ #define STAT_VAL( relative_enum, type, stack, info ) ( { \
struct stat_result *r; \ struct stat_result *r; \
r = xtra_stat_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \ r = xtra_stat_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \
@ -176,8 +175,9 @@ struct stat_result *xtra_stat_val (
// --- VMSTAT --------------------------------------------- // --- VMSTAT ---------------------------------------------
#ifdef VMSTAT_GET #if defined(PROCPS_VMSTAT_H) && !defined(PROCPS_VMSTAT_H_DEBUG)
#undef VMSTAT_GET #define PROCPS_VMSTAT_H_DEBUG
struct vmstat_result *xtra_vmstat_get ( struct vmstat_result *xtra_vmstat_get (
struct vmstat_info *info, struct vmstat_info *info,
enum vmstat_item actual_enum, enum vmstat_item actual_enum,
@ -185,14 +185,12 @@ struct vmstat_result *xtra_vmstat_get (
const char *file, const char *file,
int lineno); int lineno);
# undef VMSTAT_GET
#define VMSTAT_GET( info, actual_enum, type ) ( { \ #define VMSTAT_GET( info, actual_enum, type ) ( { \
struct vmstat_result *r; \ struct vmstat_result *r; \
r = xtra_vmstat_get(info, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \ r = xtra_vmstat_get(info, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \
r ? r->result . type : 0; } ) r ? r->result . type : 0; } )
#endif // . . . . . . . . . .
#ifdef VMSTAT_VAL
#undef VMSTAT_VAL
struct vmstat_result *xtra_vmstat_val ( struct vmstat_result *xtra_vmstat_val (
int relative_enum, int relative_enum,
const char *typestr, const char *typestr,
@ -201,10 +199,9 @@ struct vmstat_result *xtra_vmstat_val (
const char *file, const char *file,
int lineno); int lineno);
# undef VMSTAT_VAL
#define VMSTAT_VAL( relative_enum, type, stack, info ) ( { \ #define VMSTAT_VAL( relative_enum, type, stack, info ) ( { \
struct vmstat_result *r; \ struct vmstat_result *r; \
r = xtra_vmstat_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \ r = xtra_vmstat_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \
r ? r->result . type : 0; } ) r ? r->result . type : 0; } )
#endif // . . . . . . . . . . #endif // . . . . . . . . . .
#endif // end: XTRA_PROCPS_DEBUG_H