return trunk->Q921Tx23Proc(trunk->PrivateData23, Msg, size);
}
-\r
-/*****************************************************************************\r
-\r
- Function: Q921TimeTick\r
-\r
- Description: Called periodically from an external source to allow the \r
- stack to process and maintain it's own timers.\r
-\r
- Return Value: none\r
-\r
-*****************************************************************************/\r
-L2ULONG (*Q921GetTimeProc) ()=NULL; /* callback for func reading time in ms */\r
-static L2ULONG tLast={0};\r
-\r
-L2ULONG Q921GetTime()\r
-{\r
- L2ULONG tNow = 0;\r
- if(Q921GetTimeProc != NULL)\r
- {\r
- tNow = Q921GetTimeProc();\r
- if(tNow < tLast) /* wrapped */\r
- {\r
- /* TODO */\r
- }\r
- tLast = tNow;\r
- }\r
- return tNow;\r
-}\r
-\r
-void Q921T200TimerStart(L2TRUNK trunk)\r
-{\r
- if (!trunk->T200) {\r
- trunk->T200 = Q921GetTime() + trunk->T200Timeout;\r
- }\r
-}\r
-\r
-void Q921T200TimerStop(L2TRUNK trunk)\r
-{\r
- trunk->T200 = 0;\r
-}\r
-\r
-void Q921T200TimerReset(L2TRUNK trunk)\r
-{\r
- Q921T200TimerStop(trunk);\r
- Q921T200TimerStart(trunk);\r
-}\r
-
-void Q921T203TimerStart(L2TRUNK trunk)\r
-{\r
- if (!trunk->T203) {\r
- trunk->T203 = Q921GetTime() + trunk->T203Timeout;\r
- }\r
-}\r
-\r
-void Q921T203TimerStop(L2TRUNK trunk)\r
-{\r
- trunk->T203 = 0;\r
-}\r
-\r
-void Q921T203TimerReset(L2TRUNK trunk)\r
-{\r
- Q921T203TimerStop(trunk);\r
- Q921T203TimerStart(trunk);\r
-}\r
-\r
-void Q921T200TimerExpire(L2TRUNK trunk)\r
-{\r
- (void)trunk;\r
-}\r
-\r
-void Q921T203TimerExpire(L2TRUNK trunk)\r
-{\r
- Q921T203TimerReset(trunk);\r
- Q921SendRR(trunk, trunk->sapi, trunk->NetUser == Q921_TE ? 0 : 1, trunk->tei, 1);\r
-}\r
-\r
-void Q921TimerTick(L2TRUNK trunk)\r
-{\r
- L2ULONG tNow = Q921GetTime();\r
- if (trunk->T200 && tNow > trunk->T200) {\r
- Q921T200TimerExpire(trunk);\r
- }\r
- if (trunk->T203 && tNow > trunk->T203) {\r
- Q921T203TimerExpire(trunk); \r
- }\r
-}\r
-\r
-\r
-void Q921SetGetTimeCB(L2ULONG (*callback)())\r
-{\r
- Q921GetTimeProc = callback;\r
-}\r
+
+/*****************************************************************************
+
+ Function: Q921TimeTick
+
+ Description: Called periodically from an external source to allow the
+ stack to process and maintain it's own timers.
+
+ Return Value: none
+
+*****************************************************************************/
+L2ULONG (*Q921GetTimeProc) ()=NULL; /* callback for func reading time in ms */
+static L2ULONG tLast={0};
+
+L2ULONG Q921GetTime()
+{
+ L2ULONG tNow = 0;
+ if(Q921GetTimeProc != NULL)
+ {
+ tNow = Q921GetTimeProc();
+ if(tNow < tLast) /* wrapped */
+ {
+ /* TODO */
+ }
+ tLast = tNow;
+ }
+ return tNow;
+}
+
+void Q921T200TimerStart(L2TRUNK trunk)
+{
+ if (!trunk->T200) {
+ trunk->T200 = Q921GetTime() + trunk->T200Timeout;
+ }
+}
+
+void Q921T200TimerStop(L2TRUNK trunk)
+{
+ trunk->T200 = 0;
+}
+
+void Q921T200TimerReset(L2TRUNK trunk)
+{
+ Q921T200TimerStop(trunk);
+ Q921T200TimerStart(trunk);
+}
+
+void Q921T203TimerStart(L2TRUNK trunk)
+{
+ if (!trunk->T203) {
+ trunk->T203 = Q921GetTime() + trunk->T203Timeout;
+ }
+}
+
+void Q921T203TimerStop(L2TRUNK trunk)
+{
+ trunk->T203 = 0;
+}
+
+void Q921T203TimerReset(L2TRUNK trunk)
+{
+ Q921T203TimerStop(trunk);
+ Q921T203TimerStart(trunk);
+}
+
+void Q921T200TimerExpire(L2TRUNK trunk)
+{
+ (void)trunk;
+}
+
+void Q921T203TimerExpire(L2TRUNK trunk)
+{
+ Q921T203TimerReset(trunk);
+ Q921SendRR(trunk, trunk->sapi, trunk->NetUser == Q921_TE ? 0 : 1, trunk->tei, 1);
+}
+
+void Q921TimerTick(L2TRUNK trunk)
+{
+ L2ULONG tNow = Q921GetTime();
+ if (trunk->T200 && tNow > trunk->T200) {
+ Q921T200TimerExpire(trunk);
+ }
+ if (trunk->T203 && tNow > trunk->T203) {
+ Q921T203TimerExpire(trunk);
+ }
+}
+
+
+void Q921SetGetTimeCB(L2ULONG (*callback)())
+{
+ Q921GetTimeProc = callback;
+}
/*****************************************************************************