Re: [Kos-dev] Préemption.
Cyril Dupuit
cyrildupuit at hotmail.com
Mon Feb 21 09:26:35 CET 2005
Salut,
Merci pour les coups de pouce précédent.
Dans le code de Linux, j'ai vu qu'ils utilisaient les macros
local_irq_restore(&Var) et local_irq_save(&Var).
J'ai voulu les intégrer à mon code mais, oh rage, oh désespoir, GCC ne
reconnaît pas le code assembleur. Les messages indiqués sont :
/home/koalys/tmp/cc0H4Pcq.s: Assembler messages:
/home/koalys/tmp/cc0H4Pcq.s:37: Error: suffix or operands invalid for `pop'
/home/koalys/tmp/cc0H4Pcq.s:50: Error: suffix or operands invalid for `push'
Il lui est impossible d'identifier le code :
#define LocalIrqRestore(x) __asm__ __volatile__( \
"# LocalIrqRestore \n\t \
pushq %0 ; \
popfq": \
/* no output */ : \
"g" (x): \
"memory", "cc")
//*****************************************************************************
#define LocalIrqSave(x) do { \
warn_if_not_ulong(x); \
__asm__ __volatile__("# \
LocalIrqSave \n\t \
pushfq ; \
popq %0 ; \
cli":"=g" (x): \
/* no input */ : \
"memory"); \
} while (0)
Si quelqu'un a une proposition, je l'en serais reconnaissant.
Merci d'avance.
Cyril.
NB : Les options de compilation sont celles utilisées par SOS dans ses début
: CFLAGS = -Wall -nostdlib -nostdinc -ffreestanding.
More information about the Kos-dev
mailing list