version 1.97, 2015/02/06 03:22:00 |
version 1.98, 2015/02/12 01:49:02 |
|
|
kread((u_long)rn, &rnode, sizeof(rnode)); |
kread((u_long)rn, &rnode, sizeof(rnode)); |
if (rnode.rn_b < 0) { |
if (rnode.rn_b < 0) { |
if (Aflag) |
if (Aflag) |
printf("%-16p ", hideroot ? 0 : rn); |
printf("%-16p ", rn); |
if (rnode.rn_flags & RNF_ROOT) { |
if (rnode.rn_flags & RNF_ROOT) { |
if (Aflag) |
if (Aflag) |
printf("(root node)%s", |
printf("(root node)%s", |
|
|
goto again; |
goto again; |
} else { |
} else { |
if (Aflag && do_rtent) { |
if (Aflag && do_rtent) { |
printf("%-16p ", hideroot ? 0 : rn); |
printf("%-16p ", rn); |
p_rtnode(); |
p_rtnode(); |
} |
} |
rn = rnode.rn_r; |
rn = rnode.rn_r; |
|
|
struct radix_mask *rm = rnode.rn_mklist; |
struct radix_mask *rm = rnode.rn_mklist; |
|
|
if (rnode.rn_b < 0) { |
if (rnode.rn_b < 0) { |
snprintf(nbuf, sizeof nbuf, " => %p", |
snprintf(nbuf, sizeof nbuf, " => %p", rnode.rn_dupedkey); |
hideroot ? 0 : rnode.rn_dupedkey); |
printf("\t (%p)%s", rnode.rn_p, rnode.rn_dupedkey ? nbuf : ""); |
printf("\t (%p)%s", hideroot ? 0 : rnode.rn_p, |
|
rnode.rn_dupedkey ? nbuf : ""); |
|
if (rnode.rn_mask) { |
if (rnode.rn_mask) { |
printf(" mask "); |
printf(" mask "); |
p_sockaddr(kgetsa((struct sockaddr *)rnode.rn_mask), |
p_sockaddr(kgetsa((struct sockaddr *)rnode.rn_mask), |
|
|
} else { |
} else { |
snprintf(nbuf, sizeof nbuf, "(%d)", rnode.rn_b); |
snprintf(nbuf, sizeof nbuf, "(%d)", rnode.rn_b); |
printf("%6.6s (%p) %16p : %16p", nbuf, |
printf("%6.6s (%p) %16p : %16p", nbuf, |
hideroot ? 0 : rnode.rn_p, |
rnode.rn_p, rnode.rn_l, rnode.rn_r); |
hideroot ? 0 : rnode.rn_l, |
|
hideroot ? 0 : rnode.rn_r); |
|
} |
} |
|
|
putchar(' '); |
putchar(' '); |
|
|
while (rm) { |
while (rm) { |
kread((u_long)rm, &rmask, sizeof(rmask)); |
kread((u_long)rm, &rmask, sizeof(rmask)); |
snprintf(nbuf, sizeof nbuf, " %d refs, ", rmask.rm_refs); |
snprintf(nbuf, sizeof nbuf, " %d refs, ", rmask.rm_refs); |
printf("\n\tmk = %p {(%d),%s", |
printf("\n\tmk = %p {(%d),%s", rm, -1 - rmask.rm_b, |
hideroot ? 0 : rm, |
rmask.rm_refs ? nbuf : " "); |
-1 - rmask.rm_b, rmask.rm_refs ? nbuf : " "); |
|
p_rtflags(rmask.rm_flags); |
p_rtflags(rmask.rm_flags); |
printf(", "); |
printf(", "); |
if (rmask.rm_flags & RNF_NORMAL) { |
if (rmask.rm_flags & RNF_NORMAL) { |
struct radix_node rnode_aux; |
struct radix_node rnode_aux; |
|
|
printf("leaf = %p ", hideroot ? 0 : rmask.rm_leaf); |
printf("leaf = %p ", rmask.rm_leaf); |
kread((u_long)rmask.rm_leaf, &rnode_aux, sizeof(rnode_aux)); |
kread((u_long)rmask.rm_leaf, &rnode_aux, sizeof(rnode_aux)); |
p_sockaddr(kgetsa((struct sockaddr *)rnode_aux.rn_mask), |
p_sockaddr(kgetsa((struct sockaddr *)rnode_aux.rn_mask), |
0, 0, -1); |
0, 0, -1); |