begin process at 2012 05 30 04:50:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Autre

 > 

syscall sys_init_module retourne -EFAULT


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

syscall sys_init_module retourne -EFAULT

vendredi 19 novembre 2010 à 00:13:03 | syscall sys_init_module retourne -EFAULT

patatalo

Membre Club Administrateur CodeS-SourceS
bonjour,


J'ai un petit soucis avec le syscall linux 2.6.27 sys_init_module, il me retourne -EFAULT et je n'ai pas réussi a trouver de doc consistante sur les syscalls linux et je galère... Si quelqu'un a une idée ou un lien, je suis preneur.

syscalls.h:

static inline KRESULT sys_init_module(void *umod, unsigned long len, const char *uargs)
{
KRESULT __res;
asm volatile ("int $0x80" : "=a" (__res)
: "0" (__NR_init_module), "b" (umod), "c" (len), "d" (uargs) : "memory");
return __res;
}

static inline void *sys_mmap2(void *addr, size_t length, unsigned int prot, unsigned int flags, int fd, off_t pgoffset)
{
unsigned long __res;
asm volatile ("int $0x80" : "=a" (__res)
: "0" (__NR_mmap2), "b" (addr), "c" (length), "d" (prot), "S" (flags), "D" (fd), "p" (pgoffset)
: "memory");
return (void*) __res;
}

mman.h:
#define PROT_READ 0x1 /* Page can be read. */
#define PROT_WRITE 0x2 /* Page can be written. */
#define PROT_EXEC 0x4 /* Page can be executed. */

#define MAP_PRIVATE 0x02 /* Changes are private. */

init.c:

int usb_insmod(char *modname, char *opts)
{
int fd;
void *modmap;
struct stat statbuf;

if (sys_stat(modname, &statbuf) || !S_ISREG(statbuf.st_mode))
{
print_f("%s introuvable.\n", modname);
return 0;
}

fd = sys_open(modname, O_RDONLY, 0);
if (!fd) {
print_f("echec ouverture %s.\n", modname);
return 0;
}

modmap = sys_mmap2(0, statbuf.st_size, (PROT_READ | PROT_WRITE | PROT_EXEC), MAP_PRIVATE, fd, 0);

sys_close(fd);

if (BADPTR(modmap)) {
print_f("echec mapping %s (%d).\n", modname, modmap);
return 0;
}

fd = sys_init_module(modmap, statbuf.st_size, opts);

if (fd) {
sys_munmap(modmap, statbuf.st_size);
print_f("echec initialisation %s (%d).\n", modname, fd);
return 0;
}

sys_munmap(modmap, statbuf.st_size);
return 1;
}


merci d'avance.
vendredi 19 novembre 2010 à 22:57:06 | Re : syscall sys_init_module retourne -EFAULT

patatalo

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
1 - la protection du mmap est PROT_READ.
2 - le pointeur opts de sys_init_module() ne doit pas être NULL.


Cette discussion est classée dans : int, init, sys, fd, prot


Répondre à ce message

Sujets en rapport avec ce message

gcc, prob de compilation [ par Metrox ] 'lut all, je tourne ss une debian (knoppix, pr etre precis), et j'essaie de compiler un truc tt bete, mais il me sort une erreur...que faire?!?CODE(es [LINUX-RS232] Problème envoi-reception [ par JuJu ] Hello,Je suis nouveau sur linux et je connais un peu la prog en C et j'ai un problème avec la communication RS232. J'utilise Mandrake linux 10.1 sur l VC++ : Ecrire un fichier BMP [ par Ayla_21 ] Bonjour tout le monde,Après avoir morflé sur la librairie jpeg, que j'ai fini par comprendre après moults désagréments. je m'attaque au format bmp.Je probleme d'exécution avec vc++, c'est urgent [ par sousou_one ] bonjour à tous,j'ai probleme au niveau de l'execution d'un programme sous visual c++, il me donne lemessage d'erreur :  libbmp_write.exe a rencontr&#2 pb de concaténation [ par beatrice84 ] Bonjour à tous !Je suis entrain d'écrire un programme de compression selon la méthode de shannon-fano.J'ai un petit problème car je n'arrive pas à con LNK2005 et LNK1169, sur VS2008 avec SDL [ par Metalbobinou ] Bonjour, mes erreurs sont classiques d'apres google, mais je n'ai pas encore compris comment les resoudre... (meme en fouiannt un peu)... Je connais v Probleme morpion en SDL c++ [ par juju116 ] Salut tout le monde! j'expose donc mon souci pour l'instant mon programme affiche une image en fond d'ecran et bizarement cette image est bien chargé Recuperer PID de l'appli et ecrire dans un fichier [ par Metalbobinou ] Bonsoir,Alors voila, vu que j'ai du mal en C, et que cela va etre necessaire que j'en fasse pour mes etudes, j'ai decide de m'y mettre.J'ai voulu fair Calculateur de moyenne probleme [ par florianpoi1 ] Bonjour j'ai essayer de réaliser un programme en C (un Calculateur de moyenne) mes je le compile tout va bien je l'execute ensuite je lui dit que j'ai tri insertion langage C et appel de fonction [ par washh ] Bonjour,Je débute en langage C et j'ai écrit l'algorithme du tri d'un tableau contenant des chaines de caractères, mais dès la compilation, le program


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,404 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales