In case of kernel-space network drivers, all three regions are mapped to kernel space, and any access to these from the user space is typically abstracted out via either ioctl() calls or read()/write() calls, from where a copy of the data is provided to the user-space application.
