interface: Hide the implementation details.
Now that a complete functional API is in place, there is no need to expose the inner workings of the network interface data type. This patch converts it into an opaque type while leaving the list marker visible to users through a simple form of "friendly exposition". Signed-off-by: Richard Cochran <richardcochran@gmail.com>master
parent
66dc3167e3
commit
a8f742528e
4
clock.c
4
clock.c
|
@ -47,6 +47,10 @@
|
|||
#define N_CLOCK_PFD (N_POLLFD + 1) /* one extra per port, for the fault timer */
|
||||
#define POW2_41 ((double)(1ULL << 41))
|
||||
|
||||
struct interface {
|
||||
STAILQ_ENTRY(interface) list;
|
||||
};
|
||||
|
||||
struct port {
|
||||
LIST_ENTRY(port) list;
|
||||
};
|
||||
|
|
4
config.c
4
config.c
|
@ -32,6 +32,10 @@
|
|||
#include "print.h"
|
||||
#include "util.h"
|
||||
|
||||
struct interface {
|
||||
STAILQ_ENTRY(interface) list;
|
||||
};
|
||||
|
||||
enum config_section {
|
||||
GLOBAL_SECTION,
|
||||
UC_MTAB_SECTION,
|
||||
|
|
|
@ -7,6 +7,13 @@
|
|||
#include <stdlib.h>
|
||||
#include "interface.h"
|
||||
|
||||
struct interface {
|
||||
STAILQ_ENTRY(interface) list;
|
||||
char name[MAX_IFNAME_SIZE + 1];
|
||||
char ts_label[MAX_IFNAME_SIZE + 1];
|
||||
struct sk_ts_info ts_info;
|
||||
};
|
||||
|
||||
struct interface *interface_create(const char *name)
|
||||
{
|
||||
struct interface *iface;
|
||||
|
|
|
@ -17,13 +17,8 @@
|
|||
#error if_namesize larger than expected.
|
||||
#endif
|
||||
|
||||
/** Defines a network interface, with PTP options. */
|
||||
struct interface {
|
||||
STAILQ_ENTRY(interface) list;
|
||||
char name[MAX_IFNAME_SIZE + 1];
|
||||
char ts_label[MAX_IFNAME_SIZE + 1];
|
||||
struct sk_ts_info ts_info;
|
||||
};
|
||||
/** Opaque type */
|
||||
struct interface;
|
||||
|
||||
/**
|
||||
* Creates an instance of an interface.
|
||||
|
|
Loading…
Reference in New Issue