Utilisation du Patch (suite)
Ajouter les descripteurs de fichiers dans la structure prévue
à cet effet :
Cette structure est appelée : "interest set", elle est
nommée kdpfd dans le code si dessous.
struct pollfd pfd
pfd.fd = fd;
pfd.events = POLLIN | POLLOUT | POLLERR | POLLHUP;
pfd.revents = 0;
if (write(kdpfd, &pfd, sizeof(pfd)) != sizeof(pfd)) {
/* erreur détectée*/
}
Scruter les évenements concernant les descripteurs inclus
dans la structure "interest set" :
Ensuite il faut parcourir sans arrêt la structure à la recherche
d'évenements arrivés.
struct pollfd *pfds;
struct evpoll evp;
for (;;) {
evp.ep_timeout = STD_SCHED_TIMEOUT;
evp.ep_resoff = 0;
nfds = ioctl(kdpfd, EP_POLL, &evp);
pfds = (struct pollfd *) (map + evp.ep_resoff);
for (ii = 0; ii < nfds; ii++, pfds++) {
// faire_qqchose(pfds[ii].fd, pfds[ii].revents);
}
}