Exemple C de la Fonction en utilisant des variables volatiles

pour un papier, je suis à la recherche d'un de la vie réelle fonction C qui utilise des variables volatiles. Ce qui en soi n'est pas difficile à trouver, mais je suis à la recherche d'une fonction dans laquelle la valeur de la volatilité de la variable doit changer pendant le cadre de l'exécution de la fonction, pour une branche particulière de la fonction d'être atteint. Quelque chose comme ceci:

typedef struct {
    unsigned       :6;
    unsigned FLAG1 :1;
    unsigned FLAG2 :1;
} __attribute__ ((packed)) REGISTER;

volatile REGISTER * io_ = 0x1234;

int write_to_io()
{
    while (io_->FLAG1) {};
    //io_->FLAG1 is now 0

    io_->FLAG2 = 1;

    sleep(10);

    if (io->FLAG1)  
        return 1;  //io->FLAG1 has changed from 0 to 1
    else
        return 0;  //io->FLAG1 has not changed
 }

Il serait suffisant si différents bits de la structure a changé au cours de l'exécution de la fonction, mais mon principal critère est que, pour une certaine direction pour être atteint, la valeur de la volatilité et de la modification de la variable pendant l'exécution de la fonction.

Je serais très reconnaissant pour tous les exemples de la vie réelle. Je n'ai pas été en mesure de trouver de nombreux exemples sur l'utilisation de volatiles sur le web.

InformationsquelleAutor Ham | 2008-12-22