X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fhelper%2Fjim-eventloop.c;h=9d15ddd0da369f0810c3a319e36bf7c9c7e42209;hp=7858842afaa2fbb82f8d15c016aa42103c9d0483;hb=8959de9f679cfd0436d731fd91b88a68b9a75fa6;hpb=1d5623919bcafc2add41f6c67ce6c5fcc7ecc3d3 diff --git a/src/helper/jim-eventloop.c b/src/helper/jim-eventloop.c index 7858842afa..9d15ddd0da 100644 --- a/src/helper/jim-eventloop.c +++ b/src/helper/jim-eventloop.c @@ -44,6 +44,9 @@ * - more complete [after] command with [after info] and other subcommands. * - Win32 port */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif #define JIM_EXTENSION #define __JIM_EVENTLOOP_CORE__ @@ -58,15 +61,6 @@ #include "jim-eventloop.h" #endif -/* POSIX includes */ -#include -#include -#include -#include -#include - extern int errno; -/* --- */ - /* File event structure */ typedef struct Jim_FileEvent { void *handle; @@ -122,7 +116,7 @@ void Jim_DeleteFileHandler(Jim_Interp *interp, void *handle) Jim_EventLoop *eventLoop = Jim_GetAssocData(interp, "eventloop"); fe = eventLoop->fileEventHead; - while(fe) { + while (fe) { if (fe->handle == handle) { if (prev == NULL) eventLoop->fileEventHead = fe->next; @@ -200,7 +194,7 @@ jim_wide Jim_DeleteTimeHandler(Jim_Interp *interp, jim_wide id) te = eventLoop->timeEventHead; if (id >= eventLoop->timeEventNextId) return -2; /* wrong event ID */ - while(te) { + while (te) { if (te->id == id) { remain = (te->when_sec - cur_sec) * 1000; remain += (te->when_ms - cur_ms) ; @@ -230,7 +224,7 @@ static Jim_TimeEvent *JimSearchNearestTimer(Jim_EventLoop *eventLoop) Jim_TimeEvent *te = eventLoop->timeEventHead; Jim_TimeEvent *nearest = NULL; - while(te) { + while (te) { if (!nearest || te->when_sec < nearest->when_sec || (te->when_sec == nearest->when_sec && te->when_ms < nearest->when_ms)) @@ -240,6 +234,12 @@ static Jim_TimeEvent *JimSearchNearestTimer(Jim_EventLoop *eventLoop) return nearest; } +/* --- POSIX version of Jim_ProcessEvents, for now the only available --- */ +#define JIM_FILE_EVENTS 1 +#define JIM_TIME_EVENTS 2 +#define JIM_ALL_EVENTS (JIM_FILE_EVENTS|JIM_TIME_EVENTS) +#define JIM_DONT_WAIT 4 + /* Process every pending time event, then every pending file event * (that may be registered by time event callbacks just processed). * Without special flags the function sleeps until some file event @@ -269,7 +269,7 @@ int Jim_ProcessEvents(Jim_Interp *interp, int flags) /* Check file events */ while (fe != NULL) { - int fd = fileno(fe->handle); + int fd = fileno((FILE*)fe->handle); if (fe->mask & JIM_EVENT_READABLE) FD_SET(fd, &rfds); @@ -310,7 +310,7 @@ int Jim_ProcessEvents(Jim_Interp *interp, int flags) // fprintf(stderr,"No Event\n"); } - retval = select(maxfd+1, &rfds, &wfds, &efds, tvp); + retval = select(maxfd + 1, &rfds, &wfds, &efds, tvp); if (retval < 0) { switch (errno) { case EINTR: fprintf(stderr,"select EINTR\n"); break; @@ -319,8 +319,8 @@ int Jim_ProcessEvents(Jim_Interp *interp, int flags) } } else if (retval > 0) { fe = eventLoop->fileEventHead; - while(fe != NULL) { - int fd = fileno(fe->handle); + while (fe != NULL) { + int fd = fileno((FILE*)fe->handle); // fprintf(stderr,"fd: %d mask: %02x \n",fd,fe->mask); @@ -361,7 +361,7 @@ int Jim_ProcessEvents(Jim_Interp *interp, int flags) /* Check time events */ te = eventLoop->timeEventHead; maxId = eventLoop->timeEventNextId-1; - while(te) { + while (te) { long now_sec, now_ms; jim_wide id; @@ -400,7 +400,7 @@ void JimELAssocDataDeleProc(Jim_Interp *interp, void *data) Jim_EventLoop *eventLoop = data; fe = eventLoop->fileEventHead; - while(fe) { + while (fe) { next = fe->next; if (fe->finalizerProc) fe->finalizerProc(interp, fe->clientData); @@ -409,7 +409,7 @@ void JimELAssocDataDeleProc(Jim_Interp *interp, void *data) } te = eventLoop->timeEventHead; - while(te) { + while (te) { next = te->next; if (te->finalizerProc) te->finalizerProc(interp, te->clientData); @@ -516,9 +516,7 @@ static int JimELAfterCommand(Jim_Interp *interp, int argc, /* This extension is not dynamically loaded, instead it's linked statically, which is why we shouldn't use the unspecific 'Jim_OnLoad' name */ -#define Jim_OnLoad Jim_EventLoopOnLoad - -int Jim_OnLoad(Jim_Interp *interp) +int Jim_EventLoopOnLoad(Jim_Interp *interp) { Jim_EventLoop *eventLoop;