In the Red Hat documentation on Device Mapper, it reads:
"the application interface to the Device Mapper is the ioctl system call."
So far, I understand that the ioctls are sent to /dev/mapper/control (for most distributions), but it seems I will need to dig around the source code for dmsetup, libdevmapper, or similar to understand how the ioctls actually work and how to use them.
Are there any books, lectures, or documentation that expand on this topic? Am I stuck parsing through complicated source code? Am I better off using libdevmapper instead of the ioctl system calls? The man page for ioctl is too general to be of much use in this case.