annotate packages/net/httpd/current/src/monitor.c @ 468:ca4f29d41b18

Created new HTTPD package.
author nickg
date Sun, 22 Dec 2002 11:09:00 +0000
parents
children 0b41b42148e9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
468
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1 /* =================================================================
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
2 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
3 * monitor.c
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
4 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
5 * An HTTP system monitor
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
6 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
7 * =================================================================
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
8 * ####ECOSGPLCOPYRIGHTBEGIN####
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
9 * -------------------------------------------
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
10 * This file is part of eCos, the Embedded Configurable Operating
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
11 * System.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
12 * Copyright (C) 2002 Nick Garnett.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
13 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
14 * eCos is free software; you can redistribute it and/or modify it
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
15 * under the terms of the GNU General Public License as published by
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
16 * the Free Software Foundation; either version 2 or (at your option)
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
17 * any later version.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
18 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
19 * eCos is distributed in the hope that it will be useful, but
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
20 * WITHOUT ANY WARRANTY; without even the implied warranty of
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
22 * General Public License for more details.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
23 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
24 * You should have received a copy of the GNU General Public License
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
25 * along with eCos; if not, write to the Free Software Foundation,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
26 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
27 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
28 * As a special exception, if other files instantiate templates or
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
29 * use macros or inline functions from this file, or you compile this
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
30 * file and link it with other works to produce a work based on this
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
31 * file, this file does not by itself cause the resulting work to be
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
32 * covered by the GNU General Public License. However the source code
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
33 * for this file must still be made available in accordance with
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
34 * section (3) of the GNU General Public License.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
35 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
36 * This exception does not invalidate any other reasons why a work
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
37 * based on this file might be covered by the GNU General Public
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
38 * License.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
39 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
40 * -------------------------------------------
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
41 * ####ECOSGPLCOPYRIGHTEND####
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
42 * =================================================================
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
43 * #####DESCRIPTIONBEGIN####
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
44 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
45 * Author(s): nickg@calivar.com
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
46 * Contributors: nickg@calivar.com
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
47 * Date: 2002-10-14
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
48 * Purpose:
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
49 * Description:
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
50 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
51 * ####DESCRIPTIONEND####
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
52 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
53 * =================================================================
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
54 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
55
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
56 #include <pkgconf/system.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
57 #include <pkgconf/isoinfra.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
58 #include <pkgconf/net.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
59 #include <pkgconf/httpd.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
60 #include <pkgconf/kernel.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
61
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
62 #include <cyg/infra/cyg_trac.h> /* tracing macros */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
63 #include <cyg/infra/cyg_ass.h> /* assertion macros */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
64
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
65 #include <cyg/httpd/httpd.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
66
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
67 #include <cyg/kernel/kapi.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
68 #ifdef CYGPKG_KERNEL_INSTRUMENT
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
69 #include <cyg/kernel/instrmnt.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
70 #include <cyg/kernel/instrument_desc.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
71 #endif
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
72
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
73 #include <unistd.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
74 #include <ctype.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
75
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
76 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
77 /* Include all the necessary network headers by hand. We need to do
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
78 * this so that _KERNEL is correctly defined, or not, for specific
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
79 * headers so we can use both the external API and get at internal
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
80 * kernel structures.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
81 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
82
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
83 #define _KERNEL
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
84 #include <sys/param.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
85 #undef _KERNEL
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
86 #include <sys/socket.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
87 #include <sys/ioctl.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
88 #include <sys/errno.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
89 #include <sys/time.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
90
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
91 #define _KERNEL
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
92
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
93 #include <net/if.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
94 #include <netinet/in.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
95 #include <netinet/ip.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
96 #include <netinet/ip_icmp.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
97 #include <net/route.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
98 #include <net/if_dl.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
99
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
100 #include <sys/protosw.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
101 #include <netinet/in_pcb.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
102 #include <netinet/udp.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
103 #include <netinet/tcp.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
104 #include <netinet/tcp_timer.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
105 #include <netinet/ip_var.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
106 #include <netinet/icmp_var.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
107 #include <netinet/udp_var.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
108 #include <netinet/tcp_var.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
109
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
110 #include <cyg/io/eth/eth_drv_stats.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
111
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
112 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
113 /* Use this when a thread appears to have no name.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
114 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
115
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
116 #define NULL_THREAD_NAME "----------"
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
117
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
118 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
119 /* Draw navigation bar
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
120 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
121 * This draws a simple table containing links to the various monitor
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
122 * pages at the current position in the HTML stream.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
123 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
124
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
125 static void draw_navbar( FILE *client )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
126 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
127 html_para_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
128
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
129 html_table_begin( client, "border cellpadding=\"4\"" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
130 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
131 html_table_row_begin(client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
132 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
133 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
134 html_image( client, "/monitor/ecos.gif", "eCos logo", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
135 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
136 html_url( client, "Threads", "/monitor/threads.html");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
137 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
138 html_url( client, "Interrupts", "/monitor/interrupts.html");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
139 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
140 html_url( client, "Memory", "/monitor/memory.html");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
141 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
142 html_url( client, "Network", "/monitor/network.html");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
143 #ifdef CYGPKG_KERNEL_INSTRUMENT
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
144 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
145 html_url( client, "Instrumentation", "/monitor/instrument.html");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
146 #endif
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
147 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
148 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
149 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
150 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
151 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
152
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
153 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
154 /* Index page
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
155 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
156 * A simple introductory page matching "/monitor" and
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
157 * "/monitor/index.html".
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
158 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
159
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
160 static char monitor_index_blurb[] =
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
161 "<p>This is the eCos System Monitor. It presents a simple web monitor
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
162 and control interface for eCos systems.\n"
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
163 "<p>Use the navigation bar at the bottom of each page to explore."
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
164 ;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
165
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
166 static cyg_bool cyg_monitor_index( FILE * client, char *filename,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
167 char *formdata, void *arg )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
168 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
169 html_begin(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
170
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
171 html_head(client,"eCos System Monitor", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
172
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
173 html_body_begin(client,"");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
174 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
175 html_heading(client, 2, "eCos System Monitor" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
176
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
177 fputs( monitor_index_blurb, client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
178
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
179 draw_navbar(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
180 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
181 html_body_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
182
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
183 html_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
184
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
185 return 1;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
186 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
187
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
188 CYG_HTTPD_TABLE_ENTRY( cyg_monitor_entry,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
189 "/monitor",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
190 cyg_monitor_index,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
191 NULL );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
192
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
193 CYG_HTTPD_TABLE_ENTRY( cyg_monitor_index_entry,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
194 "/monitor/index.html",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
195 cyg_monitor_index,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
196 NULL );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
197
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
198 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
199 /* Thread Monitor
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
200 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
201 * Uses the kapi thread info API to enumerate all the current threads
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
202 * and generate a table showing their state.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
203 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
204
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
205 static cyg_bool cyg_monitor_threads( FILE * client, char *filename,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
206 char *formdata, void *arg )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
207 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
208
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
209 html_begin(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
210
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
211 /* html_head(client,"Thread Monitor", "<meta http-equiv=\"refresh\" content=\"10\">"); */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
212 html_head(client,"eCos Thread Monitor", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
213
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
214 html_body_begin(client,"");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
215 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
216 html_heading(client, 2, "Thread Monitor" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
217
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
218 html_table_begin( client, "border" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
219 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
220 cyg_handle_t thread = 0;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
221 cyg_uint16 id = 0;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
222
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
223 html_table_header( client, "Id", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
224 html_table_header( client, "State", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
225 html_table_header( client, "Set<br>Priority", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
226 html_table_header( client, "Current<br>Priority", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
227 html_table_header( client, "Name", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
228 html_table_header( client, "Stack Base", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
229 html_table_header( client, "Stack Size", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
230 #ifdef CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
231 html_table_header( client, "Stack Used", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
232 #endif
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
233 /* Loop over the threads, and generate a table row for
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
234 * each.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
235 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
236 while( cyg_thread_get_next( &thread, &id ) )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
237 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
238 cyg_thread_info info;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
239 char *state_string;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
240
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
241 cyg_thread_get_info( thread, id, &info );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
242
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
243 if( info.name == NULL )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
244 info.name = NULL_THREAD_NAME;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
245
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
246 /* Translate the state into a string.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
247 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
248 if( info.state == 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
249 state_string = "RUN";
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
250 else if( info.state & 0x04 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
251 state_string = "SUSP";
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
252 else switch( info.state & 0x1b )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
253 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
254 case 0x01: state_string = "SLEEP"; break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
255 case 0x02: state_string = "CNTSLEEP"; break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
256 case 0x08: state_string = "CREATE"; break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
257 case 0x10: state_string = "EXIT"; break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
258 default: state_string = "????"; break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
259 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
260
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
261 /* Now generate the row.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
262 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
263 html_table_row_begin(client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
264 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
265 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
266 fprintf( client, "<a href=\"/monitor/thread-%04x.html\">%04x</a>\n", id,id);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
267 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
268 fprintf( client, "%s", state_string);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
269 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
270 fprintf( client, "%d", info.set_pri);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
271 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
272 fprintf( client, "%d", info.cur_pri);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
273 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
274 fputs( info.name, client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
275 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
276 fprintf( client, "%08x", info.stack_base );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
277 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
278 fprintf( client, "%d", info.stack_size );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
279 #ifdef CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
280 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
281 fprintf( client, "%d", info.stack_used );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
282 #endif
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
283 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
284 html_table_row_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
285
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
286 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
287 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
288 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
289
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
290 draw_navbar(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
291 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
292 html_body_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
293
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
294 html_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
295
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
296 return 1;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
297 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
298
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
299 CYG_HTTPD_TABLE_ENTRY( cyg_monitor_show_threads,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
300 "/monitor/threads.htm*",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
301 cyg_monitor_threads,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
302 NULL );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
303
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
304 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
305 /* Thread edit page
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
306 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
307 * A page on which the thread's state may be edited. This tests forms
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
308 * handling.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
309 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
310
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
311 static char thread_edit_blurb[] =
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
312 "<p>This table contains an entry for each property of the thread
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
313 that you can edit. The properties are:\n"
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
314 "<p><b>State:</b> Change thread's state. The <em>Suspend</em> button
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
315 will suspend the thread. The <em>Run</em> button will undo any previous
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
316 suspends. The <em>Release</em> button will release the thread out of
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
317 any sleep it is currently in.\n"
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
318 "<p><b>Priority:</b> Change the thread's priority.\n"
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
319 "<p>Once the new state has been selected, press the <em>Submit</em>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
320 button to make the change, or <em>Reset</em> to clear it."
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
321 ;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
322
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
323 static cyg_bool cyg_monitor_thread_edit( FILE * client, char *filename,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
324 char *formdata, void *arg )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
325 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
326 /* If any form data has been supplied, then change the thread's
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
327 * state accordingly.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
328 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
329 if( formdata != NULL )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
330 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
331 char *formlist[6];
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
332 char *state;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
333 char *pri_string;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
334 char *id_string;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
335 cyg_handle_t thread = 0;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
336 cyg_uint16 id;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
337
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
338 /* Parse the data */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
339 cyg_formdata_parse( formdata, formlist, 6 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
340
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
341 /* Get the thread id from the hidden control */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
342 id_string = cyg_formlist_find( formlist, "thread");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
343
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
344 sscanf( id_string, "%04hx", &id );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
345
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
346 thread = cyg_thread_find( id );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
347
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
348 /* If there is a pri field, change the priority */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
349 pri_string = cyg_formlist_find( formlist, "pri");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
350
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
351 if( pri_string != NULL )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
352 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
353 cyg_priority_t pri;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
354
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
355 sscanf( pri_string, "%d", &pri );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
356
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
357 cyg_thread_set_priority( thread, pri );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
358 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
359
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
360 /* If there is a state field, change the thread state */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
361 state = cyg_formlist_find( formlist, "state");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
362
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
363 if( state != NULL )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
364 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
365 if( strcmp( state, "run" ) == 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
366 cyg_thread_resume( thread );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
367 if( strcmp( state, "suspend" ) == 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
368 cyg_thread_suspend( thread );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
369 if( strcmp( state, "release" ) == 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
370 cyg_thread_release( thread );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
371 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
372 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
373
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
374 /* Now generate a page showing the current thread state, and
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
375 * including form controls to change it.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
376 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
377
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
378 html_begin(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
379
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
380 html_head(client,"eCos Thread Editor", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
381
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
382 html_body_begin(client,"");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
383 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
384 cyg_uint16 id;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
385 cyg_thread_info info;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
386 cyg_handle_t thread = 0;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
387 char idbuf[16];
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
388
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
389 sscanf( filename, "/monitor/thread-%04hx.html", &id );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
390
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
391 thread = cyg_thread_find( id );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
392 cyg_thread_get_info(thread, id, &info );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
393
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
394 html_heading(client, 2, "Thread State Editor" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
395
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
396 html_para_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
397
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
398 fprintf( client, "Editing Thread %04x %s\n",id,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
399 info.name?info.name:NULL_THREAD_NAME);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
400
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
401 fputs( thread_edit_blurb, client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
402
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
403 html_form_begin( client, filename, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
404 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
405 html_table_begin( client, "border" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
406 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
407 html_table_header( client, "Property", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
408 html_table_header( client, "Value", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
409
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
410 html_table_row_begin(client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
411 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
412 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
413 fputs( "State", client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
414
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
415 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
416
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
417 html_form_input_radio( client, "state", "run", (info.state&0x04)==0 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
418 fputs( "Run", client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
419 html_form_input_radio( client, "state", "suspend", (info.state&0x04)!=0 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
420 fputs( "Suspend", client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
421 html_form_input_radio( client, "state", "release", 0 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
422 fputs( "Release", client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
423 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
424 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
425
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
426 html_table_row_begin(client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
427 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
428 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
429 fputs( "Priority", client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
430
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
431 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
432 fprintf(client,"<input type=\"text\" name=\"pri\" size=\"10\" value=\"%d\">\n",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
433 info.set_pri);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
434 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
435 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
436
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
437 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
438 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
439
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
440 /* Add submit and reset buttons */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
441 html_form_input(client, "submit", "submit", "Submit", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
442 html_form_input(client, "reset", "reset", "Reset", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
443
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
444 /* Pass the thread ID through to our next incarnation */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
445 sprintf( idbuf, "%04x", id );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
446 html_form_input_hidden(client, "thread", idbuf );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
447
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
448 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
449 html_form_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
450
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
451 draw_navbar(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
452 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
453 html_body_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
454
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
455 html_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
456
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
457 return 1;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
458 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
459
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
460 CYG_HTTPD_TABLE_ENTRY( cyg_monitor_thread_edit_entry,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
461 "/monitor/thread-*",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
462 cyg_monitor_thread_edit,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
463 NULL );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
464
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
465 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
466 /* Interrupt monitor
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
467 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
468 * At present this just generates a table showing which interrupts
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
469 * have an ISR attached.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
470 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
471
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
472 static cyg_bool cyg_monitor_interrupts( FILE * client, char *filename,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
473 char *formdata, void *arg )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
474 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
475 html_begin(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
476
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
477 html_head(client,"eCos Interrupt Monitor", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
478
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
479 html_body_begin(client,"");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
480 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
481 html_heading(client, 2, "Interrupt Monitor" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
482
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
483 html_table_begin( client, "border" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
484 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
485 int i;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
486 int maxint = CYGNUM_HAL_ISR_MAX;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
487
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
488 #ifdef CYGPKG_HAL_I386
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
489 maxint = CYGNUM_HAL_ISR_MIN+16;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
490 #endif
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
491
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
492 html_table_header( client, "ISR", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
493 html_table_header( client, "State", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
494
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
495 for( i = CYGNUM_HAL_ISR_MIN; i <= maxint ; i++ )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
496 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
497 cyg_bool_t inuse;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
498 HAL_INTERRUPT_IN_USE( i, inuse );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
499
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
500 html_table_row_begin(client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
501 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
502 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
503 fprintf( client, "%d", i);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
504 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
505 fprintf( client, "%s", inuse?"In Use":"Free");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
506 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
507 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
508 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
509 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
510 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
511
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
512 draw_navbar(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
513 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
514 html_body_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
515
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
516 html_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
517
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
518 return 1;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
519
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
520 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
521
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
522 CYG_HTTPD_TABLE_ENTRY( cyg_monitor_interrupts_entry,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
523 "/monitor/interrupts.htm*",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
524 cyg_monitor_interrupts,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
525 NULL );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
526
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
527 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
528 /* Memory monitor
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
529 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
530 * Generates a table showing a 256 byte page of memory. Form controls
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
531 * allow changes to the base address and display element size.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
532 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
533
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
534 static cyg_bool cyg_monitor_memory( FILE * client, char *filename,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
535 char *formdata, void *arg )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
536 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
537 char *formlist[10];
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
538 cyg_uint32 base = 0;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
539 unsigned int datasize = 1;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
540 int size = 256;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
541 char *p;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
542
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
543 cyg_formdata_parse( formdata, formlist, 10 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
544
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
545 p = cyg_formlist_find( formlist, "base" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
546
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
547 if( p != NULL )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
548 sscanf( p, "%x", &base );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
549
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
550 p = cyg_formlist_find( formlist, "datasize" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
551
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
552 if( p != NULL )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
553 sscanf( p, "%x", &datasize );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
554
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
555 if( cyg_formlist_find( formlist, "next" ) != NULL )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
556 base += size;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
557
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
558 if( cyg_formlist_find( formlist, "prev" ) != NULL )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
559 base -= size;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
560
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
561 html_begin(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
562
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
563 html_head(client,"eCos Memory Monitor", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
564
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
565 html_body_begin(client,"");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
566 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
567 html_heading(client, 2, "Memory Monitor" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
568
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
569 html_form_begin( client, "/monitor/memory.html", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
570 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
571
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
572 /* Text input control for base address
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
573 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
574 html_para_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
575 fprintf(client,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
576 "Base Address: 0x<input type=\"text\" name=\"base\" size=\"10\" value=\"%x\">\n",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
577 base);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
578
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
579 /* A little menu for the element size
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
580 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
581 html_para_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
582
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
583 fputs( "Element Size: ", client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
584 html_form_select_begin( client, "datasize", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
585 html_form_option( client, "1", "bytes", datasize==1 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
586 html_form_option( client, "2", "words", datasize==2 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
587 html_form_option( client, "4", "dwords", datasize==4 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
588 html_form_select_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
589
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
590 html_para_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
591
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
592 /* Submit and reset buttons
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
593 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
594 html_form_input(client, "submit", "submit", "Submit", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
595 html_form_input(client, "reset", "reset", "Reset", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
596
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
597 html_para_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
598
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
599 /* Previous page button */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
600 html_form_input(client, "submit", "prev", "Prev Page", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
601
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
602 /* Switch to monospaced font */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
603 cyg_html_tag_begin( client, "font", "face=\"monospace\"" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
604
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
605 html_table_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
606 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
607 cyg_addrword_t loc;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
608 cyg_addrword_t oloc;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
609
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
610 for( oloc = loc = base; loc <= (base+size) ; loc++ )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
611 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
612 if( ( loc % 16 ) == 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
613 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
614 if( loc != base )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
615 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
616 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
617 for( ; oloc < loc; oloc++ )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
618 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
619 char c = *(char *)oloc;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
620 if( !isprint(c) )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
621 c = '.';
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
622 putc( c, client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
623 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
624 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
625 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
626 if( loc == (base+size) )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
627 break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
628 html_table_row_begin(client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
629 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
630 fprintf( client, "%08x:",loc);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
631 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
632
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
633 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
634
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
635 if( (loc % datasize) == 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
636 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
637 switch( datasize )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
638 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
639 case 1: fprintf( client, "%02x", *(cyg_uint8 *)loc ); break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
640 case 2: fprintf( client, "%04x", *(cyg_uint16 *)loc ); break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
641 case 4: fprintf( client, "%08x", *(cyg_uint32 *)loc ); break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
642 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
643 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
644 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
645 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
646 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
647 cyg_html_tag_end( client, "font" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
648
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
649 html_form_input(client, "submit", "next", "Next Page", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
650 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
651 html_form_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
652
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
653 draw_navbar(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
654 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
655 html_body_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
656
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
657 html_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
658
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
659 return 1;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
660
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
661 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
662
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
663 CYG_HTTPD_TABLE_ENTRY( cyg_monitor_memory_entry,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
664 "/monitor/memory.htm*",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
665 cyg_monitor_memory,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
666 NULL );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
667
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
668 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
669 /* Network Monitor
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
670 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
671 * This function generates a page containing information about the
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
672 * network interfaces and the protocols.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
673 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
674
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
675 static cyg_bool cyg_monitor_network( FILE * client, char *filename,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
676 char *formdata, void *arg )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
677 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
678 struct ifconf ifconf;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
679 char conf[256];
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
680 int err;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
681 int sock;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
682
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
683 /* Start by opening a socket and getting a list of all the
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
684 * interfaces present.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
685 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
686 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
687 memset( conf, 0, sizeof(conf) );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
688
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
689 sock = socket( AF_INET, SOCK_DGRAM, 0 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
690
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
691 ifconf.ifc_len = sizeof(conf);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
692 ifconf.ifc_buf = (caddr_t)conf;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
693
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
694 err = ioctl( sock, SIOCGIFCONF, &ifconf );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
695 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
696
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
697 html_begin(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
698
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
699 html_head(client,"eCos Network Monitor", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
700
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
701 html_body_begin(client,"");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
702 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
703 html_heading(client, 2, "Network Monitor" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
704
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
705 html_heading(client, 3, "Interfaces" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
706
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
707 html_table_begin( client, "border" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
708 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
709 int i;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
710 struct ifreq *ifrp;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
711 struct sockaddr *sa;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
712
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
713 html_table_header( client, "Interface", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
714 html_table_header( client, "Status", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
715
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
716 ifrp = ifconf.ifc_req;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
717
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
718 while( ifconf.ifc_len && ifrp->ifr_name[0] )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
719 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
720 struct ifreq ifreq = *ifrp;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
721
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
722 /* For some reason we get two entries for each
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
723 * interface in the list: one with an AF_INET address
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
724 * and one with an AF_LINK address. We are currently
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
725 * only interested in the AF_INET ones.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
726 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
727
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
728 if( ifrp->ifr_addr.sa_family == AF_INET )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
729 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
730
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
731 html_table_row_begin(client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
732 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
733 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
734 fprintf( client, "%s", ifrp->ifr_name);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
735
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
736 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
737 html_table_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
738 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
739 struct ether_drv_stats ethstats;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
740
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
741 /* Get the interface's flags and display
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
742 * the interesting ones.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
743 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
744
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
745 if( ioctl( sock, SIOCGIFFLAGS, &ifreq ) >= 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
746 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
747 html_table_row_begin(client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
748 fprintf( client, "<td>Flags<td>\n" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
749 for( i = 0; i < 16; i++ )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
750 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
751 switch( ifreq.ifr_flags & (1<<i) )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
752 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
753 default: break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
754 case IFF_UP: fputs( " UP", client ); break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
755 case IFF_BROADCAST: fputs( " BROADCAST", client ); break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
756 case IFF_DEBUG: fputs( " DEBUG", client ); break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
757 case IFF_LOOPBACK: fputs( " LOOPBACK", client ); break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
758 case IFF_PROMISC: fputs( " PROMISCUOUS", client ); break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
759 case IFF_RUNNING: fputs( " RUNNING", client ); break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
760 case IFF_SIMPLEX: fputs( " SIMPLEX", client ); break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
761 case IFF_MULTICAST: fputs( " MULTICAST", client ); break;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
762 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
763 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
764 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
765 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
766
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
767 /* Get the interface's address and display it. */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
768 if( ioctl( sock, SIOCGIFADDR, &ifreq ) >= 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
769 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
770 struct sockaddr_in *inaddr =
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
771 (struct sockaddr_in *)&ifreq.ifr_addr;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
772
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
773 html_table_row_begin(client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
774 fprintf( client, "<td>Address<td>%s\n",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
775 inet_ntoa(inaddr->sin_addr));
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
776 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
777 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
778
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
779 /* If there's a netmask, show that. */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
780 if( ioctl( sock, SIOCGIFNETMASK, &ifreq ) >= 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
781 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
782 struct sockaddr_in *inaddr =
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
783 (struct sockaddr_in *)&ifreq.ifr_addr;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
784
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
785 html_table_row_begin(client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
786 fprintf( client, "<td>Mask<td>%s\n",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
787 inet_ntoa(inaddr->sin_addr));
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
788 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
789 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
790
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
791 /* If there's a broadcast address, show that. */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
792 if( ioctl( sock, SIOCGIFBRDADDR, &ifreq ) >= 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
793 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
794 struct sockaddr_in *inaddr =
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
795 (struct sockaddr_in *)&ifreq.ifr_broadaddr;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
796
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
797 html_table_row_begin(client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
798 fprintf( client, "<td>Broadcast Address<td>%s\n",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
799 inet_ntoa(inaddr->sin_addr));
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
800 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
801 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
802
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
803 /* If the ethernet driver collects
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
804 * statistics, fetch those and show some
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
805 * of them.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
806 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
807
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
808 ethstats.ifreq = ifreq;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
809 if( ioctl( sock, SIOCGIFSTATS, &ethstats ) >= 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
810 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
811 fprintf( client, "<tr><td>Hardware<td>%s</tr>\n",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
812 ethstats.description );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
813 fprintf( client, "<tr><td>Packets Received<td>%d</tr>\n",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
814 ethstats.rx_count );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
815 fprintf( client, "<tr><td>Packets Sent<td>%d</tr>\n",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
816 ethstats.tx_count );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
817 fprintf( client, "<tr><td>Interrupts<td>%d</tr>\n",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
818 ethstats.interrupts );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
819 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
820 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
821 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
822 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
823 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
824
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
825 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
826
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
827 /* Scan the addresses, even if we are not interested
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
828 * in this interface, since we must skip to the next.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
829 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
830 do
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
831 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
832 sa = &ifrp->ifr_addr;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
833 if (sa->sa_len <= sizeof(*sa)) {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
834 ifrp++;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
835 } else {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
836 ifrp=(struct ifreq *)(sa->sa_len + (char *)sa);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
837 ifconf.ifc_len -= sa->sa_len - sizeof(*sa);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
838 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
839 ifconf.ifc_len -= sizeof(*ifrp);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
840
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
841 } while (!ifrp->ifr_name[0] && ifconf.ifc_len);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
842 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
843 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
844 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
845
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
846 /* Now the protocols. For each of the main protocols: IP,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
847 * ICMP, UDP, TCP print a table of useful information derived
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
848 * from the in-kernel data structures. Note that this only
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
849 * works for the BSD stacks.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
850 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
851
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
852 html_para_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
853 html_heading(client, 3, "Protocols" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
854
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
855 html_para_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
856 html_table_begin( client, "border");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
857 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
858 html_table_header( client, "IP", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
859 html_table_header( client, "ICMP", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
860 html_table_header( client, "UDP", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
861 html_table_header( client, "TCP", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
862
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
863 html_table_row_begin(client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
864 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
865 html_table_data_begin( client, "valign=\"top\"" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
866 html_table_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
867 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
868
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
869 fprintf( client, "<tr><td><b>%s:</b><td></tr>\n", "Received" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
870 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Total",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
871 ipstat.ips_total );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
872 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Bad",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
873 ipstat.ips_badsum+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
874 ipstat.ips_tooshort+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
875 ipstat.ips_toosmall+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
876 ipstat.ips_badhlen+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
877 ipstat.ips_badlen+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
878 ipstat.ips_noproto+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
879 ipstat.ips_toolong
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
880 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
881 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Reassembled",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
882 ipstat.ips_reassembled );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
883 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Delivered",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
884 ipstat.ips_delivered );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
885
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
886 fprintf( client, "<tr><td><b>%s:</b><td></tr>\n", "Sent" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
887 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Total",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
888 ipstat.ips_localout );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
889 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Raw",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
890 ipstat.ips_rawout );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
891 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Fragmented",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
892 ipstat.ips_fragmented );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
893
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
894 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
895 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
896
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
897 html_table_data_begin( client, "valign=\"top\"" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
898 html_table_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
899 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
900
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
901 fprintf( client, "<tr><td><b>%s:</b><td></tr>\n", "Received" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
902 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "ECHO",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
903 icmpstat.icps_inhist[ICMP_ECHO] );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
904 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "ECHO REPLY",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
905 icmpstat.icps_inhist[ICMP_ECHOREPLY] );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
906 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "UNREACH",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
907 icmpstat.icps_inhist[ICMP_UNREACH] );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
908 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "REDIRECT",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
909 icmpstat.icps_inhist[ICMP_REDIRECT] );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
910 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Other",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
911 icmpstat.icps_inhist[ICMP_SOURCEQUENCH]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
912 icmpstat.icps_inhist[ICMP_ROUTERADVERT]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
913 icmpstat.icps_inhist[ICMP_ROUTERSOLICIT]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
914 icmpstat.icps_inhist[ICMP_TIMXCEED]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
915 icmpstat.icps_inhist[ICMP_PARAMPROB]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
916 icmpstat.icps_inhist[ICMP_TSTAMP]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
917 icmpstat.icps_inhist[ICMP_TSTAMPREPLY]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
918 icmpstat.icps_inhist[ICMP_IREQ]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
919 icmpstat.icps_inhist[ICMP_IREQREPLY]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
920 icmpstat.icps_inhist[ICMP_MASKREQ]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
921 icmpstat.icps_inhist[ICMP_MASKREPLY]
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
922 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
923 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Bad",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
924 icmpstat.icps_badcode+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
925 icmpstat.icps_tooshort+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
926 icmpstat.icps_checksum+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
927 icmpstat.icps_badlen+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
928 icmpstat.icps_bmcastecho
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
929 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
930
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
931 fprintf( client, "<tr><td><b>%s:</b><td></tr>\n", "Sent" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
932 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "ECHO",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
933 icmpstat.icps_outhist[ICMP_ECHO] );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
934 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "ECHO REPLY",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
935 icmpstat.icps_outhist[ICMP_ECHOREPLY] );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
936 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "UNREACH",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
937 icmpstat.icps_outhist[ICMP_UNREACH] );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
938 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "REDIRECT",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
939 icmpstat.icps_outhist[ICMP_REDIRECT] );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
940 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Other",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
941 icmpstat.icps_inhist[ICMP_SOURCEQUENCH]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
942 icmpstat.icps_outhist[ICMP_ROUTERADVERT]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
943 icmpstat.icps_outhist[ICMP_ROUTERSOLICIT]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
944 icmpstat.icps_outhist[ICMP_TIMXCEED]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
945 icmpstat.icps_outhist[ICMP_PARAMPROB]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
946 icmpstat.icps_outhist[ICMP_TSTAMP]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
947 icmpstat.icps_outhist[ICMP_TSTAMPREPLY]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
948 icmpstat.icps_outhist[ICMP_IREQ]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
949 icmpstat.icps_outhist[ICMP_IREQREPLY]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
950 icmpstat.icps_outhist[ICMP_MASKREQ]+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
951 icmpstat.icps_outhist[ICMP_MASKREPLY]
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
952 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
953 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
954 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
955
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
956 html_table_data_begin( client, "valign=\"top\"" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
957 html_table_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
958 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
959
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
960 fprintf( client, "<tr><td><b>%s:</b><td></tr>\n", "Received" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
961 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Total",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
962 udpstat.udps_ipackets );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
963 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Bad",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
964 udpstat.udps_hdrops+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
965 udpstat.udps_badsum+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
966 udpstat.udps_badlen+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
967 udpstat.udps_noport+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
968 udpstat.udps_noportbcast+
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
969 udpstat.udps_fullsock
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
970 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
971 fprintf( client, "<tr><td><b>%s:</b><td></tr>\n", "Sent" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
972 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Total",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
973 udpstat.udps_opackets );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
974 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
975 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
976
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
977 html_table_data_begin( client, "valign=\"top\"" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
978 html_table_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
979 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
980
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
981 fprintf( client, "<tr><td><b>%s:</b><td></tr>\n", "Connections" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
982 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Initiated",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
983 tcpstat.tcps_connattempt );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
984 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Accepted",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
985 tcpstat.tcps_accepts );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
986 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Established",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
987 tcpstat.tcps_connects );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
988 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Closed",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
989 tcpstat.tcps_closed );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
990
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
991 fprintf( client, "<tr><td><b>%s:</b><td></tr>\n", "Received" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
992 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Packets",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
993 tcpstat.tcps_rcvtotal );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
994 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Data Packets",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
995 tcpstat.tcps_rcvpack );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
996 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Bytes",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
997 tcpstat.tcps_rcvbyte );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
998
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
999 fprintf( client, "<tr><td><b>%s:</b><td></tr>\n", "Sent" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1000 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Packets",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1001 tcpstat.tcps_sndtotal );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1002 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Data Packets",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1003 tcpstat.tcps_sndpack );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1004 fprintf( client, "<tr><td>%s<td>%ld</tr>\n", "Bytes",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1005 tcpstat.tcps_sndbyte );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1006
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1007
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1008 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1009 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1010
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1011
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1012 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1013 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1014
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1015 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1016 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1017
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1018
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1019 draw_navbar(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1020 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1021 html_body_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1022
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1023 html_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1024
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1025 close( sock );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1026
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1027 return 1;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1028
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1029 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1030
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1031 CYG_HTTPD_TABLE_ENTRY( cyg_monitor_network_entry,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1032 "/monitor/network.htm*",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1033 cyg_monitor_network,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1034 NULL );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1035
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1036
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1037 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1038 /* Instrumentation Monitor
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1039 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1040 * If the CYGPKG_KERNEL_INSTRUMENT option is set, we generate a table
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1041 * showing the current instrumentation buffer. If the FLAGS option is
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1042 * enabled we also print a table giving control of the flags.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1043 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1044 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1045
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1046 #ifdef CYGPKG_KERNEL_INSTRUMENT
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1047
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1048 /* Instrumentation record. */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1049 struct Instrument_Record
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1050 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1051 CYG_WORD16 type; // record type
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1052 CYG_WORD16 thread; // current thread id
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1053 CYG_WORD timestamp; // 32 bit timestamp
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1054 CYG_WORD arg1; // first arg
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1055 CYG_WORD arg2; // second arg
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1056 };
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1057 typedef struct Instrument_Record Instrument_Record;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1058
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1059 /* Instrumentation variables, these live in the
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1060 * instrumentation files in the kernel
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1061 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1062 __externC Instrument_Record *instrument_buffer_pointer;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1063 __externC Instrument_Record instrument_buffer[];
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1064 __externC cyg_uint32 instrument_buffer_size;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1065
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1066 #if defined(CYGDBG_KERNEL_INSTRUMENT_FLAGS) && \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1067 defined(CYGDBG_KERNEL_INSTRUMENT_MSGS)
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1068
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1069 static cyg_uint32 instrument_flags[(CYG_INSTRUMENT_CLASS_MAX>>8)+1];
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1070
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1071 #endif
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1072
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1073 static char cyg_monitor_instrument_blurb1[] =
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1074 "<p>Use the checkboxes to enable the events to be recorded. Click
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1075 the <em>Submit</em> button to start recording. Click the <em>Clear</em>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1076 button to clear all instrumentation and to stop recording."
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1077 ;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1078
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1079 static cyg_bool cyg_monitor_instrument( FILE * client, char *filename,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1080 char *formdata, void *arg )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1081 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1082
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1083 #if defined(CYGDBG_KERNEL_INSTRUMENT_FLAGS) && \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1084 defined(CYGDBG_KERNEL_INSTRUMENT_MSGS)
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1085
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1086 /* Disable all instrumentation while we generate the page.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1087 * Otherwise we could swamp the information we are really after.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1088 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1089
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1090 cyg_scheduler_lock();
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1091 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1092 struct instrument_desc_s *id = instrument_desc;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1093 CYG_WORD cl = 0, ev = 0;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1094
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1095 for( ; id->msg != 0; id++ )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1096 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1097 if( id->num > 0xff )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1098 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1099 cl = id->num>>8;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1100 instrument_flags[cl] = 0;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1101 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1102 else
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1103 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1104 ev = id->num;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1105 cyg_instrument_disable( cl<<8, ev );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1106 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1107 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1108 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1109 cyg_scheduler_unlock();
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1110
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1111 #endif
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1112
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1113 /* If we have some form data, deal with it.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1114 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1115 if( formdata != NULL )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1116 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1117 char *list[40];
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1118
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1119 cyg_formdata_parse( formdata, list, sizeof(list)/sizeof(*list) );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1120
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1121 #if defined(CYGDBG_KERNEL_INSTRUMENT_FLAGS) && \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1122 defined(CYGDBG_KERNEL_INSTRUMENT_MSGS)
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1123
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1124 if( cyg_formlist_find( list, "clear" ) != NULL )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1125 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1126 /* If the clear button is set, then disable all instrumentation flags.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1127 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1128 int i;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1129 for( i = 0; i < sizeof(instrument_flags)/sizeof(*instrument_flags); i++ )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1130 instrument_flags[i] = 0;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1131 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1132 else
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1133 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1134 /* Otherwise all the set checkboxes have been reported to
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1135 * us in the form of class=event inputs.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1136 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1137 char **p;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1138 for( p = list; *p != NULL; p++ )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1139 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1140 int cl,ev;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1141 if( sscanf( *p, "%02x=%02x", &cl, &ev ) == 2 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1142 instrument_flags[cl] |= 1<<ev;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1143 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1144 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1145 #endif
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1146
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1147 /* If the cleartable button has been pressed, clear all the
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1148 * table entries.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1149 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1150 if( cyg_formlist_find( list, "cleartable" ) != NULL )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1151 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1152 cyg_scheduler_lock();
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1153 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1154 Instrument_Record *ibp = instrument_buffer_pointer;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1155 do
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1156 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1157 ibp->type = 0;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1158 ibp++;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1159 if( ibp == &instrument_buffer[instrument_buffer_size] )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1160 ibp = instrument_buffer;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1161
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1162 } while( ibp != instrument_buffer_pointer );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1163
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1164 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1165 cyg_scheduler_unlock();
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1166 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1167 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1168
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1169 /* Now start generating the HTML page.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1170 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1171 html_begin(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1172
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1173 html_head(client,"eCos Instrumentation Buffer", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1174
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1175 html_body_begin(client,"");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1176 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1177 html_heading(client, 2, "Instrumentation Buffer" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1178
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1179 html_form_begin( client, "/monitor/instrument.html", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1180
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1181 #if defined(CYGDBG_KERNEL_INSTRUMENT_FLAGS) && \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1182 defined(CYGDBG_KERNEL_INSTRUMENT_MSGS)
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1183
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1184 /* If we have the flags enabled, generate a table showing all
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1185 * the flag names with a checkbox against each.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1186 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1187
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1188 fputs( cyg_monitor_instrument_blurb1, client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1189
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1190 html_para_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1191 /* Add submit,clear and reset buttons */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1192 html_form_input(client, "submit", "submit", "Submit", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1193 html_form_input(client, "submit", "clear", "Clear", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1194 html_form_input(client, "reset", "reset", "Reset", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1195
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1196 html_table_begin( client, "border width=100%" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1197 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1198 struct instrument_desc_s *id = instrument_desc;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1199 CYG_WORD cl = 0, ev = 0;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1200 int clc = 0;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1201 char class[5], event[5];
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1202
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1203 html_table_row_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1204
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1205 for( ; id->msg != 0; id++ )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1206 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1207 if( id->num > 0xff )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1208 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1209 cl = id->num;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1210 sprintf( class, "%02x", cl>>8 );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1211 clc = 0;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1212
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1213 if( id != instrument_desc )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1214 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1215 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1216 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1217 html_table_row_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1218 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1219
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1220 html_table_data_begin( client, "valign=\"top\" width=100%" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1221 html_table_begin( client, "width=100%" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1222 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1223 else
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1224 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1225 ev = id->num;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1226 sprintf( event, "%02x", ev );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1227
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1228 if( (clc%4) == 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1229 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1230 if( clc != 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1231 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1232
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1233 html_table_row_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1234 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1235 clc++;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1236 html_table_data_begin( client, "width=25%" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1237 html_form_input_checkbox( client, class, event,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1238 instrument_flags[cl>>8] & (1<<ev) );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1239 fputs( id->msg, client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1240 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1241 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1242 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1243 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1244 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1245 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1246
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1247 /* Add submit,clear and reset buttons */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1248 html_form_input(client, "submit", "submit", "Submit", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1249 html_form_input(client, "submit", "clear", "Clear", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1250 html_form_input(client, "reset", "reset", "Reset", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1251
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1252 #endif
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1253
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1254 html_para_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1255
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1256 html_form_input(client, "submit", "cleartable", "Clear Table", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1257
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1258
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1259 /*
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1260 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1261
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1262 html_table_begin( client, "border" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1263 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1264 Instrument_Record *ibp = instrument_buffer_pointer;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1265
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1266 html_table_header( client, "TIME", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1267 html_table_header( client, "THREAD", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1268 html_table_header( client, "EVENT", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1269 html_table_header( client, "ARG1", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1270 html_table_header( client, "ARG2", "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1271
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1272 do
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1273 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1274 if( ibp->type != 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1275 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1276 html_table_row_begin(client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1277 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1278 cyg_handle_t thread = cyg_thread_find(ibp->thread);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1279 cyg_thread_info info;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1280
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1281 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1282 fprintf( client, "%08x",ibp->timestamp);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1283 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1284 if( thread != 0 &&
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1285 cyg_thread_get_info( thread, ibp->thread, &info ) &&
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1286 info.name != NULL )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1287 fputs( info.name, client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1288 else fprintf( client, "[%04x]", ibp->thread);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1289 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1290 #if defined(CYGDBG_KERNEL_INSTRUMENT_MSGS)
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1291 fprintf( client, "%s", cyg_instrument_msg(ibp->type));
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1292 #else
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1293 fprintf( client, "%04x", ibp->type );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1294 #endif
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1295 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1296 fprintf( client, "%08x", ibp->arg1);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1297 html_table_data_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1298 fprintf( client, "%08x", ibp->arg2);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1299 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1300 html_table_row_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1301 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1302 ibp++;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1303 if( ibp == &instrument_buffer[instrument_buffer_size] )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1304 ibp = instrument_buffer;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1305
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1306 } while( ibp != instrument_buffer_pointer );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1307 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1308 html_table_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1309
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1310 html_para_begin( client, "" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1311
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1312 html_form_input(client, "submit", "cleartable", "Clear Table", "");
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1313
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1314 html_form_end( client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1315
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1316 draw_navbar(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1317 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1318 html_body_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1319
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1320 html_end(client);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1321
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1322
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1323 #if defined(CYGDBG_KERNEL_INSTRUMENT_FLAGS) && \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1324 defined(CYGDBG_KERNEL_INSTRUMENT_MSGS)
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1325
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1326 /*
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1327 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1328
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1329 cyg_scheduler_lock();
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1330 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1331 struct instrument_desc_s *id = instrument_desc;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1332 CYG_WORD cl = 0, ev = 0;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1333
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1334 for( ; id->msg != 0; id++ )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1335 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1336 if( id->num > 0xff )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1337 cl = id->num>>8;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1338 else
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1339 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1340 ev = id->num;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1341 if( (instrument_flags[cl] & (1<<ev)) != 0 )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1342 cyg_instrument_enable( cl<<8, ev );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1343 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1344 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1345 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1346 cyg_scheduler_unlock();
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1347 #endif
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1348
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1349 return true;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1350 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1351
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1352 CYG_HTTPD_TABLE_ENTRY( cyg_monitor_instrument_entry,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1353 "/monitor/instrument.htm*",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1354 cyg_monitor_instrument,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1355 NULL );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1356
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1357 #endif
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1358
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1359 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1360 /* eCos Logo
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1361 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1362 * Define the logo as a byte array, and then define the data structure
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1363 * and table entry to allow it to be fetched by the client.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1364 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1365
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1366 static cyg_uint8 ecos_logo_gif[] = {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1367 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x6f, 0x00, 0x23, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1368 0xff, 0xff, 0xff, 0xea, 0x19, 0x00, 0xcc, 0x00, 0x00, 0xfd, 0xfd, 0xfd, 0x83, 0x00, 0x00, 0xf6,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1369 0xf6, 0xf6, 0x2f, 0x2f, 0x2f, 0xef, 0xef, 0xef, 0x19, 0x00, 0x19, 0x45, 0x45, 0x45, 0xbb, 0xbb,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1370 0xbb, 0xe2, 0x3e, 0x3e, 0xe8, 0xbb, 0xd3, 0x3e, 0x3e, 0x3e, 0xfb, 0xfb, 0xfb, 0xbe, 0xbe, 0xbe,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1371 0xf1, 0xed, 0xed, 0xe5, 0x7b, 0x8e, 0xe5, 0x6b, 0x7b, 0xcc, 0xcc, 0xcc, 0x98, 0x95, 0x98, 0xc6,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1372 0xc3, 0xc6, 0x19, 0x19, 0x19, 0xf1, 0xf1, 0xf1, 0x98, 0x98, 0x98, 0xd6, 0xd3, 0xd6, 0x83, 0x83,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1373 0x83, 0xde, 0xde, 0xde, 0xe5, 0x25, 0x25, 0x73, 0x6f, 0x73, 0xea, 0xea, 0xea, 0xe5, 0x8e, 0xa2,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1374 0xe8, 0xe8, 0xe8, 0x7f, 0x7b, 0x7f, 0xe2, 0x56, 0x66, 0x8b, 0x8b, 0x8b, 0x19, 0x19, 0x00, 0xf8,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1375 0xf8, 0xf8, 0x73, 0x73, 0x73, 0xd3, 0xd1, 0xd1, 0x9c, 0x9c, 0x9c, 0x50, 0x50, 0x50, 0xef, 0xce,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1376 0xea, 0x92, 0x8e, 0x92, 0x6f, 0x6f, 0x6f, 0xe2, 0x2f, 0x2f, 0x61, 0x61, 0x61, 0xe5, 0xe5, 0xe5,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1377 0xe8, 0x9f, 0xb8, 0x37, 0x2f, 0x37, 0x66, 0x66, 0x66, 0xe2, 0x4b, 0x50, 0x56, 0x50, 0x56, 0xa9,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1378 0xa5, 0xa9, 0xce, 0xce, 0xce, 0x56, 0x50, 0x50, 0xd9, 0xd9, 0xd9, 0x77, 0x73, 0x77, 0x25, 0x25,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1379 0x2f, 0x6b, 0x6b, 0x6b, 0x9f, 0x9f, 0x9f, 0x87, 0x83, 0x87, 0x3e, 0x37, 0x37, 0xf4, 0xf4, 0xf4,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1380 0x25, 0x25, 0x25, 0xc1, 0xc1, 0xc1, 0x83, 0x7f, 0x83, 0xe5, 0xe2, 0xe2, 0x4b, 0x45, 0x4b, 0xd1,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1381 0xce, 0xd1, 0xaf, 0xac, 0xaf, 0xcc, 0xc9, 0xcc, 0x5b, 0x56, 0x5b, 0xdb, 0xd9, 0xdb, 0x66, 0x61,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1382 0x66, 0xe2, 0xe2, 0xe2, 0xb8, 0xb5, 0xb8, 0x2f, 0x25, 0x2f, 0xc3, 0xc1, 0xc3, 0xe0, 0xde, 0xe0,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1383 0xd3, 0xd3, 0xd3, 0xde, 0xdb, 0xde, 0xac, 0xac, 0xac, 0xce, 0xcc, 0xce, 0x77, 0x6f, 0x73, 0x4b,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1384 0x45, 0x45, 0xc9, 0xc6, 0xc9, 0x45, 0x3e, 0x45, 0x61, 0x5b, 0x61, 0xb5, 0xb2, 0xb5, 0x3e, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1385 0x00, 0x8b, 0x87, 0x87, 0x95, 0x92, 0x95, 0xa2, 0x9f, 0xa2, 0xb8, 0xb8, 0xb8, 0x7b, 0x77, 0x7b,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1386 0x9c, 0x98, 0x9c, 0x50, 0x4b, 0x50, 0x6f, 0x6b, 0x6f, 0x6b, 0x66, 0x6b, 0xac, 0xa9, 0xac, 0x8e,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1387 0x8b, 0x8e, 0x8e, 0x00, 0x00, 0xdb, 0xdb, 0xdb, 0xed, 0xed, 0xed, 0x50, 0x4b, 0x4b, 0x3e, 0x37,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1388 0x3e, 0x95, 0x95, 0x95, 0xa5, 0xa2, 0xa5, 0x9f, 0x9c, 0x9f, 0xc1, 0xbe, 0xbe, 0x2f, 0x25, 0x25,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1389 0xd3, 0xd1, 0xd3, 0xf4, 0xf1, 0xf4, 0xc6, 0xc6, 0xc6, 0x8e, 0x8e, 0x8e, 0x25, 0x19, 0x19, 0x66,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1390 0x61, 0x61, 0xb2, 0xaf, 0xb2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1391 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1392 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1393 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1394 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1395 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1396 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1397 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1398 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1399 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1400 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1401 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1402 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1403 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1404 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1405 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1406 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1407 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1408 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1409 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1410 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1411 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1412 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1413 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1414 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1415 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1416 0x00, 0x00, 0x6f, 0x00, 0x23, 0x00, 0x40, 0x08, 0xff, 0x00, 0x03, 0x08, 0x1c, 0x28, 0x10, 0x41,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1417 0x8a, 0x17, 0x0e, 0x1c, 0x00, 0x58, 0xc8, 0xb0, 0xa1, 0xc3, 0x87, 0x10, 0x21, 0x12, 0x14, 0x28,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1418 0xa0, 0xa2, 0xc5, 0x8b, 0x18, 0x33, 0x6a, 0xdc, 0xb8, 0x91, 0x01, 0x83, 0x11, 0x31, 0x26, 0x12,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1419 0x44, 0x10, 0x91, 0xe1, 0x09, 0x91, 0x28, 0x03, 0x4c, 0xb9, 0x50, 0x72, 0xa1, 0x0a, 0x04, 0x29,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1420 0x09, 0x72, 0x6c, 0x10, 0x73, 0xe2, 0x88, 0x8d, 0x2e, 0x0c, 0xd4, 0x0c, 0x70, 0x73, 0x63, 0x80,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1421 0x88, 0x10, 0x76, 0x0a, 0x6d, 0x18, 0x94, 0x60, 0x03, 0x8e, 0x1a, 0x27, 0x4a, 0x40, 0x5a, 0x51,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1422 0xa9, 0xc5, 0x0e, 0x3b, 0x0d, 0x30, 0x40, 0xca, 0x40, 0x45, 0xc9, 0x14, 0x42, 0x45, 0x72, 0x60,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1423 0xf9, 0xf0, 0x64, 0xd6, 0x00, 0x19, 0x3b, 0xe8, 0xfc, 0x3a, 0x70, 0xe9, 0x45, 0x10, 0x59, 0x0d,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1424 0x70, 0x9c, 0x30, 0xf1, 0x44, 0xcb, 0xb7, 0x70, 0x4b, 0x8a, 0x64, 0x4a, 0xb7, 0xae, 0x5d, 0x01,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1425 0x6c, 0x51, 0xbe, 0x88, 0xcb, 0xb7, 0xef, 0xc2, 0xb9, 0x77, 0x03, 0x0b, 0xbe, 0x98, 0x37, 0xc0,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1426 0x81, 0x88, 0x58, 0x09, 0xde, 0xe0, 0xea, 0xf0, 0xc5, 0x44, 0x0e, 0x0f, 0x13, 0x13, 0x34, 0x30,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1427 0x21, 0x23, 0xdb, 0x8c, 0x63, 0x07, 0x4a, 0xcd, 0x88, 0xd6, 0xa9, 0x45, 0x9a, 0x04, 0x69, 0x60,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1428 0xec, 0xc0, 0x94, 0x41, 0x44, 0xaf, 0x03, 0x53, 0xf8, 0xdd, 0xd1, 0x10, 0xf5, 0xc0, 0xa9, 0x76,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1429 0x41, 0x0f, 0x24, 0xcd, 0xb1, 0xf3, 0xc0, 0x9e, 0x1c, 0x25, 0x88, 0xac, 0xac, 0x91, 0x41, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1430 0xc8, 0x6f, 0x77, 0x48, 0x9e, 0x78, 0xc3, 0xaa, 0xdf, 0x03, 0x27, 0xa6, 0x40, 0x28, 0x2a, 0x13,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1431 0xe9, 0x08, 0xd9, 0x93, 0x41, 0xd0, 0xe6, 0xd8, 0x41, 0x42, 0x83, 0x15, 0x02, 0x0d, 0x34, 0xe0,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1432 0x8d, 0x34, 0x73, 0x6a, 0xc6, 0x7e, 0xc3, 0x3b, 0xff, 0x04, 0x3c, 0xb8, 0x3c, 0x5d, 0xdb, 0x03,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1433 0xb7, 0xc2, 0x7d, 0x91, 0x02, 0xa6, 0xe2, 0x13, 0xe0, 0xf9, 0x22, 0x3f, 0xe1, 0x9a, 0x22, 0xd3,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1434 0x09, 0xd0, 0x03, 0x18, 0x00, 0x01, 0x9b, 0x2e, 0x48, 0xec, 0x01, 0x34, 0x10, 0xc3, 0x04, 0xd3,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1435 0x69, 0xa4, 0xd3, 0x5e, 0x11, 0x39, 0x46, 0x96, 0x40, 0x53, 0x44, 0xa4, 0x02, 0x59, 0x1a, 0xe5,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1436 0x97, 0x95, 0x68, 0x17, 0xd1, 0x80, 0x92, 0x77, 0xfd, 0x69, 0x34, 0x81, 0x83, 0x6d, 0x25, 0xe4,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1437 0xe1, 0x87, 0x0e, 0x3c, 0x48, 0x90, 0x6a, 0x0c, 0x89, 0x48, 0x10, 0x77, 0x74, 0x85, 0x44, 0x10,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1438 0x6e, 0x11, 0x4e, 0xd4, 0x9f, 0x84, 0x2b, 0x10, 0x68, 0x97, 0x69, 0x10, 0x31, 0x27, 0xd0, 0x72,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1439 0x38, 0xe6, 0xa8, 0x63, 0x8e, 0x44, 0x4d, 0x74, 0xd4, 0x5d, 0x13, 0xa1, 0xe8, 0x13, 0x41, 0x31,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1440 0x60, 0xe4, 0x02, 0x7a, 0x22, 0xa9, 0xd5, 0xd1, 0x61, 0x35, 0x4e, 0x84, 0x80, 0x42, 0x0e, 0x5d,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1441 0x70, 0x83, 0x48, 0xac, 0xf5, 0xe8, 0xa3, 0x46, 0x2e, 0xac, 0x30, 0x9a, 0x48, 0x45, 0x66, 0xc4,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1442 0x80, 0x77, 0x01, 0x74, 0x69, 0x91, 0x75, 0x05, 0x0a, 0x80, 0xa4, 0x59, 0x5e, 0x92, 0x54, 0x92,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1443 0x94, 0x5f, 0x3d, 0xf9, 0x16, 0x09, 0x59, 0x6d, 0x44, 0x03, 0x98, 0x31, 0xfd, 0x48, 0x58, 0x56,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1444 0x20, 0x20, 0x45, 0x90, 0x71, 0xe2, 0xf5, 0x39, 0xde, 0x44, 0xe6, 0x05, 0xea, 0xdf, 0x4e, 0x1c,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1445 0x90, 0xe0, 0x40, 0x95, 0x7e, 0xf2, 0x45, 0x9e, 0xa0, 0xe6, 0x75, 0xc0, 0x80, 0x04, 0x00, 0x0a,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1446 0x85, 0x00, 0x82, 0x89, 0x86, 0xb7, 0x28, 0xa3, 0x82, 0x4e, 0x40, 0x27, 0x41, 0x94, 0x56, 0x2a,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1447 0xde, 0xa5, 0x98, 0x32, 0x5a, 0x58, 0x6a, 0x7d, 0xed, 0x90, 0x10, 0x93, 0x9e, 0x02, 0x00, 0x2a,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1448 0x47, 0x2e, 0x78, 0x14, 0x2a, 0x53, 0xb6, 0x75, 0xff, 0x0a, 0x91, 0x03, 0x53, 0xc6, 0x84, 0x00,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1449 0x09, 0x7c, 0x5d, 0x70, 0x82, 0x7b, 0x29, 0x21, 0x25, 0xc1, 0xa6, 0x03, 0x35, 0x90, 0x61, 0x46,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1450 0x2e, 0x48, 0x18, 0xec, 0xb0, 0x16, 0xb1, 0x45, 0x62, 0x44, 0x70, 0x92, 0xb5, 0x58, 0x49, 0x0a,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1451 0x0a, 0xb5, 0x91, 0xb1, 0x31, 0xa1, 0x79, 0x11, 0xb5, 0x03, 0x69, 0xc9, 0x51, 0x0c, 0x50, 0x3e,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1452 0x74, 0x01, 0xaf, 0x05, 0x9d, 0x80, 0xaa, 0x0a, 0x36, 0x0a, 0x24, 0x2b, 0x00, 0xdf, 0xa2, 0xb4,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1453 0x82, 0x04, 0x13, 0x4c, 0x00, 0x02, 0x80, 0x96, 0xa1, 0xb4, 0x5d, 0xbb, 0x20, 0xd0, 0xa9, 0xe4,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1454 0x98, 0x3e, 0xd2, 0x46, 0x43, 0x03, 0x76, 0x76, 0x24, 0x17, 0x41, 0xea, 0x31, 0x3b, 0x11, 0x9f,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1455 0xe8, 0xa2, 0xe4, 0xc2, 0x46, 0x2c, 0x0a, 0x30, 0xc2, 0x44, 0x06, 0x1c, 0xac, 0x21, 0xc3, 0xd7,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1456 0x4e, 0x24, 0xe6, 0x8c, 0x02, 0x2f, 0xe8, 0x64, 0x43, 0xcd, 0x36, 0x67, 0xd7, 0x44, 0xda, 0x72,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1457 0x64, 0x21, 0x41, 0x68, 0xea, 0x96, 0xd2, 0x76, 0x74, 0xd1, 0xf8, 0x50, 0xb9, 0x16, 0xff, 0xc4,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1458 0x50, 0xb9, 0xfd, 0x32, 0xe5, 0x42, 0x90, 0x74, 0x5d, 0x69, 0xd1, 0xc2, 0x3b, 0x21, 0x6b, 0x91,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1459 0xc9, 0x0e, 0x65, 0x2c, 0x10, 0xaa, 0xe2, 0x4d, 0xc1, 0x71, 0x60, 0x32, 0xb3, 0xea, 0x59, 0x46,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1460 0x20, 0x6d, 0x6a, 0xb3, 0x00, 0x38, 0x37, 0xb4, 0x83, 0x48, 0xdd, 0x46, 0x09, 0x62, 0x42, 0x4a,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1461 0x8b, 0xd4, 0x31, 0xb1, 0x18, 0x89, 0x1c, 0x2c, 0x47, 0xbe, 0x01, 0x7a, 0xde, 0xd0, 0x18, 0x31,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1462 0xd0, 0x74, 0x43, 0x0e, 0xa0, 0x34, 0x85, 0x0a, 0x87, 0x39, 0x40, 0x02, 0xb8, 0x02, 0xe1, 0xea,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1463 0x50, 0xd8, 0x49, 0x4a, 0x00, 0x1b, 0x0d, 0x9d, 0x71, 0x96, 0xe4, 0x04, 0x53, 0x75, 0x00, 0x37,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1464 0x4a, 0x05, 0x42, 0xa5, 0x9f, 0xdb, 0x15, 0x8d, 0x61, 0x2a, 0xd0, 0xd1, 0x0c, 0x2c, 0x0b, 0x51,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1465 0xad, 0x6d, 0xf2, 0xec, 0xd0, 0x70, 0x35, 0x61, 0x69, 0x71, 0xcb, 0x7a, 0x0b, 0x65, 0x2d, 0x46,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1466 0x21, 0x11, 0x0c, 0x91, 0xce, 0x29, 0x41, 0x80, 0x68, 0x4b, 0x0e, 0xa0, 0xac, 0x35, 0x96, 0xd8,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1467 0x96, 0xd5, 0x51, 0xe7, 0x8f, 0x63, 0x44, 0x73, 0x00, 0x6e, 0xc5, 0xa5, 0x02, 0x09, 0xa8, 0x93,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1468 0xf0, 0xc2, 0xe5, 0x7e, 0xae, 0x1a, 0xd6, 0x08, 0x12, 0xc4, 0x2e, 0x01, 0x85, 0xaf, 0x66, 0x64,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1469 0x75, 0x41, 0x5f, 0xa7, 0xaa, 0xe8, 0xe6, 0xb5, 0x0b, 0x3a, 0x3a, 0x4a, 0x37, 0xe4, 0xae, 0xfb,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1470 0xbf, 0x1a, 0xf7, 0x3e, 0x18, 0x0d, 0x91, 0x0e, 0x14, 0x10, 0x00, 0x3b
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1471 };
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1472
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1473 CYG_HTTPD_DATA( cyg_monitor_ecos_logo_data,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1474 "image/gif",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1475 sizeof(ecos_logo_gif), ecos_logo_gif );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1476
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1477 CYG_HTTPD_TABLE_ENTRY( cyg_monitor_ecos_logo,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1478 "/monitor/ecos.gif",
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1479 cyg_httpd_send_data,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1480 &cyg_monitor_ecos_logo_data );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1481
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1482 /*------------------------------------------------------------------ */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1483 /* end of monitor.c */