17 TimeOutElement *
volatile pNext;
19 TimeOutElement *
volatile pPrev;
21 TimeOutManager *
volatile pOwner;
23 volatile uint32_t NextTime;
32 virtual void TimeElementEvent() = 0;
35 inline uint32_t GetNextTime() {
return NextTime; };
36 inline void ChangeNextInterval(uint32_t nt) { Interval = nt; };
37 friend class TimeOutManager;
38 } __attribute__((packed));
43 TimeOutElement *
volatile pElHead;
44 TimeOutElement *
volatile pElTail;
45 volatile uint32_t NextTime;
46 volatile uint32_t LastRun;
47 uint8_t OwningTaskPrio;
49 void Remove(TimeOutElement &te);
50 void Insert(TimeOutElement &te);
51 void CheckTime(TimeOutElement &te);
54 void CheckList(
const char *msg, TimeOutElement *pte);
55 void DumpList(uint32_t n);
56 volatile uint32_t entries;
69 void RegisterInterval(TimeOutElement &te, uint16_t TickInterval,
const char *fromwhere,
bool OkToSpread =
false);
72 void RegisterTriggerAt(TimeOutElement &te, uint32_t TriggerTime);
75 void DeRegister(TimeOutElement &te);
80 uint32_t ProcessEvents();
82 void CoreProcessEvents();
85 typedef void(ActionFunction)();
87 extern TimeOutManager NetTimeOutManager;
89 class IntervalAction :
public TimeOutElement
92 ActionFunction *m_pFunc;
95 IntervalAction(ActionFunction *pf);
96 virtual void TimeElementEvent();
99 typedef void(DHCPProcessFunction)(PoolPtr p);
100 extern DHCPProcessFunction *pDHCPProcessFunction;
102 typedef void(MULTICastProcessFunction)(PoolPtr p, uint16_t csum);
103 extern MULTICastProcessFunction *pMultiCastFunc;
107 typedef void(DHCPv6ProcessFunction)(
UDPPacket *pkt);
108 extern DHCPv6ProcessFunction *pDHCPv6ClientProcessFunction;
UDP Packet Class.
Definition: udp.h:70
An OS_CRIT object is used to establish critical sections of code that can only be run by one task at ...
Definition: nbrtos.h:893
NetBurner User Datagram Protocol Header File.