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.
![](https://m.eet.com/media/1174619/emb111612_argawal01.png)