Avec le kernel 2.6.9, mmap échoue systématiquement lorsque le descripteur de
fichier est associé à un périphérique vidéo (bttv) alors que je n'ai aucun
problème sous un kernel 2.4
Soit le code suivant :
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
On Wed, 08 Dec 2004 07:11:00 +0100, Thomas Labourdette wrote:
no_spam a écrit le lundi 06 Décembre 2004 17:50 :
On Mon, 06 Dec 2004 17:26:34 +0100, Thomas Labourdette wrote:
Avec le kernel 2.6.9, mmap échoue systématiquement lorsque le descripteur de fichier est associé à un périphérique vidéo (bttv) alors que je n'ai aucun problème sous un kernel 2.4
Enlève le PROT_WRITE. Il me parait très douteux que tu puisse écrire dans le buffer d'acquisition d'un device de capture vidéo.
Bon après les derniers test fait. Avec un noyau 2.4.x, on peut avoir (PROT_READ | PROT_WRITE) ou juste (PROT_READ) avec un noyau 2.6 il *faut* avoir (PROT_READ | PROT_WRITE).
Je viens de vérifier le code du kernel. Effectivement, il teste que PROT_WRITE est bien présent. Le début de la fonction qui gère le mmap est:
Le code de test que j'avais posté ne fonctionnait pas à cause de la taille de la mémoire demandé (et sur lequel j'avais mis d'une façon automatique PROT_WRITE).
OK
On Wed, 08 Dec 2004 07:11:00 +0100, Thomas Labourdette wrote:
no_spam a écrit le lundi 06 Décembre 2004 17:50 :
On Mon, 06 Dec 2004 17:26:34 +0100, Thomas Labourdette wrote:
Avec le kernel 2.6.9, mmap échoue systématiquement lorsque le descripteur
de fichier est associé à un périphérique vidéo (bttv) alors que je n'ai
aucun problème sous un kernel 2.4
Enlève le PROT_WRITE. Il me parait très douteux que tu puisse écrire
dans le buffer d'acquisition d'un device de capture vidéo.
Bon après les derniers test fait. Avec un noyau 2.4.x, on peut avoir
(PROT_READ | PROT_WRITE) ou juste (PROT_READ) avec un noyau 2.6 il *faut*
avoir (PROT_READ | PROT_WRITE).
Je viens de vérifier le code du kernel. Effectivement, il teste que
PROT_WRITE est bien présent. Le début de la fonction qui gère le mmap
est:
Le code de test que j'avais posté ne fonctionnait pas à cause de la taille
de la mémoire demandé (et sur lequel j'avais mis d'une façon automatique
PROT_WRITE).
On Wed, 08 Dec 2004 07:11:00 +0100, Thomas Labourdette wrote:
no_spam a écrit le lundi 06 Décembre 2004 17:50 :
On Mon, 06 Dec 2004 17:26:34 +0100, Thomas Labourdette wrote:
Avec le kernel 2.6.9, mmap échoue systématiquement lorsque le descripteur de fichier est associé à un périphérique vidéo (bttv) alors que je n'ai aucun problème sous un kernel 2.4
Enlève le PROT_WRITE. Il me parait très douteux que tu puisse écrire dans le buffer d'acquisition d'un device de capture vidéo.
Bon après les derniers test fait. Avec un noyau 2.4.x, on peut avoir (PROT_READ | PROT_WRITE) ou juste (PROT_READ) avec un noyau 2.6 il *faut* avoir (PROT_READ | PROT_WRITE).
Je viens de vérifier le code du kernel. Effectivement, il teste que PROT_WRITE est bien présent. Le début de la fonction qui gère le mmap est:
Le code de test que j'avais posté ne fonctionnait pas à cause de la taille de la mémoire demandé (et sur lequel j'avais mis d'une façon automatique PROT_WRITE).