subzero82
Messages postés2Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention25 décembre 2004
-
25 déc. 2004 à 09:47
plus_plus_fab
Messages postés232Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 8 janvier 2005
-
25 déc. 2004 à 11:27
Salut tous le monde
avez vous deja utilisé la biblio interrupt.h ???
j'ai une machine:
p4 2.8GHZ
80 Go Hitachi
256 DDR
j'essaie de concevoir un prtit prog qui fera appel aux interruption clavier sous linux, mais dès mes premiere ligne de code je ramasse des erreurs !!!!!!!!!!
lors de ma compilation pour generer le .o je ramasse ça:
Dans le fichier inclus à partir de /usr/include/linux/interrupt.h:10,
à partir de e1.c:4:
/usr/include/asm/bitops.h:327:2: attention : #warning This includefile is not available on all architectures.
/usr/include/asm/bitops.h:328:2: attention : #warning Using kernel headers in userspace: atomicity not guaranteed
Dans le fichier inclus à partir de e1.c:4:
/usr/include/linux/interrupt.h:44:25: asm/hardirq.h : Aucun fichier ou répertoire de ce type
/usr/include/linux/interrupt.h:45:25: asm/softirq.h : Aucun fichier ou répertoire de ce type
In file included from e1.c:4:
/usr/include/linux/interrupt.h:73: error: erreur de syntaxe before "void"
/usr/include/linux/interrupt.h:77: error: erreur de syntaxe before '(' token
/usr/include/linux/interrupt.h:78: error: erreur de syntaxe before '(' token
/usr/include/linux/interrupt.h:106: error: erreur de syntaxe before "atomic_t"
/usr/include/linux/interrupt.h:109: error: erreur de syntaxe before '}' token
/usr/include/linux/interrupt.h:127: error: `CONFIG_X86_L1_CACHE_SHIFT' undeclared here (not in a function)
/usr/include/linux/interrupt.h:127: error: requested alignment is not a constant
/usr/include/linux/interrupt.h:154: error: erreur de syntaxe before '(' token
/usr/include/linux/interrupt.h: Dans la fonction « tasklet_schedule »:
/usr/include/linux/interrupt.h:158: error: dereferencing pointer to incomplete type
/usr/include/linux/interrupt.h: Hors de toute fonction :
/usr/include/linux/interrupt.h:162: error: erreur de syntaxe before '(' token
/usr/include/linux/interrupt.h: Dans la fonction « tasklet_hi_schedule »:
/usr/include/linux/interrupt.h:166: error: dereferencing pointer to incomplete type
/usr/include/linux/interrupt.h: Dans la fonction « tasklet_disable_nosync »:
/usr/include/linux/interrupt.h:173: error: dereferencing pointer to incomplete type
/usr/include/linux/interrupt.h: Dans la fonction « tasklet_enable »:
/usr/include/linux/interrupt.h:187: error: dereferencing pointer to incomplete type
/usr/include/linux/interrupt.h: Dans la fonction « tasklet_hi_enable »:
/usr/include/linux/interrupt.h:193: error: dereferencing pointer to incomplete type
/usr/include/linux/interrupt.h: Hors de toute fonction :
/usr/include/linux/interrupt.h:224: error: erreur de syntaxe before "global_bh_lock"
/usr/include/linux/interrupt.h: Dans la fonction « mark_bh »:
/usr/include/linux/interrupt.h:228: error: invalid use of undefined type `struct tasklet_struct'
alors quelqu'un aurrait il une idée sur la procedure a suivre pour pouvoir utilisé la biblio <linux/interrupt.h> ou bien toute autre biblio qui me permetrer de manipuler des interruption, ou directive de compilation
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 25 déc. 2004 à 10:04
pourquoi vouloir utilisé interrupt.h dans ton programme en C? les interruptions pour ce que je saches sont utilisé en assembleur... voici un code équivalent a celui que tu as donnés plus haut:
#define MODULE
#include <stdio.h>
int init_module (void) /* Loads a module in the kernel */
{
printf("Hello kernel n");
return 0;
}
void cleanup_module(void) /* Removes module from kernel */
{
printf("GoodBye Kerneln");
}
Bob...
"La chance accorde ses faveur aux esprits avertis..."
plus_plus_fab
Messages postés232Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 8 janvier 2005 25 déc. 2004 à 11:27
quel noyau 2.4, 2.6 ?
Le probleme vient surement de ta façon de le compiler.
Comment fais-tu ? tu es root ?
LordBob > dans le kernel, on programme en C, et quelques passages en assembleur (inline). De plus en mode noyau, la librairie standard C est inaccessible, on utilise la librairie kernel.