![Laurent Charpentier](/assets/img/avatar_default.png)
The lldpad package comes with utilities to manage an LLDP interface with support for reading and configuring TLVs. TLVs and interfaces are individual controlled allowing flexible configuration for TX only, RX only, or TX/RX modes per TLV. http://open-lldp.org/ Signed-off-by: Laurent Charpentier <laurent_pubs@yahoo.com> Reviewed-by: Yegor Yefremov <yegorslists@googlemail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
74 lines
2.9 KiB
Diff
74 lines
2.9 KiB
Diff
From e186ca9ebda181f62504a1922559ef3ddae5e3b6 Mon Sep 17 00:00:00 2001
|
|
From: Laurent Charpentier <laurent_pubs@yahoo.com>
|
|
Date: Mon, 15 Jan 2018 11:24:45 +0100
|
|
Subject: [PATCH] get inline functions work with both gnu11 and gnu89
|
|
|
|
After gcc upgraded to gcc5, and if the codes are compiled without optimization(-O0), and the below error will happen:
|
|
|
|
./include/lldp_8021qaz.h:237:12: error: inline function 'ieee8021qaz_clif_cmd' declared but never defined [-Werror]
|
|
inline int ieee8021qaz_clif_cmd(void *data, struct sockaddr_un *from,
|
|
^
|
|
./include/lldp_8021qaz.h:222:13: error: inline function 'set_prio_map' declared but never defined [-Werror]
|
|
inline void set_prio_map(u32 *prio_map, u8 prio, int tc);
|
|
^
|
|
./include/lldp_8021qaz.h:221:12: error: inline function 'get_prio_map' declared but never defined [-Werror]
|
|
inline int get_prio_map(u32 prio_map, int tc);
|
|
|
|
gcc5 defaults to -std=gnu11 instead of -std=gnu89, and it requires that exactly one C source file has the callable copy of the inline function.
|
|
|
|
Signed-off-by: Laurent Charpentier <laurent_pubs@yahoo.com>
|
|
---
|
|
include/lldp_8021qaz.h | 6 ------
|
|
lldp_8021qaz.c | 4 ++--
|
|
2 files changed, 2 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/include/lldp_8021qaz.h b/include/lldp_8021qaz.h
|
|
index 55353b8..09dee20 100644
|
|
--- a/include/lldp_8021qaz.h
|
|
+++ b/include/lldp_8021qaz.h
|
|
@@ -218,9 +218,6 @@ int ieee8021qaz_mod_app(struct app_tlv_head *head, int peer,
|
|
u8 prio, u8 sel, u16 proto, u32 ops);
|
|
int ieee8021qaz_app_sethw(char *ifname, struct app_tlv_head *head);
|
|
|
|
-inline int get_prio_map(u32 prio_map, int tc);
|
|
-inline void set_prio_map(u32 *prio_map, u8 prio, int tc);
|
|
-
|
|
struct ieee8021qaz_tlvs *ieee8021qaz_data(const char *);
|
|
|
|
int ieee8021qaz_tlvs_rxed(const char *ifname);
|
|
@@ -234,9 +231,6 @@ int ieee8021qaz_rchange(struct port *port, struct lldp_agent *,
|
|
void ieee8021qaz_ifup(char *ifname, struct lldp_agent *);
|
|
void ieee8021qaz_ifdown(char *ifname, struct lldp_agent *);
|
|
u8 ieee8021qaz_mibDeleteObject(struct port *port, struct lldp_agent *);
|
|
-inline int ieee8021qaz_clif_cmd(void *data, struct sockaddr_un *from,
|
|
- socklen_t fromlen, char *ibuf, int ilen,
|
|
- char *rbuf);
|
|
int ieee8021qaz_check_operstate(void);
|
|
int get_dcbx_hw(const char *ifname, __u8 *dcbx);
|
|
|
|
diff --git a/lldp_8021qaz.c b/lldp_8021qaz.c
|
|
index 094676d..f154317 100644
|
|
--- a/lldp_8021qaz.c
|
|
+++ b/lldp_8021qaz.c
|
|
@@ -396,7 +396,7 @@ static int read_cfg_file(char *ifname, struct lldp_agent *agent,
|
|
return 0;
|
|
}
|
|
|
|
-inline int get_prio_map(u32 prio_map, int prio)
|
|
+static inline int get_prio_map(u32 prio_map, int prio)
|
|
{
|
|
if (prio > 7)
|
|
return 0;
|
|
@@ -404,7 +404,7 @@ inline int get_prio_map(u32 prio_map, int prio)
|
|
return (prio_map >> (4 * (7-prio))) & 0xF;
|
|
}
|
|
|
|
-inline void set_prio_map(u32 *prio_map, u8 prio, int tc)
|
|
+static inline void set_prio_map(u32 *prio_map, u8 prio, int tc)
|
|
{
|
|
u32 mask = ~(0xffffffff & (0xF << (4 * (7-prio))));
|
|
*prio_map &= mask;
|
|
--
|
|
2.14.3
|
|
|