diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2009-11-18 18:40:14 +0100 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2009-11-18 18:40:14 +0100 |
commit | 48ac0ffecdf244d04ed6cb4f4c560aeea5ba7f23 (patch) | |
tree | 05b6563cbb3321d725f7c671ce3e27d81807f93e /runtime/nspoll.c | |
parent | c82f2781d2ed372e918ea5b5529ead57ff95fc2a (diff) | |
download | rsyslog-48ac0ffecdf244d04ed6cb4f4c560aeea5ba7f23.tar.gz rsyslog-48ac0ffecdf244d04ed6cb4f4c560aeea5ba7f23.tar.xz rsyslog-48ac0ffecdf244d04ed6cb4f4c560aeea5ba7f23.zip |
milestone commit: first driver layer call done
... does not really run. We can now call into the epoll driver, but
not handle epoll(). The driver also needs more modifications.
Diffstat (limited to 'runtime/nspoll.c')
-rw-r--r-- | runtime/nspoll.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/runtime/nspoll.c b/runtime/nspoll.c index ff0b1e92..4413c2c7 100644 --- a/runtime/nspoll.c +++ b/runtime/nspoll.c @@ -68,7 +68,7 @@ loadDrvr(nspoll_t *pThis) pBaseDrvrName = pThis->pBaseDrvrName; if(pBaseDrvrName == NULL) /* if no drvr name is set, use system default */ pBaseDrvrName = glbl.GetDfltNetstrmDrvr(); - if(snprintf((char*)szDrvrName, sizeof(szDrvrName), "lmnspoll_%s", pBaseDrvrName) == sizeof(szDrvrName)) + if(snprintf((char*)szDrvrName, sizeof(szDrvrName), "lmnsdpoll_%s", pBaseDrvrName) == sizeof(szDrvrName)) ABORT_FINALIZE(RS_RET_DRVRNAME_TOO_LONG); CHKmalloc(pThis->pDrvrName = (uchar*) strdup((char*)szDrvrName)); @@ -79,6 +79,7 @@ loadDrvr(nspoll_t *pThis) * about this hack, but for the time being it is efficient and clean * enough. -- rgerhards, 2008-04-18 */ +RUNLOG_VAR("%s", szDrvrName+2); CHKiRet(obj.UseObj(__FILE__, szDrvrName+2, DONT_LOAD_LIB, (void*) &pThis->Drvr)); finalize_it: @@ -119,9 +120,11 @@ ConstructFinalize(nspoll_t *pThis) { DEFiRet; ISOBJ_TYPE_assert(pThis, nspoll); +RUNLOG_STR("trying to load epoll driver\n"); CHKiRet(loadDrvr(pThis)); CHKiRet(pThis->Drvr.Construct(&pThis->pDrvrData)); finalize_it: +dbgprintf("XXX: done trying to load epoll driver, state %d\n", iRet); RETiRet; } @@ -129,12 +132,11 @@ finalize_it: /* Carries out the actual wait (all done in lower layers) */ static rsRetVal -Wait(nspoll_t *pThis, epoll_event_t *events, int maxevents, int timeout) { +Wait(nspoll_t *pThis, int timeout, int *idRdy, void **ppUsr) { DEFiRet; ISOBJ_TYPE_assert(pThis, nspoll); - assert(events != NULL); - assert(maxevents > 0); - iRet = pThis->Drvr.Wait(pThis->pDrvrData, events, maxevents, timeout); + assert(idRdy != NULL); + iRet = pThis->Drvr.Wait(pThis->pDrvrData, timeout, idRdy, ppUsr); RETiRet; } @@ -143,11 +145,10 @@ Wait(nspoll_t *pThis, epoll_event_t *events, int maxevents, int timeout) { * rgerhards, 2009-11-18 */ static rsRetVal -Ctl(nspoll_t *pThis, int fd, int op, epoll_event_t *event) { +Ctl(nspoll_t *pThis, nsd_t *pNsd, int id, void *pUsr, int op) { DEFiRet; ISOBJ_TYPE_assert(pThis, nspoll); - assert(event != NULL); - iRet = pThis->Drvr.Ctl(pThis->pDrvrData, fd, op, event); + iRet = pThis->Drvr.Ctl(pThis->pDrvrData, pNsd, id, pUsr, op); RETiRet; } @@ -188,6 +189,7 @@ ENDObjClassExit(nspoll) */ BEGINObjClassInit(nspoll, 1, OBJ_IS_CORE_MODULE) /* class, version */ /* request objects we use */ + DBGPRINTF("doing nspollClassInit\n"); CHKiRet(objUse(glbl, CORE_COMPONENT)); /* set our own handlers */ |