void packet_tick(void) { uint8_t src; interfaces_tick(); cache_tick(); if((src = interfaces_gotPacket(&p)) != IFACE_NONE){ //uart1_puts("acDGab"); uint8_t iface = cache_getDestIface(&p); if(interfaces_isReady(iface)){ //uart1_puts("acDgab"); interfaces_getPacket(src,&p); packet_packetIn(&p,src); } } //for interfaces do getpacket(&struct packt *) //sollte vom iface dierekt ueber getpacket geloest weren //for interfaces do isdone(''); }
void dispatch_CacheTick(void *pUnused, int iUnused) { UNUSED_PARAMETER(pUnused); UNUSED_PARAMETER(iUnused); const char *cmdsave = mudstate.debug_cmd; mudstate.debug_cmd = (char *)"< cachetick >"; CLinearTimeDelta ltd = 0; if (mudconf.cache_tick_period <= ltd) { mudconf.cache_tick_period.SetSeconds(1); } cache_tick(); // Schedule ourselves again. // CLinearTimeAbsolute ltaNextTime; ltaNextTime.GetUTC(); ltaNextTime += mudconf.cache_tick_period; scheduler.DeferTask(ltaNextTime, PRIORITY_SYSTEM, dispatch_CacheTick, 0, 0); mudstate.debug_cmd = cmdsave; }