Page MenuHomeFreeBSD

net*: remove remnants of caddr_t
AbandonedPublic

Authored by glebius on Thu, Oct 15, 4:45 AM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Oct 16, 2:30 PM
Unknown Object (File)
Fri, Oct 16, 2:25 PM
Unknown Object (File)
Fri, Oct 16, 1:58 PM
Unknown Object (File)
Fri, Oct 16, 7:20 AM
Unknown Object (File)
Fri, Oct 16, 12:52 AM
Unknown Object (File)
Thu, Oct 15, 10:02 PM
Unknown Object (File)
Thu, Oct 15, 8:34 PM
Unknown Object (File)
Thu, Oct 15, 5:23 PM

Details

Summary

caddr_t is a typedef for a character pointer (char *) that originated in
Version 7 Unix, released by AT&T in 1979. It became obsolete in 1989,
when ANSI C introduced void *.

What's left:

  • ioctl(9) KPI still uses caddr_t, thus network related ioctl method still use it.
  • if_clone KPI, to be done separately.
  • bpf(4), to be done separately.
  • SCTP, let maintainers decide.
  • iflib(4), let maintainers decide.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 78233
Build 75116: arc lint + arc unit

Event Timeline

zlei added a subscriber: zlei.

Generally looks good to me.

sys/netinet/ip_input.c
1020

No need to cast to char *.

sys/netinet/tcp_output.c
2101
sys/netinet/tcp_stacks/rack.c
18121
sys/netinet/tcp_subr.c
1799
1799

Given m is a new allocated mbuf, I believe that ip6 will not overlap with the mbuf data. So we can safely use memcpy() other than bcopy().

Let transport decide.

1812
1846
1860
sys/netinet6/icmp6.c
1423

We can use memcpy here.

sys/netinet6/ip6_input.c
1032

Can safely use memcpy.

sys/netinet6/ip6_output.c
3194

Can safely use memcpy.

There are many places where memcpy() can be used. I don't want to mix that into this commit.