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
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel