version 1.39, 2011/09/15 17:51:43
|
version 1.40, 2011/09/20 08:56:24
|
Line 854 instruction_suspend(struct_processus *s_
|
Line 854 instruction_suspend(struct_processus *s_
|
} |
} |
} |
} |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 873 instruction_suspend(struct_processus *s_
|
Line 873 instruction_suspend(struct_processus *s_
|
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
} |
} |
|
|
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1235 instruction_swi(struct_processus *s_etat
|
Line 1235 instruction_swi(struct_processus *s_etat
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = GRANULARITE_us * 1000; |
attente.tv_nsec = GRANULARITE_us * 1000; |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1245 instruction_swi(struct_processus *s_etat
|
Line 1245 instruction_swi(struct_processus *s_etat
|
(*s_etat_processus).pipe_nombre_objets_attente, |
(*s_etat_processus).pipe_nombre_objets_attente, |
&pid, sizeof(pid))) != sizeof(pid)) |
&pid, sizeof(pid))) != sizeof(pid)) |
{ |
{ |
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1273 instruction_swi(struct_processus *s_etat
|
Line 1273 instruction_swi(struct_processus *s_etat
|
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) |
!= 0) |
!= 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
Line 1283 instruction_swi(struct_processus *s_etat
|
Line 1283 instruction_swi(struct_processus *s_etat
|
|
|
scrutation_interruptions(s_etat_processus); |
scrutation_interruptions(s_etat_processus); |
|
|
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1296 instruction_swi(struct_processus *s_etat
|
Line 1296 instruction_swi(struct_processus *s_etat
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = GRANULARITE_us * 1000; |
attente.tv_nsec = GRANULARITE_us * 1000; |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1306 instruction_swi(struct_processus *s_etat
|
Line 1306 instruction_swi(struct_processus *s_etat
|
(*s_etat_processus).pipe_nombre_objets_attente, |
(*s_etat_processus).pipe_nombre_objets_attente, |
&tid, sizeof(tid))) != sizeof(tid)) |
&tid, sizeof(tid))) != sizeof(tid)) |
{ |
{ |
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1334 instruction_swi(struct_processus *s_etat
|
Line 1334 instruction_swi(struct_processus *s_etat
|
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) |
!= 0) |
|
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1344 instruction_swi(struct_processus *s_etat
|
Line 1343 instruction_swi(struct_processus *s_etat
|
|
|
scrutation_interruptions(s_etat_processus); |
scrutation_interruptions(s_etat_processus); |
|
|
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1356 instruction_swi(struct_processus *s_etat
|
Line 1355 instruction_swi(struct_processus *s_etat
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = GRANULARITE_us * 1000; |
attente.tv_nsec = GRANULARITE_us * 1000; |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1367 instruction_swi(struct_processus *s_etat
|
Line 1366 instruction_swi(struct_processus *s_etat
|
&interruption_reduite, sizeof(interruption_reduite))) |
&interruption_reduite, sizeof(interruption_reduite))) |
!= sizeof(interruption_reduite)) |
!= sizeof(interruption_reduite)) |
{ |
{ |
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1395 instruction_swi(struct_processus *s_etat
|
Line 1394 instruction_swi(struct_processus *s_etat
|
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1404 instruction_swi(struct_processus *s_etat
|
Line 1403 instruction_swi(struct_processus *s_etat
|
scrutation_interruptions(s_etat_processus); |
scrutation_interruptions(s_etat_processus); |
} |
} |
|
|
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1417 instruction_swi(struct_processus *s_etat
|
Line 1416 instruction_swi(struct_processus *s_etat
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = GRANULARITE_us * 1000; |
attente.tv_nsec = GRANULARITE_us * 1000; |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1427 instruction_swi(struct_processus *s_etat
|
Line 1426 instruction_swi(struct_processus *s_etat
|
(*s_etat_processus).pipe_nombre_interruptions_attente, |
(*s_etat_processus).pipe_nombre_interruptions_attente, |
&pid, sizeof(pid))) != sizeof(pid)) |
&pid, sizeof(pid))) != sizeof(pid)) |
{ |
{ |
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1455 instruction_swi(struct_processus *s_etat
|
Line 1454 instruction_swi(struct_processus *s_etat
|
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) |
!= 0) |
|
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1474 instruction_swi(struct_processus *s_etat
|
Line 1472 instruction_swi(struct_processus *s_etat
|
(*s_etat_processus).pipe_nombre_interruptions_attente, |
(*s_etat_processus).pipe_nombre_interruptions_attente, |
&pid, sizeof(pid))) != sizeof(pid)) |
&pid, sizeof(pid))) != sizeof(pid)) |
{ |
{ |
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1502 instruction_swi(struct_processus *s_etat
|
Line 1500 instruction_swi(struct_processus *s_etat
|
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) |
!= 0) |
|
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
} |
} |
} |
} |
|
|
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1520 instruction_swi(struct_processus *s_etat
|
Line 1517 instruction_swi(struct_processus *s_etat
|
{ |
{ |
tid = -3; |
tid = -3; |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1530 instruction_swi(struct_processus *s_etat
|
Line 1527 instruction_swi(struct_processus *s_etat
|
(*s_etat_processus).pipe_nombre_interruptions_attente, |
(*s_etat_processus).pipe_nombre_interruptions_attente, |
&tid, sizeof(tid))) != sizeof(tid)) |
&tid, sizeof(tid))) != sizeof(tid)) |
{ |
{ |
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1558 instruction_swi(struct_processus *s_etat
|
Line 1555 instruction_swi(struct_processus *s_etat
|
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) |
!= 0) |
|
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1577 instruction_swi(struct_processus *s_etat
|
Line 1573 instruction_swi(struct_processus *s_etat
|
(*s_etat_processus).pipe_nombre_interruptions_attente, |
(*s_etat_processus).pipe_nombre_interruptions_attente, |
&tid, sizeof(tid))) != sizeof(tid)) |
&tid, sizeof(tid))) != sizeof(tid)) |
{ |
{ |
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1606 instruction_swi(struct_processus *s_etat
|
Line 1602 instruction_swi(struct_processus *s_etat
|
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) |
!= 0) |
|
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1616 instruction_swi(struct_processus *s_etat
|
Line 1611 instruction_swi(struct_processus *s_etat
|
scrutation_interruptions(s_etat_processus); |
scrutation_interruptions(s_etat_processus); |
} |
} |
|
|
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1626 instruction_swi(struct_processus *s_etat
|
Line 1621 instruction_swi(struct_processus *s_etat
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = GRANULARITE_us * 1000; |
attente.tv_nsec = GRANULARITE_us * 1000; |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1636 instruction_swi(struct_processus *s_etat
|
Line 1631 instruction_swi(struct_processus *s_etat
|
(*s_etat_processus).pipe_acquittement, |
(*s_etat_processus).pipe_acquittement, |
&tampon, sizeof(unsigned char)) != sizeof(unsigned char)) |
&tampon, sizeof(unsigned char)) != sizeof(unsigned char)) |
{ |
{ |
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1645 instruction_swi(struct_processus *s_etat
|
Line 1640 instruction_swi(struct_processus *s_etat
|
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
|
|
if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 1654 instruction_swi(struct_processus *s_etat
|
Line 1649 instruction_swi(struct_processus *s_etat
|
scrutation_interruptions(s_etat_processus); |
scrutation_interruptions(s_etat_processus); |
} |
} |
|
|
if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) |
if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |