From: Nuno Antunes Date: Fri, 18 Jul 2014 14:12:52 +0000 (+0100) Subject: Use system's RT_ROUNDUP and RT_ADVANCE macros instead of local copies. X-Git-Url: https://gitweb.dragonflybsd.org/~nant/dragonfly.git/commitdiff_plain/refs/heads/netgraph7 Use system's RT_ROUNDUP and RT_ADVANCE macros instead of local copies. --- diff --git a/bin/hostname/hostname.c b/bin/hostname/hostname.c index 48874a974e..672610e78c 100644 --- a/bin/hostname/hostname.c +++ b/bin/hostname/hostname.c @@ -62,8 +62,6 @@ #define HST_IF_V6 (1 << 1) #define HST_IF_V4 (1 << 2) - - /* * Expand the compacted form of addresses as returned via the * configuration read via sysctl(). @@ -73,9 +71,13 @@ static void rt_xaddrs(caddr_t, caddr_t, struct rt_addrinfo *); static void usage (void); -#define ROUNDUP(a) \ +#ifndef RT_ROUNDUP +#define RT_ROUNDUP(a) \ ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) -#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) +#endif +#ifndef RT_ADVANCE +#define RT_ADVANCE(x, n) (x += RT_ROUNDUP((n)->sa_len)) +#endif static void @@ -89,7 +91,7 @@ rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinfo *rtinfo) if ((rtinfo->rti_addrs & (1 << i)) == 0) continue; rtinfo->rti_info[i] = sa = (struct sockaddr *)cp; - ADVANCE(cp, sa); + RT_ADVANCE(cp, sa); } } diff --git a/lib/libc/net/getifaddrs.c b/lib/libc/net/getifaddrs.c index 816ee85fef..d248d29764 100644 --- a/lib/libc/net/getifaddrs.c +++ b/lib/libc/net/getifaddrs.c @@ -55,8 +55,7 @@ #define SA_LEN(sa) (sa)->sa_len #endif -#define SALIGN (sizeof(long) - 1) -#define SA_RLEN(sa) ((sa)->sa_len ? (((sa)->sa_len + SALIGN) & ~SALIGN) : (SALIGN + 1)) +#define SA_RLEN(sa) RT_ROUNDUP((sa)->sa_len) #ifndef ALIGNBYTES /* diff --git a/sbin/dhclient/dhclient.c b/sbin/dhclient/dhclient.c index 159e956fef..9658f7e191 100644 --- a/sbin/dhclient/dhclient.c +++ b/sbin/dhclient/dhclient.c @@ -97,9 +97,6 @@ int res_hnok(const char *dn); char *option_as_string(unsigned int code, unsigned char *data, int len); int fork_privchld(int, int); void get_ifname(char *, char *); -#define ROUNDUP(a) \ - ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) -#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) time_t scripttime; static FILE *leaseFile; @@ -128,7 +125,7 @@ findproto(char *cp, int n) case RTA_IFP: break; } - ADVANCE(cp, sa); + RT_ADVANCE(cp, sa); } } return (-1); @@ -147,7 +144,7 @@ get_ifa(char *cp, int n) sa = (struct sockaddr *)cp; if (i == RTA_IFA) return (sa); - ADVANCE(cp, sa); + RT_ADVANCE(cp, sa); } return (NULL); diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 9c4557a03f..0e9363d4f7 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -62,18 +62,6 @@ #include "ifconfig.h" -/* - * This macro returns the size of a struct sockaddr when passed - * through a routing socket. Basically we round up sa_len to - * a multiple of sizeof(long), with a minimum of sizeof(long). - * The check for a NULL pointer is just a convenience, probably never used. - * The case sa_len == 0 should only apply to empty structures. - */ -#define SA_SIZE(sa) \ - ( (!(sa) || ((struct sockaddr *)(sa))->sa_len == 0) ? \ - sizeof(long) : \ - 1 + ( (((struct sockaddr *)(sa))->sa_len - 1) | (sizeof(long) - 1) ) ) - /* * Since "struct ifreq" is composed of various union members, callers * should pay special attention to interprete the value. @@ -867,7 +855,7 @@ rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinfo *rtinfo) if ((rtinfo->rti_addrs & (1 << i)) == 0) continue; rtinfo->rti_info[i] = sa = (struct sockaddr *)cp; - cp += SA_SIZE(sa); + RT_ADVANCE(cp, sa); } } diff --git a/sbin/natd/natd.c b/sbin/natd/natd.c index 933120f9de..c1684f846b 100644 --- a/sbin/natd/natd.c +++ b/sbin/natd/natd.c @@ -742,13 +742,9 @@ SetAliasAddressFromIfName(const char *ifn) int i; char *cp = (char *)(ifam + 1); -#define ROUNDUP(a) \ - ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) -#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) - for (i = 1; i < RTA_IFA; i <<= 1) if (ifam->ifam_addrs & i) - ADVANCE(cp, (struct sockaddr *)cp); + RT_ADVANCE(cp, (struct sockaddr *)cp); if (((struct sockaddr *)cp)->sa_family == AF_INET) { s_in = (struct sockaddr_in *)cp; break; diff --git a/sbin/route/route.c b/sbin/route/route.c index f593a7a0b2..924c7646c6 100644 --- a/sbin/route/route.c +++ b/sbin/route/route.c @@ -122,10 +122,6 @@ usage(const char *cp) /* NOTREACHED */ } -#define ROUNDUP(a) \ - ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) -#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) - int main(int argc, char **argv) { @@ -299,7 +295,7 @@ bad: usage(*argv); printf("%-20.20s ", rtm->rtm_flags & RTF_HOST ? routename(sa) : netname(sa)); } - sa = (struct sockaddr *)(ROUNDUP(sa->sa_len) + + sa = (struct sockaddr *)(RT_ROUNDUP(sa->sa_len) + (char *)sa); if (wflag) { printf("%-20s ", routename(sa)); @@ -1262,7 +1258,7 @@ rtmsg(int cmd, int flags) #define NEXTADDR(w, u) \ if (rtm_addrs & (w)) {\ - l = ROUNDUP(u.sa.sa_len); memmove(cp, &(u), l); cp += l;\ + l = RT_ROUNDUP(u.sa.sa_len); memmove(cp, &(u), l); cp += l;\ if (verbose) sodump(&(u),"u");\ } @@ -1504,7 +1500,7 @@ print_getmsg(struct rt_msghdr *rtm, int msglen) ifp = (struct sockaddr_dl *)sa; break; } - ADVANCE(cp, sa); + RT_ADVANCE(cp, sa); } if (dst != NULL && mask != NULL) mask->sa_family = dst->sa_family; /* XXX */ @@ -1586,7 +1582,7 @@ pmsg_addrs(char *cp, int addrs) if (i & addrs) { sa = (struct sockaddr *)cp; printf(" %s", routename(sa)); - ADVANCE(cp, sa); + RT_ADVANCE(cp, sa); } putchar('\n'); fflush(stdout); diff --git a/sbin/route/show.c b/sbin/route/show.c index cefd49c604..47fb057662 100644 --- a/sbin/route/show.c +++ b/sbin/route/show.c @@ -55,10 +55,6 @@ #include "extern.h" #include "keywords.h" -#define ROUNDUP(a) \ - ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) -#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) - /* * Definitions for showing gateway flags. */ @@ -233,7 +229,7 @@ p_rtentry(struct rt_msghdr *rtm) p_sockaddr(sa, 0, WID_DST + WID_GW + 2); } else { width = p_sockaddr(sa, rtm->rtm_flags, WID_DST); - sa = (struct sockaddr *)(ROUNDUP(sa->sa_len) + (char *)sa); + sa = (struct sockaddr *)(RT_ROUNDUP(sa->sa_len) + (char *)sa); p_sockaddr(sa, 0, WID_GW + WID_DST - width); } p_flags(rtm->rtm_flags & interesting, "%-6.6s "); diff --git a/sbin/routed/if.c b/sbin/routed/if.c index 5060b825b9..0dbdf5aba0 100644 --- a/sbin/routed/if.c +++ b/sbin/routed/if.c @@ -636,8 +636,7 @@ rt_xaddrs(struct rt_addrinfo *info, #define ROUNDUP(a) ((a) > 0 ? (1 + (((a) - 1) | (sizeof(__uint64_t) - 1))) \ : sizeof(__uint64_t)) #else -#define ROUNDUP(a) ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) \ - : sizeof(long)) +#define ROUNDUP(a) RT_ROUNDUP(a) #endif diff --git a/sys/net/if.c b/sys/net/if.c index c4cfa02a14..f8b77ad021 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -545,11 +545,9 @@ if_attach(struct ifnet *ifp, lwkt_serialize_t serializer) namelen = strlen(ifp->if_xname); masklen = offsetof(struct sockaddr_dl, sdl_data[0]) + namelen; socksize = masklen + ifp->if_addrlen; -#define ROUNDUP(a) (1 + (((a) - 1) | (sizeof(long) - 1))) if (socksize < sizeof(*sdl)) socksize = sizeof(*sdl); - socksize = ROUNDUP(socksize); -#undef ROUNDUP + socksize = RT_ROUNDUP(socksize); ifasize = sizeof(struct ifaddr) + 2 * socksize; ifa = ifa_create(ifasize, M_WAITOK); sdl = (struct sockaddr_dl *)(ifa + 1); diff --git a/sys/net/route.c b/sys/net/route.c index cf35135008..b00cc8e397 100644 --- a/sys/net/route.c +++ b/sys/net/route.c @@ -1155,14 +1155,12 @@ rt_fixchange(struct radix_node *rn, void *vp) rt->rt_flags, NULL); } -#define ROUNDUP(a) (a>0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) - int rt_setgate(struct rtentry *rt0, struct sockaddr *dst, struct sockaddr *gate, boolean_t generate_report) { char *space, *oldspace; - int dlen = ROUNDUP(dst->sa_len), glen = ROUNDUP(gate->sa_len); + int dlen = RT_ROUNDUP(dst->sa_len), glen = RT_ROUNDUP(gate->sa_len); struct rtentry *rt = rt0; struct radix_node_head *rnh = rt_tables[mycpuid][dst->sa_family]; @@ -1191,7 +1189,8 @@ rt_setgate(struct rtentry *rt0, struct sockaddr *dst, struct sockaddr *gate, * if we need to malloc a new chunk, then keep the old one around * till we don't need it any more. */ - if (rt->rt_gateway == NULL || glen > ROUNDUP(rt->rt_gateway->sa_len)) { + if (rt->rt_gateway == NULL || + glen > RT_ROUNDUP(rt->rt_gateway->sa_len)) { oldspace = (char *)rt_key(rt); R_Malloc(space, char *, dlen + glen); if (space == NULL) @@ -1331,7 +1330,7 @@ rt_setshims(struct rtentry *rt, struct sockaddr **rt_shim){ if (shim == NULL) break; - shimlen = ROUNDUP(shim->sa_len); + shimlen = RT_ROUNDUP(shim->sa_len); R_Malloc(rt->rt_shim[i], struct sockaddr *, shimlen); bcopy(shim, rt->rt_shim[i], shimlen); } diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index 6a60ca53d1..82bbb6503e 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -779,9 +779,6 @@ rt_setmetrics(u_long which, struct rt_metrics *in, struct rt_metrics *out) #undef setmetric } -#define ROUNDUP(a) \ - ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) - /* * Extract the addresses of the passed sockaddrs. * Do a little sanity checking so as to avoid bad memory references. @@ -823,7 +820,7 @@ rt_xaddrs(char *cp, char *cplim, struct rt_addrinfo *rtinfo) /* Accept the sockaddr. */ rtinfo->rti_info[i] = sa; - cp += ROUNDUP(sa->sa_len); + cp += RT_ROUNDUP(sa->sa_len); } return (0); } @@ -856,7 +853,7 @@ rt_msgsize(int type, struct rt_addrinfo *rtinfo) len = rt_msghdrsize(type); for (i = 0; i < RTAX_MAX; i++) { if (rtinfo->rti_info[i] != NULL) - len += ROUNDUP(rtinfo->rti_info[i]->sa_len); + len += RT_ROUNDUP(rtinfo->rti_info[i]->sa_len); } len = ALIGN(len); return len; @@ -892,7 +889,7 @@ rt_msg_buffer(int type, struct rt_addrinfo *rtinfo, void *buf, int msglen) if ((sa = rtinfo->rti_info[i]) == NULL) continue; rtinfo->rti_addrs |= (1 << i); - dlen = ROUNDUP(sa->sa_len); + dlen = RT_ROUNDUP(sa->sa_len); bcopy(sa, cp, dlen); cp += dlen; } @@ -934,7 +931,7 @@ rt_msg_mbuf(int type, struct rt_addrinfo *rtinfo) if ((sa = rtinfo->rti_info[i]) == NULL) continue; rtinfo->rti_addrs |= (1 << i); - dlen = ROUNDUP(sa->sa_len); + dlen = RT_ROUNDUP(sa->sa_len); m_copyback(m, len, dlen, (caddr_t)sa); /* can grow mbuf chain */ len += dlen; } diff --git a/sys/netgraph/eiface/ng_eiface.c b/sys/netgraph/eiface/ng_eiface.c index 939a2fd6be..53b620c919 100644 --- a/sys/netgraph/eiface/ng_eiface.c +++ b/sys/netgraph/eiface/ng_eiface.c @@ -434,7 +434,7 @@ ng_eiface_rcvmsg(node_p node, struct ng_mesg *msg, caddr_t ptr; int buflen; -#define SA_SIZE(s) ((s)->sa_lensa_len) +#define SA_SIZE(s) RT_ROUNDUP((s)->sa_len) /* Determine size of response and allocate it */ buflen = 0; diff --git a/sys/netgraph7/eiface/ng_eiface.c b/sys/netgraph7/eiface/ng_eiface.c index 7c57c28a2e..45b36c1962 100644 --- a/sys/netgraph7/eiface/ng_eiface.c +++ b/sys/netgraph7/eiface/ng_eiface.c @@ -42,6 +42,7 @@ #include #include #include +#include #include #include @@ -450,7 +451,7 @@ ng_eiface_rcvmsg(node_p node, item_p item, hook_p lasthook) caddr_t ptr; int buflen; -#define SA_SIZE(s) ((s)->sa_lensa_len) +#define SA_SIZE(s) RT_ROUNDUP((s)->sa_len) /* Determine size of response and allocate it */ buflen = 0; diff --git a/tools/tools/net80211/wlanwatch/wlanwatch.c b/tools/tools/net80211/wlanwatch/wlanwatch.c index 1aba01da11..27ed2176bf 100644 --- a/tools/tools/net80211/wlanwatch/wlanwatch.c +++ b/tools/tools/net80211/wlanwatch/wlanwatch.c @@ -231,20 +231,6 @@ routename(struct sockaddr *sa) return (line); } -#ifndef SA_SIZE -/* - * This macro returns the size of a struct sockaddr when passed - * through a routing socket. Basically we round up sa_len to - * a multiple of sizeof(long), with a minimum of sizeof(long). - * The check for a NULL pointer is just a convenience, probably never used. - * The case sa_len == 0 should only apply to empty structures. - */ -#define SA_SIZE(sa) \ - ( (!(sa) || ((struct sockaddr *)(sa))->sa_len == 0) ? \ - sizeof(long) : \ - 1 + ( (((struct sockaddr *)(sa))->sa_len - 1) | (sizeof(long) - 1) ) ) -#endif - static void pmsg_addrs(char *cp, int addrs) { @@ -262,7 +248,7 @@ pmsg_addrs(char *cp, int addrs) if (i & addrs) { sa = (struct sockaddr *)cp; printf(" %s", routename(sa)); - cp += SA_SIZE(sa); + RT_ADVANCE(cp, sa); } putchar('\n'); } diff --git a/usr.bin/netstat/route.c b/usr.bin/netstat/route.c index 5bca67d008..f613e8c9ad 100644 --- a/usr.bin/netstat/route.c +++ b/usr.bin/netstat/route.c @@ -63,12 +63,6 @@ #define kget(p, d) (kread((u_long)(p), (char *)&(d), sizeof (d))) - -/* alignment constraint for routing socket */ -#define ROUNDUP(a) \ - ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) -#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) - /* * Definitions for showing gateway flags. */ @@ -594,7 +588,7 @@ np_rtentry(struct rt_msghdr *rtm) p_sockaddr(sa, NULL, 0, 36); else { p_sockaddr(sa, NULL, rtm->rtm_flags, 16); - sa = (struct sockaddr *)(ROUNDUP(sa->sa_len) + (char *)sa); + sa = (struct sockaddr *)(RT_ROUNDUP(sa->sa_len) + (char *)sa); p_sockaddr(sa, NULL, 0, 18); } p_flags(rtm->rtm_flags & interesting, "%-6.6s "); diff --git a/usr.sbin/arp/arp.c b/usr.sbin/arp/arp.c index 3d7e0b42b8..4fd5f84d98 100644 --- a/usr.sbin/arp/arp.c +++ b/usr.sbin/arp/arp.c @@ -107,8 +107,6 @@ struct { #define F_REPLACE 4 #define F_DELETE 5 -#define ROUNDUP(a) \ - ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) #define SETFUNC(f) { if (func) usage(); func = (f); } int @@ -316,7 +314,7 @@ tryagain: return(1); } addr = (struct sockaddr_inarp *)(rtm + 1); - sdl = (struct sockaddr_dl *)(ROUNDUP(addr->sin_len) + (char *)addr); + sdl = (struct sockaddr_dl *)(RT_ROUNDUP(addr->sin_len) + (char *)addr); if (addr->sin_addr.s_addr == sin_m.sin_addr.s_addr) { if (sdl->sdl_family == AF_LINK && (rtm->rtm_flags & RTF_LLINFO) && @@ -408,7 +406,7 @@ tryagain: return(1); } addr = (struct sockaddr_inarp *)(rtm + 1); - sdl = (struct sockaddr_dl *)(ROUNDUP(addr->sin_len) + (char *)addr); + sdl = (struct sockaddr_dl *)(RT_ROUNDUP(addr->sin_len) + (char *)addr); if (addr->sin_addr.s_addr == sin_m.sin_addr.s_addr) { if (sdl->sdl_family == AF_LINK && (rtm->rtm_flags & RTF_LLINFO) && @@ -486,7 +484,8 @@ search(u_long addr, void (*action)(struct sockaddr_dl *sdl, for (next = buf; next < lim; next += rtm->rtm_msglen) { rtm = (struct rt_msghdr *)next; sin2 = (struct sockaddr_inarp *)(rtm + 1); - sdl = (struct sockaddr_dl *)((char *)sin2 + ROUNDUP(sin2->sin_len)); + sdl = (struct sockaddr_dl *)((char *)sin2 + + RT_ROUNDUP(sin2->sin_len)); if (addr) { if (addr != sin2->sin_addr.s_addr) continue; @@ -533,7 +532,7 @@ print_entry(struct sockaddr_dl *sdl, printf(" published (proxy only)"); if (rtm->rtm_addrs & RTA_NETMASK) { addr = (struct sockaddr_inarp *) - (ROUNDUP(sdl->sdl_len) + (char *)sdl); + (RT_ROUNDUP(sdl->sdl_len) + (char *)sdl); if (addr->sin_addr.s_addr == 0xffffffff) printf(" published"); if (addr->sin_len != 8) @@ -633,9 +632,12 @@ rtmsg(int cmd) case RTM_GET: rtm->rtm_addrs |= RTA_DST; } -#define NEXTADDR(w, s) \ - if (rtm->rtm_addrs & (w)) { \ - bcopy((char *)&s, cp, sizeof(s)); cp += ROUNDUP(sizeof(s));} + +#define NEXTADDR(w, s) \ + if (rtm->rtm_addrs & (w)) { \ + bcopy((char *)&s, cp, sizeof(s)); \ + cp += RT_ROUNDUP(sizeof(s)); \ + } NEXTADDR(RTA_DST, sin_m); NEXTADDR(RTA_GATEWAY, sdl_m); diff --git a/usr.sbin/gifconfig/gifconfig.c b/usr.sbin/gifconfig/gifconfig.c index 79a4f7fbf8..5672f0a3f0 100644 --- a/usr.sbin/gifconfig/gifconfig.c +++ b/usr.sbin/gifconfig/gifconfig.c @@ -170,17 +170,6 @@ struct afswtch *afp = NULL; /*the address family being set or asked about*/ void rt_xaddrs(caddr_t, caddr_t, struct rt_addrinfo *); int ifconfig(int argc, char *argv[], int af, struct afswtch *rafp); - - -/* - * Expand the compacted form of addresses as returned via the - * configuration read via sysctl(). - */ - -#define ROUNDUP(a) \ - ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) -#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) - void rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinfo *rtinfo) { @@ -192,7 +181,7 @@ rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinfo *rtinfo) if ((rtinfo->rti_addrs & (1 << i)) == 0) continue; rtinfo->rti_info[i] = sa = (struct sockaddr *)cp; - ADVANCE(cp, sa); + RT_ADVANCE(cp, sa); } } diff --git a/usr.sbin/ndp/ndp.c b/usr.sbin/ndp/ndp.c index 5210558e46..184d20e106 100644 --- a/usr.sbin/ndp/ndp.c +++ b/usr.sbin/ndp/ndp.c @@ -113,11 +113,6 @@ #define NI_WITHSCOPEID 0 #endif -/* packing rule for routing socket */ -#define ROUNDUP(a) \ - ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) -#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) - static int pid; static int cflag; static int nflag; @@ -400,7 +395,7 @@ set(int argc, char **argv) return (1); } sin = (struct sockaddr_in6 *)(rtm + 1); - sdl = (struct sockaddr_dl *)(ROUNDUP(sin->sin6_len) + (char *)sin); + sdl = (struct sockaddr_dl *)(RT_ROUNDUP(sin->sin6_len) + (char *)sin); if (IN6_ARE_ADDR_EQUAL(&sin->sin6_addr, &sin_m.sin6_addr)) { if (sdl->sdl_family == AF_LINK && (rtm->rtm_flags & RTF_LLINFO) && @@ -497,7 +492,7 @@ delete(char *host) return (1); } sin = (struct sockaddr_in6 *)(rtm + 1); - sdl = (struct sockaddr_dl *)(ROUNDUP(sin->sin6_len) + (char *)sin); + sdl = (struct sockaddr_dl *)(RT_ROUNDUP(sin->sin6_len) + (char *)sin); if (IN6_ARE_ADDR_EQUAL(&sin->sin6_addr, &sin_m.sin6_addr)) { if (sdl->sdl_family == AF_LINK && (rtm->rtm_flags & RTF_LLINFO) && @@ -589,7 +584,8 @@ again:; rtm = (struct rt_msghdr *)next; sin = (struct sockaddr_in6 *)(rtm + 1); - sdl = (struct sockaddr_dl *)((char *)sin + ROUNDUP(sin->sin6_len)); + sdl = (struct sockaddr_dl *)((char *)sin + + RT_ROUNDUP(sin->sin6_len)); /* * Some OSes can produce a route that has the LINK flag but diff --git a/usr.sbin/ppp/defs.h b/usr.sbin/ppp/defs.h index 8418573db5..3b562ba651 100644 --- a/usr.sbin/ppp/defs.h +++ b/usr.sbin/ppp/defs.h @@ -116,8 +116,6 @@ #define LOAD_QUIETLY 1 #define LOAD_VERBOSLY 2 -#define ROUNDUP(x) ((x) ? (1 + (((x) - 1) | (sizeof(long) - 1))) : sizeof(long)) - #if defined(__NetBSD__) extern void randinit(void); #else diff --git a/usr.sbin/ppp/iface.c b/usr.sbin/ppp/iface.c index 311667c5a4..9126e40c76 100644 --- a/usr.sbin/ppp/iface.c +++ b/usr.sbin/ppp/iface.c @@ -713,7 +713,7 @@ iface_ParseHdr(struct ifa_msghdr *ifam, struct sockaddr *sa[RTAX_MAX]) for (rtax = 0; rtax < RTAX_MAX; rtax++) if (ifam->ifam_addrs & (1 << rtax)) { sa[rtax] = (struct sockaddr *)wp; - wp += ROUNDUP(sa[rtax]->sa_len); + wp += RT_ROUNDUP(sa[rtax]->sa_len); } else sa[rtax] = NULL; } diff --git a/usr.sbin/ppp/route.c b/usr.sbin/ppp/route.c index 666c6e3c2d..7b12266fba 100644 --- a/usr.sbin/ppp/route.c +++ b/usr.sbin/ppp/route.c @@ -318,7 +318,7 @@ route_ParseHdr(struct rt_msghdr *rtm, struct sockaddr *sa[RTAX_MAX]) for (rtax = 0; rtax < RTAX_MAX; rtax++) if (rtm->rtm_addrs & (1 << rtax)) { sa[rtax] = (struct sockaddr *)wp; - wp += ROUNDUP(sa[rtax]->sa_len); + wp += RT_ROUNDUP(sa[rtax]->sa_len); if (sa[rtax]->sa_family == 0) sa[rtax] = NULL; /* ??? */ } else @@ -701,7 +701,7 @@ memcpy_roundup(char *cp, const void *data, size_t len) { size_t padlen; - padlen = ROUNDUP(len); + padlen = RT_ROUNDUP(len); memcpy(cp, data, len); if (padlen > len) memset(cp + len, '\0', padlen - len); diff --git a/usr.sbin/route6d/route6d.c b/usr.sbin/route6d/route6d.c index fffe6190ee..d8df30b8ca 100644 --- a/usr.sbin/route6d/route6d.c +++ b/usr.sbin/route6d/route6d.c @@ -78,11 +78,6 @@ #define INIT_INTERVAL6 10 /* Wait to submit a initial riprequest */ #endif -/* alignment constraint for routing socket */ -#define ROUNDUP(a) \ - ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) -#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) - /* * Following two macros are highly depending on KAME Release */ @@ -1555,7 +1550,7 @@ rtrecv(void) for (i = 0; i < RTAX_MAX; i++) { if (addrs & (1 << i)) { rta[i] = (struct sockaddr_in6 *)q; - q += ROUNDUP(rta[i]->sin6_len); + q += RT_ROUNDUP(rta[i]->sin6_len); } } @@ -2464,22 +2459,22 @@ rt_entry(struct rt_msghdr *rtm, int again) if ((rtm->rtm_addrs & RTA_DST) == 0) return; /* ignore routes without destination address */ sin6_dst = (struct sockaddr_in6 *)rtmp; - rtmp += ROUNDUP(sin6_dst->sin6_len); + rtmp += RT_ROUNDUP(sin6_dst->sin6_len); if (rtm->rtm_addrs & RTA_GATEWAY) { sin6_gw = (struct sockaddr_in6 *)rtmp; - rtmp += ROUNDUP(sin6_gw->sin6_len); + rtmp += RT_ROUNDUP(sin6_gw->sin6_len); } if (rtm->rtm_addrs & RTA_NETMASK) { sin6_mask = (struct sockaddr_in6 *)rtmp; - rtmp += ROUNDUP(sin6_mask->sin6_len); + rtmp += RT_ROUNDUP(sin6_mask->sin6_len); } if (rtm->rtm_addrs & RTA_GENMASK) { sin6_genmask = (struct sockaddr_in6 *)rtmp; - rtmp += ROUNDUP(sin6_genmask->sin6_len); + rtmp += RT_ROUNDUP(sin6_genmask->sin6_len); } if (rtm->rtm_addrs & RTA_IFP) { sin6_ifp = (struct sockaddr_in6 *)rtmp; - rtmp += ROUNDUP(sin6_ifp->sin6_len); + rtmp += RT_ROUNDUP(sin6_ifp->sin6_len); } /* Destination */ @@ -2628,17 +2623,17 @@ addroute(struct riprt *rrt, const struct in6_addr *gw, struct ifc *ifcp) sin->sin6_len = sizeof(struct sockaddr_in6); sin->sin6_family = AF_INET6; sin->sin6_addr = np->rip6_dest; - sin = (struct sockaddr_in6 *)((char *)sin + ROUNDUP(sin->sin6_len)); + sin = (struct sockaddr_in6 *)((char *)sin + RT_ROUNDUP(sin->sin6_len)); /* Gateway */ sin->sin6_len = sizeof(struct sockaddr_in6); sin->sin6_family = AF_INET6; sin->sin6_addr = *gw; - sin = (struct sockaddr_in6 *)((char *)sin + ROUNDUP(sin->sin6_len)); + sin = (struct sockaddr_in6 *)((char *)sin + RT_ROUNDUP(sin->sin6_len)); /* Netmask */ sin->sin6_len = sizeof(struct sockaddr_in6); sin->sin6_family = AF_INET6; sin->sin6_addr = *(plen2mask(np->rip6_plen)); - sin = (struct sockaddr_in6 *)((char *)sin + ROUNDUP(sin->sin6_len)); + sin = (struct sockaddr_in6 *)((char *)sin + RT_ROUNDUP(sin->sin6_len)); len = (char *)sin - (char *)buf; rtm->rtm_msglen = len; @@ -2693,17 +2688,17 @@ delroute(struct netinfo6 *np, struct in6_addr *gw) sin->sin6_len = sizeof(struct sockaddr_in6); sin->sin6_family = AF_INET6; sin->sin6_addr = np->rip6_dest; - sin = (struct sockaddr_in6 *)((char *)sin + ROUNDUP(sin->sin6_len)); + sin = (struct sockaddr_in6 *)((char *)sin + RT_ROUNDUP(sin->sin6_len)); /* Gateway */ sin->sin6_len = sizeof(struct sockaddr_in6); sin->sin6_family = AF_INET6; sin->sin6_addr = *gw; - sin = (struct sockaddr_in6 *)((char *)sin + ROUNDUP(sin->sin6_len)); + sin = (struct sockaddr_in6 *)((char *)sin + RT_ROUNDUP(sin->sin6_len)); /* Netmask */ sin->sin6_len = sizeof(struct sockaddr_in6); sin->sin6_family = AF_INET6; sin->sin6_addr = *(plen2mask(np->rip6_plen)); - sin = (struct sockaddr_in6 *)((char *)sin + ROUNDUP(sin->sin6_len)); + sin = (struct sockaddr_in6 *)((char *)sin + RT_ROUNDUP(sin->sin6_len)); len = (char *)sin - (char *)buf; rtm->rtm_msglen = len; @@ -2764,7 +2759,7 @@ getroute(struct netinfo6 *np, struct in6_addr *gw) sin = (struct sockaddr_in6 *)&buf[sizeof(struct rt_msghdr)]; if (rtm->rtm_addrs & RTA_DST) { sin = (struct sockaddr_in6 *) - ((char *)sin + ROUNDUP(sin->sin6_len)); + ((char *)sin + RT_ROUNDUP(sin->sin6_len)); } if (rtm->rtm_addrs & RTA_GATEWAY) { *gw = sin->sin6_addr; diff --git a/usr.sbin/rtadvd/if.c b/usr.sbin/rtadvd/if.c index 90408e6fd3..32efd9be5f 100644 --- a/usr.sbin/rtadvd/if.c +++ b/usr.sbin/rtadvd/if.c @@ -63,14 +63,6 @@ #include "rtadvd.h" #include "if.h" -#define ROUNDUP(a, size) \ - (((a) & ((size)-1)) ? (1 + ((a) | ((size)-1))) : (a)) - -#define NEXT_SA(ap) (ap) = (struct sockaddr *) \ - ((caddr_t)(ap) + ((ap)->sa_len ? ROUNDUP((ap)->sa_len,\ - sizeof(u_long)) :\ - sizeof(u_long))) - struct if_msghdr **iflist; int iflist_init_ok; size_t ifblock_size; @@ -88,7 +80,7 @@ get_rtaddrs(int addrs, struct sockaddr *sa, struct sockaddr **rti_info) for (i = 0; i < RTAX_MAX; i++) { if (addrs & (1 << i)) { rti_info[i] = sa; - NEXT_SA(sa); + RT_ADVANCE(sa, sa); } else rti_info[i] = NULL; diff --git a/usr.sbin/rtsold/if.c b/usr.sbin/rtsold/if.c index a45437fff2..cb273c3cab 100644 --- a/usr.sbin/rtsold/if.c +++ b/usr.sbin/rtsold/if.c @@ -205,13 +205,6 @@ interface_status(struct ifinfo *ifinfo) return(1); } -#define ROUNDUP(a, size) \ - (((a) & ((size)-1)) ? (1 + ((a) | ((size)-1))) : (a)) - -#define NEXT_SA(ap) (ap) = (struct sockaddr *) \ - ((caddr_t)(ap) + ((ap)->sa_len ? ROUNDUP((ap)->sa_len,\ - sizeof(u_long)) :\ - sizeof(u_long))) #define ROUNDUP8(a) (1 + (((a) - 1) | 7)) int @@ -461,7 +454,7 @@ get_rtaddrs(int addrs, struct sockaddr *sa, struct sockaddr **rti_info) for (i = 0; i < RTAX_MAX; i++) { if (addrs & (1 << i)) { rti_info[i] = sa; - NEXT_SA(sa); + RT_ADVANCE(sa, sa); } else rti_info[i] = NULL; diff --git a/usr.sbin/rtsold/rtsock.c b/usr.sbin/rtsold/rtsock.c index bf0c322f19..fb7acc6815 100644 --- a/usr.sbin/rtsold/rtsock.c +++ b/usr.sbin/rtsold/rtsock.c @@ -56,14 +56,6 @@ #include #include "rtsold.h" -#define ROUNDUP(a, size) \ - (((a) & ((size)-1)) ? (1 + ((a) | ((size)-1))) : (a)) - -#define NEXT_SA(ap) (ap) = (struct sockaddr *) \ - ((caddr_t)(ap) + \ - ((ap)->sa_len ? ROUNDUP((ap)->sa_len, sizeof(u_long)) \ - : sizeof(u_long))) - #ifdef RTM_IFANNOUNCE /*NetBSD 1.5 or later*/ static int rtsock_input_ifannounce(int, struct rt_msghdr *, char *); #endif diff --git a/usr.sbin/rwhod/rwhod.c b/usr.sbin/rwhod/rwhod.c index d7c00cef71..3ca3a77706 100644 --- a/usr.sbin/rwhod/rwhod.c +++ b/usr.sbin/rwhod/rwhod.c @@ -574,10 +574,6 @@ quit(const char *msg, int wrterrno) exit(1); } -#define ROUNDUP(a) \ - ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) -#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) - void rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinfo *rtinfo) { @@ -589,7 +585,7 @@ rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinfo *rtinfo) if ((rtinfo->rti_addrs & (1 << i)) == 0) continue; rtinfo->rti_info[i] = sa = (struct sockaddr *)cp; - ADVANCE(cp, sa); + RT_ADVANCE(cp, sa); } }