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'
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:
*