ROUND_DOWN
#define ROUND_UP(n, align) ROUND_DOWN(((uintptr_t)n) + (align) - 1l, \
limit = (char **)ROUND_DOWN(buffer + buflen, sizeof (char *));
addrp6 = (struct in6_addr *)ROUND_DOWN(buffer + buflen,
addrvec = (char **)ROUND_DOWN(addrp6, sizeof (*addrvec));
addrp = (struct in_addr *)ROUND_DOWN(buffer + buflen,
addrvec = (char **)ROUND_DOWN(addrp, sizeof (*addrvec));
buff_locp = (char *)ROUND_DOWN(limit, sizeof (struct in_addr));
buff_locp = (char *)ROUND_DOWN(limit, sizeof (struct in6_addr));
addrp = (struct in_addr *)ROUND_DOWN(buffer + buflen,
addr6p = (struct in6_addr *)ROUND_DOWN(buffer + buflen,
limit = (char **)ROUND_DOWN(buffer + buflen, sizeof (char *));
addrp = (struct in_addr *)ROUND_DOWN(limit, sizeof (*addrp));
addrp6 = (struct in6_addr *)ROUND_DOWN(limit, sizeof (*addrp6));
addrp = (struct in_addr *)(ROUND_DOWN(args->buf.buffer +
hp->h_addr_list = (char **)(ROUND_DOWN(addrp -
(ROUND_DOWN(args->buf.buffer + args->buf.buflen,
hp->h_addr_list = (char **)(ROUND_DOWN(addrp6 -