From: Craig Small Date: Sun, 1 May 2016 06:15:49 +0000 (+1000) Subject: library: provide ref and unref for diskstat X-Git-Tag: v4.0.0~931 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=222945c67210ab417c1a34804ee21fcb75272b96;p=procps-ng library: provide ref and unref for diskstat While procps_diskstat_ref and procps_diskstat_unref were declared they actually weren't implemented in the library. Linking some binary that used these functions gave the following errors: CCLD vmstat vmstat.o: In function `disksum_format': vmstat.c:719: undefined reference to `procps_diskstat_unref' vmstat.o: In function `diskformat': vmstat.c:591: undefined reference to `procps_diskstat_unref' --- diff --git a/proc/diskstat.c b/proc/diskstat.c index 2b8409b0..bf2db080 100644 --- a/proc/diskstat.c +++ b/proc/diskstat.c @@ -226,6 +226,29 @@ PROCPS_EXPORT int procps_diskstat_read ( return 0; } +PROCPS_EXPORT int procps_diskstat_ref ( + struct procps_diskstat *info) +{ + if (info == NULL) + return -EINVAL; + info->refcount++; + return info->refcount; +} + +PROCPS_EXPORT int procps_diskstat_unref ( + struct procps_diskstat **info) +{ + if (info == NULL || *info == NULL) + return -EINVAL; + (*info)->refcount--; + if ((*info)->refcount == 0) { + free(*info); + *info = NULL; + return 0; + } + return (*info)->refcount; +} + /* * procps_diskstat_dev_count: *