CPA-C+Øvelse+05

I første øvelse skal vi implementere init og exit.
 * Exercise 5.1**

Init: devno er hvor vi opretter de devicet, med de predefined major go minor numbers. err er registrering af devices. cdev_init er initiering af vores device cdev_add, her addes device.

i forløkken requestes alle gpio'erne (gpio_request spørger om gpio'en er tilstede) derefter bestemmes om det skal være in eller output.



mygpio_exit: gpio_free giver gpio'erne fri til at blive taget igen. unregister_chrdev_region, bryder forbindelse til hardware cdev_del fjerner device fuldstændigt.



mgpio_open: !trymodule_get(my_fops.owner) går ind og getter modulet



mgpio_release: module_put(my_fops.owner) i putter modulet



mgpio_write: copy_from_user kopiere far userspace ned til modulet. sscanf laver fra string til int pgio_set_value sætter porten til værdien 0 eller 1.

mygpio_read: copy_to_user kopiere fra module til user.