|
Abstract: . . . limitiamo ad un semplice messaggio. static int epp_release(struct inode *inode, struct file *filep) { printk("Device closed\n"); return 0; } 4 Page 7 3.3 Scrittura sul driver Questa procedura viene associata alla procedura write utilizzata dallu- tente. ` E importante notare che non occorrono particolari comandi per set- tare delle permission . . . . . . programmati inter- namente al kernel, ma che possono essere caricati nel sistema in caso di necessit`a. Questo permette di poter scrivere e modificare driver senza dover continuamente ricompilare il kernel. Questi moduli permettono laccesso anche agli utenti a zone protette della memoria o porte I/O del sistema. Per lo sviluppo, la compilazione e il caricamento di un driver occorre entrare nel sistema in qualit`a di superuser, . . . . . . Scrittura di moduli (driver) sotto Linux 2.6.x P r o v v i s o r i o Ing. El. Dipl. ETHZ Roberto Bucher 1 Scuola universitaria professionale della Svizzera Italiana Dipartimento di informatica ed elettrotecnica . . . . . . Scrittura di moduli (driver) sotto Linux 2.6.x P r o v v i s o r i o Ing. El. Dipl. ETHZ Roberto Bucher 1 Scuola universitaria professionale della Svizzera Italiana Dipartimento di informatica ed elettrotecnica . . . . . . Page 11 Appendice A Il driver completo #include < linux /module.h> #include < linux /config.h> #include < linux /init.h> #include < linux /fs.h> MODULE_LICENSE("GPL"); static int epp_open(struct inode *inode, struct file *filep) { printk("Device open\n"); return 0; } static int epp_release(struct inode *inode, struct . . . --2242,5,224,2231,11210
|