kernel code reading: simple char device

This is an example from http://linuxgazette.net/125/mishra.html.

Usage:
1. insmod char_dev.ko
2. mknod /dev/my_device c 222 0
3. run the user space executable
kernel code test: dynamic allocate char device major number

Previous example hard code the major number to 222, which may fail if other
device is assigned with this number.

This one change to use the dynamic allocation method.
kernel code reading: iommu_group infrastructure
kernel code reading: each PE is given an iommu_group on powernv
kernel code test: print the Major/Minor device number for char dev
kernel code reading: specify the iommu_group id
kernel code reading: vfio_pci will create vfio_group for pci device
kernel code reading: this is the vfio infrastructure
kernel code reading: arch implementation for vfio
kernel code reading: connect vfio_container and vfio_group
qemu code reading: do pci-passthrough via vfio
kernel code reading: pktgen code reading