[[!template id=project title="Revamped struct protosw" contact=""" [tech-kern](mailto:tech-kern@NetBSD.org), [tech-net](mailto:tech-net@NetBSD.org), [board](mailto:board@NetBSD.org), [core](mailto:core@NetBSD.org) """ difficulty="hard" funded="The NetBSD Foundation" done_by="Tyler Retzlaff" description=""" The goal of this project is to split out obvious `PR*_xxx` that should have never been dispatched through the `pr_usrreq`/`pr_ctloutput`. Note that `pr_ctloutput` should be replaced by `pr_getopt`/`pr_setopt`: * `PRU_CONTROL` -> `pr_ioctl` * `PRU_PURGEIF` -> `pr_purgeif` * `PRC0_GETOPT` -> `pr_getopt` * `PRC0_GETOPT` -> `pr_setopt` It's expected that `pr_drain` will just schedule a [[kernel continuation|kernel_continuations]] such as: * `pr_init` -> `int pr_init(void *dsc);` * `int pr_fini(void *dsc)` """ ]] [[!tag smp_networking]]