Using gcc8 and -O2, the compiler emits an annoying false positive warning. Since I want to have -Werror, I went about fixing it. Start pulling on a thread, and ...
The 'struct interface' is wide open to its users, and each user fiddles with the fields in a different way. The cure is, of course, to hide the implementation details in a source module. This task turned out to be harder than it looked at first. - Patch #1 refactors the makefile a bit (this will be useful in a series to follow) - Patches 2-3 clean up interfaces accepting character strings as parameters. - Patch #5 introduces the "interface" module. - Patches 6-23 convert all the users to proper methods, one method at a time. - Patches 24-27 add create/destroy methods. - Patch #28 hides the implementation of the struct. - Patch #29 _finally_ fixes the compiler warning. - Patch #30 removes left over crud. Thanks for your review, Richard Cochran (30): Group related objects together within the makefile. config: Constify the public interface. rtnl: Constify the public interface. utils: Constify the posix clock interface. Move the network interface into its own header file. interface: Introduce an access method for the name field. Convert call sites to the proper method for getting interface names. interface: Introduce an access method for the time stamping label. Convert call sites to the proper method for getting interface labels. interface: Introduce a method to get the time stamping information. Convert call sites to the proper method for getting time stamp information. interface: Introduce a method to initialize the time stamping label. Convert call sites to the proper method for initializing the time stamping label. interface: Introduce a method to set the name. Convert call sites to the proper method for setting the name. interface: Introduce a method to set the time stamping label. Convert call sites to the proper method for setting the time stamping label. interface: Introduce a method to get the PHC index. Convert call sites to the proper method for getting the PHC index. interface: Introduce a method to test the time stamping information validity. Convert call sites to the proper method for testing time stamp info validity. interface: Introduce a method to test supported time stamping modes. Convert call sites to the proper method for testing time stamping modes. interface: Introduce methods to create and destroy instances. clock: Use the proper create/destroy API for network interfaces. config: Use the proper create/destroy API for network interfaces. pmc: Use the proper create/destroy API for network interfaces. interface: Hide the implementation details. interface: Silence warning from gcc version 8. interface: Remove obsolete method. clock.c | 61 ++++++++++++++++---------------- config.c | 26 ++++++++------ config.h | 19 ++-------- interface.c | 78 +++++++++++++++++++++++++++++++++++++++++ interface.h | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++ makefile | 32 +++++++++-------- nsm.c | 18 ++++++---- pmc_common.c | 19 +++++----- port.c | 59 +++++++++++++++++-------------- port_private.h | 2 +- raw.c | 5 +-- rtnl.c | 6 ++-- rtnl.h | 8 +++-- udp.c | 4 +-- udp6.c | 4 +-- uds.c | 8 ++--- util.c | 2 +- util.h | 2 +- 18 files changed, 316 insertions(+), 131 deletions(-) create mode 100644 interface.c create mode 100644 interface.h -- 2.20.1 _______________________________________________ Linuxptp-devel mailing list Linuxptp-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-devel