⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bootp_8c-source.html

📁 Freescale mcu OpenTCP-1.0.4.doc.html.zip 文档
💻 HTML
📖 第 1 页 / 共 3 页
字号:
00204                                 localmachine.defgw = 0;00205                                 localmachine.netmask = 0;00206 00207                                 <a class="code" href="timers_8c.html#a6">init_timer</a>(<a class="code" href="bootp_8c.html#a6">bootp</a>.tmrhandle, ((UINT32)(localmachine.localHW[0]) &lt;&lt; 2) + localmachine.localHW[1]);00208                                 <a class="code" href="bootp_8c.html#a6">bootp</a>.state = <a class="code" href="bootp_8h.html#a5">BOOTPC_STATE_REQUEST_NEEDED</a>;00209                         }00210 00211                         <span class="keywordflow">return</span>;00212 00213                 <span class="keywordflow">case</span> <a class="code" href="bootp_8h.html#a5">BOOTPC_STATE_REQUEST_NEEDED</a>:00214 00215                         <span class="keywordflow">if</span>( <a class="code" href="timers_8c.html#a7">check_timer</a>(<a class="code" href="bootp_8c.html#a6">bootp</a>.tmrhandle) != 0 )00216                                 <span class="keywordflow">return</span>;00217 00218                         <span class="comment">/* Send request */</span>00219 00220                         <span class="keywordflow">if</span>(localmachine.localip != 0){00221                                 <a class="code" href="bootp_8c.html#a6">bootp</a>.state = <a class="code" href="bootp_8h.html#a4">BOOTPC_STATE_ENABLED</a>;00222                                 <span class="keywordflow">return</span>;00223 00224                         }00225 00226                         i = 0;00227 00228                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x01;00229                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x01;00230                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x06;00231                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00232                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0xCA;00233                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x03;00234                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x32;00235                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0xF1;00236 00237                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = (UINT8)(<a class="code" href="bootp_8c.html#a6">bootp</a>.bootsecs &gt;&gt; 8);00238                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = (UINT8)<a class="code" href="bootp_8c.html#a6">bootp</a>.bootsecs;00239 00240                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x80;00241 00242                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00243                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00244                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00245                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00246                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00247                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00248                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00249                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00250                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00251                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00252                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00253                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00254                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00255                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00256                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00257                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00258                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 0x00;00259 00260                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = localmachine.localHW[5];00261                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = localmachine.localHW[4];00262                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = localmachine.localHW[3];00263                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = localmachine.localHW[2];00264                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = localmachine.localHW[1];00265                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = localmachine.localHW[0];00266 00267                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 99;00268                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 130;00269                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 83;00270                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 99;00271                         net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i++] = 255;00272 00273                         <span class="keywordflow">for</span>( ;i&lt;300;i++)00274                                 net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a> + i] = 0;00275 00276                         <span class="comment">/* Send it      */</span>00277 00278                         <a class="code" href="udp_8c.html#a7">udp_send</a>(<a class="code" href="bootp_8c.html#a6">bootp</a>.sochandle, IP_BROADCAST_ADDRESS, <a class="code" href="bootp_8h.html#a2">BOOTP_SERVERPORT</a>, &amp;net_buf[<a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a>], <a class="code" href="group__opentcp__config.html#a4">NETWORK_TX_BUFFER_SIZE</a> - <a class="code" href="tcp__ip_8h.html#a62">UDP_APP_OFFSET</a>, 300);00279 00280                         <a class="code" href="timers_8c.html#a6">init_timer</a>(<a class="code" href="bootp_8c.html#a6">bootp</a>.tmrhandle, <a class="code" href="bootp_8h.html#a0">BOOTP_RETRY_TOUT</a>*<a class="code" href="timers_8h.html#a1">TIMERTIC</a>);00281 00282                         <a class="code" href="bootp_8c.html#a6">bootp</a>.bootsecs += <a class="code" href="bootp_8h.html#a0">BOOTP_RETRY_TOUT</a>*<a class="code" href="timers_8h.html#a1">TIMERTIC</a>;00283 00284                         <a class="code" href="bootp_8c.html#a6">bootp</a>.state = <a class="code" href="bootp_8h.html#a6">BOOTPC_STATE_WAITING_REPLY</a>;00285 00286                         <span class="keywordflow">return</span>;00287 00288                 <span class="keywordflow">case</span> <a class="code" href="bootp_8h.html#a6">BOOTPC_STATE_WAITING_REPLY</a>:00289 00290                         <span class="comment">/* Wait untill timeout elapsed and try again    */</span>00291 00292                         <span class="keywordflow">if</span>( <a class="code" href="timers_8c.html#a7">check_timer</a>(<a class="code" href="bootp_8c.html#a6">bootp</a>.tmrhandle) != 0 )00293                                 <span class="keywordflow">return</span>;00294 00295                         <a class="code" href="bootp_8c.html#a6">bootp</a>.state = <a class="code" href="bootp_8h.html#a5">BOOTPC_STATE_REQUEST_NEEDED</a>;00296 00297                         <span class="keywordflow">return</span>;00298 00299                 <span class="keywordflow">case</span> <a class="code" href="bootp_8h.html#a7">BOOTPC_STATE_REPLY_GET</a>:00300                         <span class="comment">/* parameters configured. Inspect state of bootp.mode</span>00301 <span class="comment">                         * and do something (if needed). Also turn BOOTP client</span>00302 <span class="comment">                         * on/off.</span>00303 <span class="comment">                         */</span>00304 00305                         <span class="keywordflow">return</span>;00306 00307 00308                 <span class="keywordflow">default</span>:00309 00310                         <span class="keywordflow">return</span>;00311         }00312 00313 }00314 <a name="l00335"></a><a class="code" href="bootp_8c.html#a11">00335</a> INT32 <a class="code" href="bootp_8c.html#a11">bootpc_eventlistener</a> (INT8 cbhandle, UINT8 event, UINT32 remip, UINT16 remport, UINT16 bufindex, UINT16 dlen) {00336         INT16 i,j,k;00337         UINT32 ip = 0;00338         UINT32 nm = 0;00339         UINT32 dgw = 0;00340         UINT8 ch;00341 00342 00343         <span class="comment">/* This function is called by UDP stack to inform about events  */</span>00344 00345         <span class="keywordflow">if</span>(<a class="code" href="bootp_8c.html#a0">bootp_app_init</a> == 0)00346                 <span class="keywordflow">return</span>(-1);00347 00348         <span class="keywordflow">if</span>( cbhandle != <a class="code" href="bootp_8c.html#a6">bootp</a>.sochandle)                <span class="comment">/* Not our handle       */</span>00349                 <span class="keywordflow">return</span>(-1);00350 00351         <span class="comment">/* The only event is data       */</span>00352 00353         <span class="keywordflow">if</span>(<a class="code" href="bootp_8c.html#a6">bootp</a>.state != <a class="code" href="bootp_8h.html#a6">BOOTPC_STATE_WAITING_REPLY</a>)00354                 <span class="keywordflow">return</span>(-1);00355 00356         <span class="comment">/* Process reply        */</span>00357 00358         <a class="code" href="system_8h.html#a14">NETWORK_RECEIVE_INITIALIZE</a>(bufindex);00359 00360         <span class="keywordflow">if</span>(dlen &lt; 300)00361                 <span class="keywordflow">return</span>(-1);00362 00363         <span class="keywordflow">if</span>(     <a class="code" href="system_8h.html#a9">RECEIVE_NETWORK_B</a>() != BOOTP_REPLY)00364                 <span class="keywordflow">return</span>(-1);00365 00366         <span class="keywordflow">if</span>(     <a class="code" href="system_8h.html#a9">RECEIVE_NETWORK_B</a>() != BOOTP_HTYPE_ETHERNET)00367                 <span class="keywordflow">return</span>(-1);00368 00369         <span class="keywordflow">if</span>(     <a class="code" href="system_8h.html#a9">RECEIVE_NETWORK_B</a>() != BOOTP_HWLEN_ETHERNET)00370                 <span class="keywordflow">return</span>(-1);00371 00372         <a class="code" href="system_8h.html#a9">RECEIVE_NETWORK_B</a>();            <span class="comment">/* Skip hops    */</span>00373 00374         <span class="comment">/* Check transaction ID */</span>00375 00376         <span class="keywordflow">if</span>(     <a class="code" href="system_8h.html#a9">RECEIVE_NETWORK_B</a>() != 0xCA)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -