Shared Library Changes for Release 0.9.9

Overview

Ths release contains a few non-upwardly changes. Consequently, the libddcutil SONAME is now libddcutil.so.3. In conformance with Debian practice, the package name is libddcutil3.

API Changes

General API Changes

Structs and Enums Change
enum DDCA_Trace_Group add value DDCA_TRC_RETRY (small subset of DDC_TRC_IO)
enum DDCA_Trace_Options change DDCA_TRCOPT_TIMESTAMP value from x00 to x01 so enum values can be or'd
enum DDCA_Feature_Subset_Id add DDCA_SUBSET_CUSTOM
struct DDCA_Capabilities add fields: messages, msg_ct
Modified Functions Comments
ddca_parse_capbabilities_string() use new DDCA_Capabilities fields messages, msg_ct to return messages instead of writing them to the terminal
ddca_parse_capbilities_string() return status code DDCRC_BAD_DATA instead of DDCRC_OTHER


DDCA_Feature_List Functions

Most DDCA_Feature_List functions now take DDCA_Feature_List arguments instead of pointers to DDCA_Feature_List. Always using pointers had made the parameter lists more consistent, but didn't improve clarity.

New DDCA_Feature_List Functions Comments
ddca_feature_list_eq() compare 2 feature lists for equality


Modified DDCA_Feature_List Functions Comments
ddca_feature_list_add() returns modified feature list instead of void
ddca_feature_list_containts() use DDCA_Feature_List as parm type instead of *DDCA_Feature_List
ddca_feature_list_eq() has DDCA_Feature_List as parm type instead of *DDCA_Feature_List
ddca_feature_list_or() has DDCA_Feature_List as parm type instead of *DDCA_Feature_List
ddca_feature_list_and() has DDCA_Feature_List as parm type instead of *DDCA_Feature_List
ddca_feature-list_and_not() has DDCA_Feature_List as parm type instead of *DDCA_Feature_List
ddca_feature_list_count has DDCA_Feature_List as parm type instead of *DDCA_Feature_List
ddca_feature_list_string has DDCA_Feature_List as parm type instead of *DDCA_Feature_List

Tuning

The sleep multiplication factor is now set on a per-thread basis

New Functions Comments
ddca_get_default_sleep_multiplier() set sleep multiplication for new threads
ddca_set_default_sleep_multiplier() get sleep multiplication factor for new threads
ddca_get_sleep_multiplier() set sleep multiplication factor for current thread
ddca_set_sleep_multiplier() get sleep multiplication factor for current thread
ddca_enable_sleep_suppression() corresponds to option --sleep-less
ddca_is_sleep_suppression_enabled()


Deprecated Functions Use Instead
ddca_set_global_sleep_multiplier() ddca_set_default_sleep_multiplier()
ddca_get_global_sleep_multiplier() ddca_get_default_sleep_multiplier()


Statistics

Statistics are now gathered on a per-thread basis.

Modified Functions Comments
ddca_show_stats() add parm include_per_thread_data
New Functions Comment
ddca_set_thread_description() for use in statistics reports
ddca_append_thread_description append to existing thread description
ddca_get_thread_description retrieve thread description


libddcutil Development Package

In addition to changes to files ddca_types.h and ddca_c_api.h, the libddcutil development package, named libddcutil-dev on some platforms and libddcutil-devel on others, has the following changes.

  • The pkg-config file ddcutil.pc is not architecture agnostic. Therefore, it is not installed in the $(datadir) directory (typically /usr/share/pkgconfig). Instead it is installed in the architecture specific ${libdir} directory, e.g. /usr/lib64/x86_64-linux-gnu in Debian/Ubuntu

  • Cmake configuration file FindDDCUtil.cmake is now installed in /usr/share/cmake/Modules, not the ddcutil data directory (typically /usr/share/ddcutil/data), where it was left for the user to install in the proper location.