version 1.4, 2010/03/04 10:17:48
|
version 1.10, 2010/06/24 10:10:41
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.0.12 |
RPL/2 (R) version 4.0.17 |
Copyright (C) 1989-2010 Dr. BERTRAND Joël |
Copyright (C) 1989-2010 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
Line 43 affectation_interruptions_logicielles(st
|
Line 43 affectation_interruptions_logicielles(st
|
sig_atomic_t registre; |
sig_atomic_t registre; |
|
|
volatile struct_liste_chainee *l_element_courant; |
volatile struct_liste_chainee *l_element_courant; |
|
struct_liste_chainee *l_element; |
|
|
struct_objet *s_objet_processus; |
struct_objet *s_objet_processus; |
|
|
Line 155 affectation_interruptions_logicielles(st
|
Line 156 affectation_interruptions_logicielles(st
|
return; |
return; |
} |
} |
|
|
|
// Pile LIFO |
|
|
if (empilement(s_etat_processus, &((*s_etat_processus) |
if (empilement(s_etat_processus, &((*s_etat_processus) |
.pile_origine_interruptions[interruption - 1]), |
.pile_origine_interruptions[interruption - 1]), |
s_objet_processus) == d_erreur) |
s_objet_processus) == d_erreur) |
Line 169 affectation_interruptions_logicielles(st
|
Line 172 affectation_interruptions_logicielles(st
|
(*s_etat_processus).queue_interruptions[interruption - 1]++; |
(*s_etat_processus).queue_interruptions[interruption - 1]++; |
(*s_etat_processus).nombre_interruptions_en_queue++; |
(*s_etat_processus).nombre_interruptions_en_queue++; |
|
|
|
// Transformation en FIFO |
|
|
|
if ((*s_etat_processus).queue_interruptions |
|
[interruption - 1] > 1) |
|
{ |
|
l_element = (*s_etat_processus) |
|
.pile_origine_interruptions[interruption - 1]; |
|
|
|
while((*l_element).suivant != NULL) |
|
{ |
|
l_element = (*l_element).suivant; |
|
} |
|
|
|
(*l_element).suivant = (*s_etat_processus) |
|
.pile_origine_interruptions[interruption - 1]; |
|
(*s_etat_processus).pile_origine_interruptions |
|
[interruption - 1] = |
|
(*(*l_element).suivant).suivant; |
|
(*(*l_element).suivant).suivant = NULL; |
|
} |
|
|
if ((*s_etat_processus).debug == d_vrai) |
if ((*s_etat_processus).debug == d_vrai) |
if (((*s_etat_processus).type_debug & |
if (((*s_etat_processus).type_debug & |
d_traitement_interruption) != 0) |
d_traitement_interruption) != 0) |