From f83ca5e62d50a0c97e6da783970932ec1865b591 Mon Sep 17 00:00:00 2001 From: luigi Date: Tue, 13 Apr 2004 11:22:22 +0000 Subject: route.h: introduce a macro, SA_SIZE(struct sockaddr *) which returns the space occupied by a struct sockaddr when passed through a routing socket. Use it to replace the macro ROUNDUP(int), that does the same but is redefined by every file which uses it, courtesy of the School of Cut'n'Paste Programming(TM). (partial) userland changes to follow. --- sys/net/rtsock.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'sys/net/rtsock.c') diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index 7bdd0d7..9189aaa 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -556,9 +556,6 @@ rt_getmetrics(struct rt_metrics_lite *in, struct rt_metrics *out) #undef metric } -#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. @@ -567,9 +564,8 @@ rt_getmetrics(struct rt_metrics_lite *in, struct rt_metrics *out) static int rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinfo *rtinfo) { -#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) - register struct sockaddr *sa; - register int i; + struct sockaddr *sa; + int i; for (i = 0; i < RTAX_MAX && cp < cplim; i++) { if ((rtinfo->rti_addrs & (1 << i)) == 0) @@ -593,10 +589,9 @@ rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinfo *rtinfo) } /* accept it */ rtinfo->rti_info[i] = sa; - ADVANCE(cp, sa); + cp += SA_SIZE(sa); } return (0); -#undef ADVANCE } static struct mbuf * @@ -651,7 +646,7 @@ rt_msg1(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 = SA_SIZE(sa); m_copyback(m, len, dlen, (caddr_t)sa); len += dlen; } @@ -701,7 +696,7 @@ again: if ((sa = rtinfo->rti_info[i]) == 0) continue; rtinfo->rti_addrs |= (1 << i); - dlen = ROUNDUP(sa->sa_len); + dlen = SA_SIZE(sa); if (cp) { bcopy((caddr_t)sa, cp, (unsigned)dlen); cp += dlen; -- cgit v1.1