DEVMAP_CALLBACK_CTL(9S) | Data Structures for Drivers | DEVMAP_CALLBACK_CTL(9S) |
devmap_callback_ctl - device mapping-control structure
#include <sys/ddidevmap.h>
illumos DDI specific (illumos DDI).
A devmap_callback_ctl structure describes a set of callback routines that are called by the system to notify a device driver to manage events on the device mappings created by devmap_setup(9F) or ddi_devmap_segmap(9F).
Device drivers pass the initialized devmap_callback_ctl structure to either devmap_devmem_setup(9F) or devmap_umem_setup(9F) in the devmap(9E) entry point during the mapping setup. The system makes a private copy of the structure for later use. Device drivers can specify different devmap_callback_ctl for different mappings.
A device driver should allocate the device mapping control structure and initialize the following fields, if the driver wants the entry points to be called by the system:
devmap_rev
devmap_map
devmap_access
devmap_dup
devmap_unmap
int devmap_rev; int (*devmap_map)(devmap_cookie_t dhp, dev_t dev,
uint_t flags,offset_t off, size_t len, void **pvtp); int (*devmap_access)(devmap_cookie_t dhp, void *pvtp,
offset_t off, size_t len, uint_t type, uint_t rw); int (*devmap_dup)(devmap_cookie_t dhp, void *pvtp, devmap_cookie_t new_dhp, void **new_pvtp); void (*devmap_unmap)(devmap_cookie_t dhp, void *pvtp,
offset_t off, size_t len, devmap_cookie_t new_dhp1,
void **new_pvtp1, devmap_cookie_t new_dhp2, void **new_pvtp2);
exit(2), fork(2), mmap(2), munmap(2), devmap(9E), devmap_access(9E), devmap_dup(9E), devmap_map(9E), devmap_unmap(9E), ddi_devmap_segmap(9F), devmap_default_access(9F), devmap_devmem_setup(9F), devmap_do_ctxmgt(9F), devmap_setup(9F), devmap_umem_setup(9F)
Writing Device Drivers
July 24, 1996 | OmniOS |