frame work of a character device driver