git: 629d9219d931 - main - netlink: make netlink_snl(3) c++ friendly.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 12 Feb 2023 11:46:49 UTC
The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=629d9219d931e63dc49ef046332b2a360e42a5f6 commit 629d9219d931e63dc49ef046332b2a360e42a5f6 Author: Alexander V. Chernikov <melifaro@FreeBSD.org> AuthorDate: 2023-02-10 20:19:09 +0000 Commit: Alexander V. Chernikov <melifaro@FreeBSD.org> CommitDate: 2023-02-12 11:46:38 +0000 netlink: make netlink_snl(3) c++ friendly. --- sys/netlink/netlink_snl.h | 22 +++++++++++++--------- sys/netlink/netlink_snl_route.h | 6 +++++- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/sys/netlink/netlink_snl.h b/sys/netlink/netlink_snl.h index 6e2c4b89a7c4..586cab391046 100644 --- a/sys/netlink/netlink_snl.h +++ b/sys/netlink/netlink_snl.h @@ -44,6 +44,7 @@ #include <sys/socket.h> #include <netlink/netlink.h> +__BEGIN_DECLS #define _roundup2(x, y) (((x)+((y)-1))&(~((y)-1))) @@ -83,7 +84,7 @@ lb_allocz(struct linear_buffer *lb, int len) return (NULL); void *data = (void *)(lb->base + lb->offset); lb->offset += len; - return (data); + return ((char *)data); } static inline void @@ -132,10 +133,10 @@ struct snl_hdr_parser { #define SNL_DECLARE_PARSER(_name, _t, _fp, _np) \ static const struct snl_hdr_parser _name = { \ .hdr_off = sizeof(_t), \ - .fp = &((_fp)[0]), \ - .np = &((_np)[0]), \ .fp_size = NL_ARRAY_LEN(_fp), \ .np_size = NL_ARRAY_LEN(_np), \ + .fp = &((_fp)[0]), \ + .np = &((_np)[0]), \ } #define SNL_DECLARE_ATTR_PARSER(_name, _np) \ @@ -175,14 +176,14 @@ snl_init(struct snl_state *ss, int netlink_family) } ss->bufsize = rcvbuf; - ss->buf = malloc(ss->bufsize); + ss->buf = (char *)malloc(ss->bufsize); if (ss->buf == NULL) { snl_free(ss); return (false); } ss->lb.size = SCRATCH_BUFFER_SIZE; - ss->lb.base = calloc(1, ss->lb.size); + ss->lb.base = (char *)calloc(1, ss->lb.size); if (ss->lb.base == NULL) { snl_free(ss); return (false); @@ -360,7 +361,7 @@ snl_attr_get_uint16(struct snl_state *ss __unused, struct nlattr *nla, const void *arg __unused, void *target) { if (NLA_DATA_LEN(nla) == sizeof(uint16_t)) { - *((uint16_t *)target) = *((const uint16_t *)NLA_DATA_CONST(nla)); + *((uint16_t *)target) = *((const uint16_t *)NL_RTA_DATA_CONST(nla)); return (true); } return (false); @@ -371,7 +372,7 @@ snl_attr_get_uint32(struct snl_state *ss __unused, struct nlattr *nla, const void *arg __unused, void *target) { if (NLA_DATA_LEN(nla) == sizeof(uint32_t)) { - *((uint32_t *)target) = *((const uint32_t *)NLA_DATA_CONST(nla)); + *((uint32_t *)target) = *((const uint32_t *)NL_RTA_DATA_CONST(nla)); return (true); } return (false); @@ -396,7 +397,7 @@ snl_attr_get_stringn(struct snl_state *ss, struct nlattr *nla, { int maxlen = NLA_DATA_LEN(nla); - char *buf = snl_allocz(ss, maxlen + 1); + char *buf = (char *)snl_allocz(ss, maxlen + 1); if (buf == NULL) return (false); buf[maxlen] = '\0'; @@ -416,7 +417,8 @@ snl_attr_get_nested(struct snl_state *ss, struct nlattr *nla, const void *arg, v } static inline bool -snl_attr_get_nla(struct snl_state *ss __unused, struct nlattr *nla, void *target) +snl_attr_get_nla(struct snl_state *ss __unused, struct nlattr *nla, + const void *arg __unused, void *target) { *((struct nlattr **)target) = nla; return (true); @@ -440,4 +442,6 @@ snl_field_get_uint32(struct snl_state *ss __unused, void *src, void *target) *((uint32_t *)target) = *((uint32_t *)src); } +__END_DECLS + #endif diff --git a/sys/netlink/netlink_snl_route.h b/sys/netlink/netlink_snl_route.h index 4adb3d697ecd..19841bdd2f50 100644 --- a/sys/netlink/netlink_snl_route.h +++ b/sys/netlink/netlink_snl_route.h @@ -31,6 +31,8 @@ #include <netlink/netlink_route.h> #include <netinet/in.h> +__BEGIN_DECLS + /* * Simple Netlink Library - NETLINK_ROUTE helpers */ @@ -100,7 +102,7 @@ snl_attr_get_ip(struct snl_state *ss, struct nlattr *nla, static inline struct sockaddr * parse_rta_via(struct snl_state *ss, struct rtattr *rta, int *perror) { - struct rtvia *via = NL_RTA_DATA(rta); + struct rtvia *via = (struct rtvia *)NL_RTA_DATA(rta); switch (via->rtvia_family) { case AF_INET: @@ -127,4 +129,6 @@ snl_attr_get_ipvia(struct snl_state *ss, struct nlattr *nla, return (false); } +__END_DECLS + #endif