SALUT ,
je suis entrain de faire un driver mais j'ai rencontré beaucoup de problème telque l'utilisation de la fonction write .
Est ce que quelqu'un peut m'aider comment je l'appele et comment je l'utilise.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static ssize_t write(struct file *file, char *buf, size_t count, loff_t *ppos)
{
	int ecrits = 0;
	int i = 0;
	s_driver *p = (s_driver*)file->private_data;
	printk(KERN_DEBUG "write: demande ecriture de %d octets\n", count);
	/* Check for overflow */
	if (count <= buf_size - (int)*ppos)
		ecrits = count;
	else  ecrits = buf_size - (int)*ppos;
 
	if(ecrits)
		copy_from_user((int *)p->buffer + (int)*ppos, buf, ecrits);
	*ppos += ecrits;
	printk(KERN_DEBUG "write: %d octets reellement ecrits\n", ecrits);
	printk(KERN_DEBUG "write: position=%d\n", (int)*ppos);
	printk(KERN_DEBUG "write: contenu du buffer\n");
	for(i=0;i<buf_size;i++)
		printk(KERN_DEBUG " %d", p->buffer[i]);
	printk(KERN_DEBUG "\n");
	return ecrits;
}