TODO:
	- fix user/kernel pointer mess in the ioctl handlers as pointed
	  out by sparse.
	- resolve the ioctls and see if most of them can just be simple
	  sysfs files
	- fix locking issues that sparse points out at the least.
