cambiamo la domanda (forse quella di prima è un pò troppo complicata).

supponiamo che io abbia il mio programma in c che mi apre il device driver in questo modo :
codice:
        static int dev;
	dev=open("/dev/strmod", O_RDWR);
	if (dev==-1) {
		perror("String Module Not Loaded");
		return -1;
	}
al momento dell'apertura :

1 - mi ritornerà un file descriptor per il device (dev)
2 - apre effettivamente il file/device (caricandolo in memoria);
3 - essendo un device, agirà sulla struct file_operations (invocando le funzioni che ho implementato io nel mio device).

dico giusto fin quì?

ora, la mia funzione per esempio è :
codice:
static int my_open(struct inode *inode, struct file *file) {
	//printk("String Device Opened %d\n", 2);
	
	int *count;

	count = kmalloc(sizeof(int), GFP_USER);
	if (count == NULL) {
		return -1;
	}

	*count = 0;
	file->private_data = count;
  
	return 0;
}
chi gli passa quei valori di *inode e *file? se li prende "da solo" ?

ri-saluti