?? main.c
字號:
<HTML><HEAD><TITLE>/home/asysweb/public_html/cortex/examples/exmpl13/src/main.c</TITLE></HEAD><BODY><pre><font color="#6920ac">/****************************************************************************** startup.c - Accu-Vote startup code** Copyright (c) 1996 by Global Election Systems Inc.** The authors hereby grant permission to use, copy, modify, distribute,* and license this software and its documentation for any purpose, provided* that existing copyright notices are retained in all copies and that this* notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required* for any of the authorized uses.** THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.******************************************************************************** REVISION HISTORY** 97-02-12 Guy Lancaster <lancasterg@acm.org>, Global Election Systems Inc.* Modified from 1.94m.*****************************************************************************/</font><b><font color='DarkGreen'>#include</font></b> <a href="plt_defs.h.FIND-INC"><font color="blue">"plt_defs.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="stdio.h.FIND-INC"><font color="blue">"stdio.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="typedefs.h.FIND-INC"><font color="blue">"typedefs.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="avos.h.FIND-INC"><font color="blue">"avos.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="timer.h.FIND-INC"><font color="blue">"timer.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="rand.h.FIND-INC"><font color="blue">"rand.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="netbuf.h.FIND-INC"><font color="blue">"netbuf.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="time.h.FIND-INC"><font color="blue">"time.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="devio.h.FIND-INC"><font color="blue">"devio.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="butctrl.h.FIND-INC"><font color="blue">"butctrl.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="net.h.FIND-INC"><font color="blue">"net.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="startup.h.FIND-INC"><font color="blue">"startup.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="debug.h.FIND-INC"><font color="blue">"debug.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="netppp.h.FIND-INC"><font color="blue">"netppp.h"</font></a><font color="#6920ac">/*************************/</font><font color="#6920ac">/*** LOCAL DEFINITIONS ***/</font><font color="#6920ac">/*************************/</font><font color="#6920ac">/* The main stack needs to be large enough to handle the main application * plus all the interrupt handlers. */</font><b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="STACK_MAIN_SIZE">STACK_MAIN_SIZE</a></font> (12*1024)<font color="#6920ac">/***********************************/</font><font color="#6920ac">/*** LOCAL FUNCTION DECLARATIONS ***/</font><font color="#6920ac">/***********************************/</font><font size="+1"><i>static</i> <i>void</i> <a href="shutdown.FIND-FUNC">shutdown</a>(<i>void</i>);</font><font color="#6920ac">/*****************************/</font><font color="#6920ac">/*** LOCAL DATA STRUCTURES ***/</font><font color="#6920ac">/*****************************/</font><font color="#6920ac">/* None */</font><font color="#6920ac">/***********************************/</font><font color="#6920ac">/*** PUBLIC FUNCTION DEFINITIONS ***/</font><font color="#6920ac">/***********************************/</font><font color="#6920ac">/* * Initialize all subsystems and then call main(). */</font><font color="#6920ac">/* #pragma argsused */</font><font size="+1"><i>void</i> <b><font color="azure1"><a name="Main">Main</a></font></b>(<i>crtx_Int_t</i> ArgC_a, <i>crtx_Void_t</i> *pArgV_a, <i>crtx_Void_t</i> *pEnvV_a){</font> <i>crtx_Int_t</i> ArgC; <i>crtx_Void_t</i> *pArgV; <i>crtx_Void_t</i> *pEnvV; <i>int</i> pppLink; <i>int</i> pppStatus; <i>int</i> if_up; <font color="#6920ac">/* True when the interface is up. */</font> ArgC = ArgC_a; <font color="#6920ac">/* to avoid compiler's warning */</font> pArgV = pArgV_a; <font color="#6920ac">/* ... */</font> pEnvV = pEnvV_a; <font color="#6920ac">/* ... */</font> <font color="#6920ac">/* startup message */</font> <a href="printf.FIND-FUNC">printf</a>(<font color="DarkGreen">"\n%s (Version: %s)\n\n"</font>, <a href="syst_Copyright.FIND-FUNC">syst_Copyright</a>(), <a href="syst_VersionStr.FIND-FUNC">syst_VersionStr</a>()); <a href="printf.FIND-FUNC">printf</a>(<font color="DarkGreen">"%s[%d]:TEST:uCIP: TCP/IP/PPP Stack Test Started (%d ticks/sec) ...\n"</font>, <a href="task_GetName.FIND-FUNC">task_GetName</a>(<a href="task_Self.FIND-FUNC">task_Self</a>()), <a href="task_Self.FIND-FUNC">task_Self</a>(), <a href="TICK_SYSTEM_TICKS_PER_SEC.FIND-DEF">TICK_SYSTEM_TICKS_PER_SEC</a>); <font color="#6920ac">/* disable local echo */</font> <a href="ioctl.FIND-FUNC">ioctl</a>(0, <a href="DISECHO.FIND-DEF">DISECHO</a>, <a href="NULL.FIND-DEF">NULL</a>); <font color="#6920ac">/* disable conversion */</font> <a href="ioctl.FIND-FUNC">ioctl</a>(0, <a href="SETCONV.FIND-DEF">SETCONV</a>, 0); <a href="avosInit.FIND-FUNC">avosInit</a>(shutdown); <font color="#6920ac">/* Start the OS services */</font> <a href="netInit.FIND-FUNC">netInit</a>(); <font color="#6920ac">/* Initialize network subsystems. */</font> <a href="task_Sleep.FIND-FUNC">task_Sleep</a>(10); <font color="#6920ac">/* Let lower priority processes run. */</font> <font color="#6920ac">/* if modem connection and/or login is required sendRecv() shall be used * here */</font><font color="#6920ac">#if 0 sendRecv(...);#endif</font> <font color="#6920ac">/* start debuging monitor */</font> <a href="monStart.FIND-FUNC">monStart</a>(); <font color="#6920ac">/* Start the diagnostics monitor (if enabled) */</font> <b>while</b> (1) { <a href="printf.FIND-FUNC">printf</a>(<font color="DarkGreen">"%s[%d]:TEST: TCP/IP/PPP: Trying to establish ppp link ...\n"</font>, <a href="task_GetName.FIND-FUNC">task_GetName</a>(<a href="task_Self.FIND-FUNC">task_Self</a>()), <a href="task_Self.FIND-FUNC">task_Self</a>()); <font color="#6920ac">/* open ppp link */</font> <b>while</b> ((pppLink = <a href="pppOpen.FIND-FUNC">pppOpen</a>(0)) < 0) { <a href="printf.FIND-FUNC">printf</a>(<font color="DarkGreen">"%s[%d]:TEST: TCP/IP/PPP: Couldn't open PPP link: error=%d.\n"</font>, <a href="task_GetName.FIND-FUNC">task_GetName</a>(<a href="task_Self.FIND-FUNC">task_Self</a>()), <a href="task_Self.FIND-FUNC">task_Self</a>(), pppLink); <a href="printf.FIND-FUNC">printf</a>(<font color="DarkGreen">"%s[%d]:TEST: TCP/IP/PPP: Allow pppMain task to finish.\n"</font>, <a href="task_GetName.FIND-FUNC">task_GetName</a>(<a href="task_Self.FIND-FUNC">task_Self</a>()), <a href="task_Self.FIND-FUNC">task_Self</a>()); <font color="#6920ac">/* allow pppMain task to terminate */</font> <a href="task_Sleep.FIND-FUNC">task_Sleep</a>(<a href="MAXKILLDELAY.FIND-DEF">MAXKILLDELAY</a>*2); <a href="printf.FIND-FUNC">printf</a>(<font color="DarkGreen">"%s[%d]:TEST: TCP/IP/PPP: try open PPP connection again\n"</font>, <a href="task_GetName.FIND-FUNC">task_GetName</a>(<a href="task_Self.FIND-FUNC">task_Self</a>()), <a href="task_Self.FIND-FUNC">task_Self</a>()); } <a href="printf.FIND-FUNC">printf</a>(<font color="DarkGreen">"%s[%d]:TEST: TCP/IP/PPP: PPP interface is up.\n"</font>, <a href="task_GetName.FIND-FUNC">task_GetName</a>(<a href="task_Self.FIND-FUNC">task_Self</a>()), <a href="task_Self.FIND-FUNC">task_Self</a>()); <font color="#6920ac">/* debugging monitor runs as a separated task constantly waiting for * incomming tcp connections on port TCPPORT_ACCUVOTE (3031). * When connected some commands are available to request some traces * and PPP/TCP/IP statistics. Use telnet to connect on the above port */</font> <b>while</b> (1) { <a href="task_Sleep.FIND-FUNC">task_Sleep</a>(<a href="MAXKILLDELAY.FIND-DEF">MAXKILLDELAY</a>*2+1); <b>if</b> (<a href="pppIOCtl.FIND-FUNC">pppIOCtl</a>(pppLink, <a href="PPPCTLG_UPSTATUS.FIND-DEF">PPPCTLG_UPSTATUS</a>, &if_up) == 0) { <b>if</b> (!if_up) { <a href="printf.FIND-FUNC">printf</a>(<font color="DarkGreen">"%s[%d]:TEST: TCP/IP/PPP: PPP interface is down.\n"</font>, <a href="task_GetName.FIND-FUNC">task_GetName</a>(<a href="task_Self.FIND-FUNC">task_Self</a>()), <a href="task_Self.FIND-FUNC">task_Self</a>()); <b>break</b>; } } } <font color="#6920ac">/* close ppp link */</font> pppStatus = <a href="pppClose.FIND-FUNC">pppClose</a>(pppLink); <b>if</b> (pppStatus < 0) { <a href="printf.FIND-FUNC">printf</a>(<font color="DarkGreen">"%s[%d]:TEST: TCP/IP/PPP: Couldn't close PPP link: error=%d\n"</font>, <a href="task_GetName.FIND-FUNC">task_GetName</a>(<a href="task_Self.FIND-FUNC">task_Self</a>()), <a href="task_Self.FIND-FUNC">task_Self</a>(), pppLink); <a href="CRTX_EXCEPTION.FIND-DEF">CRTX_EXCEPTION</a> Error_Exc; } <a href="printf.FIND-FUNC">printf</a>(<font color="DarkGreen">"%s[%d]:TEST: TCP/IP/PPP: PPP connection is closed.\n"</font>, <a href="task_GetName.FIND-FUNC">task_GetName</a>(<a href="task_Self.FIND-FUNC">task_Self</a>()), <a href="task_Self.FIND-FUNC">task_Self</a>()); } <font color="#6920ac">/* while (1) */</font> <font color="#6920ac">/* completion message */</font> <a href="printf.FIND-FUNC">printf</a>(<font color="DarkGreen">"%s[%d]:TEST: TCP/IP/PPP Stack Test Completed ...\n"</font>, <a href="task_GetName.FIND-FUNC">task_GetName</a>(<a href="task_Self.FIND-FUNC">task_Self</a>()), <a href="task_Self.FIND-FUNC">task_Self</a>());<font color="blue">Error_Exc:</font> <b>return</b>;}<font size="+1"><i>crtx_Void_t</i> <b><font color="azure1"><a name="crtx_Main">crtx_Main</a></font></b>( <i>crtx_Int_t</i> ArgC_a, <i>crtx_Void_t</i> *pArgV_a, <i>crtx_Void_t</i> *pEnvV_a){</font> <a href="pltf_Init.FIND-FUNC">pltf_Init</a>(ArgC_a, pArgV_a, pEnvV_a); <a href="#Main">Main</a>(ArgC_a, pArgV_a, pEnvV_a);}<font color="#6920ac">/**********************************/</font><font color="#6920ac">/*** LOCAL FUNCTION DEFINITIONS ***/</font><font color="#6920ac">/**********************************/</font><font color="#6920ac">/* * Shut down the system devices - This is the application shutdown function * submitted to AVOS for use when halting the system. * We assume here that task switching is disabled and that no interrupt * handler is going to undo what we've done here. */</font><font size="+1"><i>static</i> <i>void</i> <b><font color="azure1"><a name="shutdown">shutdown</a></font></b>(<i>void</i>){</font> <b>return</b>;}</pre></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -