* [patch][rfa] --tksched option for configrun-sid.in
@ 2003-10-21 16:34 Dave Brolley
[not found] ` <20031021165818.GD19126@redhat.com>
0 siblings, 1 reply; 3+ messages in thread
From: Dave Brolley @ 2003-10-21 16:34 UTC (permalink / raw)
To: sid
[-- Attachment #1: Type: text/plain, Size: 352 bytes --]
Hi,
This is the first of several patches which have arisen out of some work
we've been doing on a yet-to-be-released port.
This one adds a --tksched option to configrun-sid.in which allows the
configuration of the existing tk-visual-sched component. The patch also
fixes some minor problems in the sid-visial-sched.tk script.
ok to commit?
Dave
[-- Attachment #2: tksched.ChangeLog --]
[-- Type: text/plain, Size: 519 bytes --]
2003-10-07 Dave Brolley <brolley@redhat.com>
For Graydon Hoare <graydon@redhat.com>
* configrun-sid.in: Add --tksched option for scheduler control panel.
Add pretty names for various scheduler connections.
2003-10-07 Dave Brolley <brolley@redhat.com>
For Graydon Hoare <graydon@redhat.com>
* sid-visual-sched.tk (toggle_subscription): Do not alter the
enabled? flag of the scheduler when updating subscriptions.
(set_sub): Alter the subscription in an order that respects
whether time is zero or not.
[-- Attachment #3: ulog.patch.txt --]
[-- Type: text/plain, Size: 27267 bytes --]
? sid/component/consoles/fileio.cxx
? sid/component/consoles/sid-io-fileio.txt
? sid/component/consoles/sid-io-fileio.xml
Index: cgen/sid-cpu.scm
===================================================================
RCS file: /cvs/src/src/cgen/sid-cpu.scm,v
retrieving revision 1.9
diff -c -p -r1.9 sid-cpu.scm
*** cgen/sid-cpu.scm 15 May 2003 07:25:02 -0000 1.9
--- cgen/sid-cpu.scm 10 Jun 2003 15:13:17 -0000
*************** using namespace @cpu@;
*** 595,600 ****
--- 595,603 ----
copyright-red-hat package-red-hat-simulators)
"\
+ #if HAVE_CONFIG_H
+ #include \"config.h\"
+ #endif
#include \"@cpu@.h\"
using namespace @cpu@; // FIXME: namespace organization still wip
Index: cgen/sid-decode.scm
===================================================================
RCS file: /cvs/src/src/cgen/sid-decode.scm,v
retrieving revision 1.10
diff -c -p -r1.10 sid-decode.scm
*** cgen/sid-decode.scm 15 May 2003 07:25:02 -0000 1.10
--- cgen/sid-decode.scm 10 Jun 2003 15:13:18 -0000
*************** typedef UINT @prefix@_insn_word;
*** 768,773 ****
--- 768,776 ----
copyright-red-hat package-red-hat-simulators)
"\
+ #if HAVE_CONFIG_H
+ #include \"config.h\"
+ #endif
#include \"@cpu@.h\"
using namespace @cpu@; // FIXME: namespace organization still wip
Index: cgen/sid-model.scm
===================================================================
RCS file: /cvs/src/src/cgen/sid-model.scm,v
retrieving revision 1.5
diff -c -p -r1.5 sid-model.scm
*** cgen/sid-model.scm 15 May 2003 07:25:02 -0000 1.5
--- cgen/sid-model.scm 10 Jun 2003 15:13:18 -0000
*************** const MACH " (gen-sym mach) "_mach =
*** 496,501 ****
--- 496,504 ----
copyright-red-hat package-red-hat-simulators)
"\
+ #if HAVE_CONFIG_H
+ #include \"config.h\"
+ #endif
#include \"@cpu@.h\"
using namespace @cpu@; // FIXME: namespace organization still wip
Index: sid/component/configure.in
===================================================================
RCS file: /cvs/src/src/sid/component/configure.in,v
retrieving revision 1.10
diff -c -p -r1.10 configure.in
*** sid/component/configure.in 6 May 2003 17:30:58 -0000 1.10
--- sid/component/configure.in 10 Jun 2003 15:13:40 -0000
*************** AC_CHECK_LIB(nsl, gethostbyname, socket_
*** 43,50 ****
socket_libs="$socket_libs -lresolv"))
AC_SUBST(socket_libs)
! AC_CHECK_FUNCS(ftime times gettimeofday usleep strtoul strtoull select sched_yield)
old_libs="$LIBS"
LIBS="$LIBS $socket_libs"
AC_CHECK_FUNCS(inet_aton inet_addr)
--- 43,61 ----
socket_libs="$socket_libs -lresolv"))
AC_SUBST(socket_libs)
! AC_CHECK_FUNCS(ftime times gettimeofday usleep strtoul strtoull select sched_yield vsnprintf vasprintf)
+ dnl We want vsnprintf if available, otherwise try vasprintf
+ AC_CHECK_FUNC(vsnprintf,
+ [AC_DEFINE(_ISOC99_SOURCE, 1, [Define if ISO C99 Features in use])],
+ [AC_CHECK_FUNC(vasprintf,
+ [AC_DEFINE(_GNU_SOURCE, 1, [Define if GNU extensions in use])])])
+
+ dnl To pick up __USE_MISC stuff like inet_aton and putenv
+ AC_DEFINE(_SVID_SOURCE, 1, [Define if SVID extensions in use])
+ dnl To pick up __USE_BSD stuff like usleep
+ AC_DEFINE(_BSD_SOURCE, 1, [Define if SVID extensions in use])
+
old_libs="$LIBS"
LIBS="$LIBS $socket_libs"
AC_CHECK_FUNCS(inet_aton inet_addr)
Index: sid/component/cgen-cpu/configure.in
===================================================================
RCS file: /cvs/src/src/sid/component/cgen-cpu/configure.in,v
retrieving revision 1.4
diff -c -p -r1.4 configure.in
*** sid/component/cgen-cpu/configure.in 8 Jan 2003 04:10:05 -0000 1.4
--- sid/component/cgen-cpu/configure.in 10 Jun 2003 15:13:40 -0000
*************** AC_EXEEXT
*** 14,19 ****
--- 14,20 ----
AC_LANG_CPLUSPLUS
AC_CHECK_LIB(m, main)
+ AC_CHECK_FUNCS(getopt)
dnl Check if we need libintl.
AC_MSG_CHECKING([whether libintl is required for gettext])
*************** AC_CHECK_PROGS(GUILE, guile, false)
*** 59,65 ****
dnl building docs
RH_DOCBUILD_CHECK
! gcc_AC_CHECK_DECLS([vasprintf asprintf basename], [], [], [
#include <stdio.h>
#include <string.h>
])
--- 60,66 ----
dnl building docs
RH_DOCBUILD_CHECK
! gcc_AC_CHECK_DECLS([vasprintf asprintf basename getopt], [], [], [
#include <stdio.h>
#include <string.h>
])
Index: sid/component/consoles/Makefile.am
===================================================================
RCS file: /cvs/src/src/sid/component/consoles/Makefile.am,v
retrieving revision 1.3
diff -c -p -r1.3 Makefile.am
*** sid/component/consoles/Makefile.am 4 Aug 2001 10:51:59 -0000 1.3
--- sid/component/consoles/Makefile.am 10 Jun 2003 15:13:42 -0000
*************** AUTOMAKE_OPTIONS = foreign
*** 5,15 ****
pkglib_LTLIBRARIES = libconsoles.la
INCLUDES = -I. -I../../include -I$(srcdir)/../../include
! libconsoles_la_SOURCES = stdio.cxx socketio.cxx components.cxx
libconsoles_la_LDFLAGS = -module -no-undefined
libconsoles_la_LIBADD = $(socket_libs)
! pkgdata_DATA = sid-io-stdio.txt sid-io-socket.txt hw-visual-tty.tk
DEJAGNUTESTS=stdio.exp consdocs.exp consmonkey.exp stdioval.exp stdioinv.exp socketval.exp socketinv.exp
check-local:
--- 5,15 ----
pkglib_LTLIBRARIES = libconsoles.la
INCLUDES = -I. -I../../include -I$(srcdir)/../../include
! libconsoles_la_SOURCES = stdio.cxx fileio.cxx socketio.cxx components.cxx
libconsoles_la_LDFLAGS = -module -no-undefined
libconsoles_la_LIBADD = $(socket_libs)
! pkgdata_DATA = sid-io-stdio.txt sid-io-fileio.txt sid-io-socket.txt hw-visual-tty.tk
DEJAGNUTESTS=stdio.exp consdocs.exp consmonkey.exp stdioval.exp stdioinv.exp socketval.exp socketinv.exp
check-local:
Index: sid/component/consoles/components.cxx
===================================================================
RCS file: /cvs/src/src/sid/component/consoles/components.cxx,v
retrieving revision 1.1
diff -c -p -r1.1 components.cxx
*** sid/component/consoles/components.cxx 7 Dec 2000 19:30:50 -0000 1.1
--- sid/component/consoles/components.cxx 10 Jun 2003 15:13:42 -0000
***************
*** 1,7 ****
// components.cxx - The component_library routines for the various
// nearby components. -*- C++ -*-
! // Copyright (C) 1999, 2000 Red Hat.
// This file is part of SID and is licensed under the GPL.
// See the file COPYING.SID for conditions for redistribution.
--- 1,7 ----
// components.cxx - The component_library routines for the various
// nearby components. -*- C++ -*-
! // Copyright (C) 1999, 2000, 2003 Red Hat.
// This file is part of SID and is licensed under the GPL.
// See the file COPYING.SID for conditions for redistribution.
*************** compConsoleListTypes()
*** 16,21 ****
--- 16,22 ----
{
vector<string> types;
types.push_back("sid-io-stdio");
+ types.push_back("sid-io-fileio");
types.push_back("sid-io-socket-server");
types.push_back("sid-io-socket-client");
return types;
*************** compConsoleCreate(const string& typeName
*** 26,31 ****
--- 27,34 ----
{
if (typeName == "sid-io-stdio")
return new stdioConsole();
+ else if (typeName == "sid-io-fileio")
+ return new fileioConsole();
else if (typeName == "sid-io-socket-server")
return new socketio(true);
else if (typeName == "sid-io-socket-client")
*************** compConsoleDelete(component* c)
*** 41,48 ****
// One of these dynamic_cast<>s will return 0. It is safe to delete 0.
stdioConsole* c1 = dynamic_cast<stdioConsole*>(c);
if (c1) { delete c1; return; }
! socketio* c2 = dynamic_cast<socketio*>(c);
if (c2) { delete c2; return; }
}
} // end of namespace console_stuff
--- 44,53 ----
// One of these dynamic_cast<>s will return 0. It is safe to delete 0.
stdioConsole* c1 = dynamic_cast<stdioConsole*>(c);
if (c1) { delete c1; return; }
! fileioConsole* c2 = dynamic_cast<fileioConsole*>(c);
if (c2) { delete c2; return; }
+ socketio* c3 = dynamic_cast<socketio*>(c);
+ if (c3) { delete c3; return; }
}
} // end of namespace console_stuff
Index: sid/component/consoles/components.h
===================================================================
RCS file: /cvs/src/src/sid/component/consoles/components.h,v
retrieving revision 1.3
diff -c -p -r1.3 components.h
*** sid/component/consoles/components.h 3 Aug 2001 06:02:43 -0000 1.3
--- sid/component/consoles/components.h 10 Jun 2003 15:13:42 -0000
***************
*** 1,7 ****
// file.cxx - Joint header file for nearby component classes.
// -*- C++ -*-
! // Copyright (C) 1999, 2000 Red Hat.
// This file is part of SID and is licensed under the GPL.
// See the file COPYING.SID for conditions for redistribution.
--- 1,7 ----
// file.cxx - Joint header file for nearby component classes.
// -*- C++ -*-
! // Copyright (C) 1999, 2000, 2003 Red Hat.
// This file is part of SID and is licensed under the GPL.
// See the file COPYING.SID for conditions for redistribution.
*************** private:
*** 109,115 ****
--- 109,144 ----
// save & restore state
string save_state ( );
component::status restore_state (const string& state);
+ };
+
+ // -------------------------------------------------------------------------
+
+ class fileioConsole: public virtual component,
+ protected fixed_attribute_map_component,
+ protected no_bus_component,
+ protected fixed_pin_map_component,
+ protected no_accessor_component,
+ protected no_relation_component
+ {
+ public:
+ fileioConsole();
+ ~fileioConsole () throw();
+
+ private:
+ void filename_attribute_set ();
+
+ void write(host_int_4 value);
+ void closeOutStream ();
+
+ callback_pin<fileioConsole> out_pin;
+
+ // save & restore state
+ string save_state ( );
+ component::status restore_state (const string& state);
+
+ string out_filename;
+ ostream *out_stream;
};
Index: sid/component/consoles/sid-io-stdio.txt
===================================================================
RCS file: /cvs/src/src/sid/component/consoles/sid-io-stdio.txt,v
retrieving revision 1.2
diff -c -p -r1.2 sid-io-stdio.txt
*** sid/component/consoles/sid-io-stdio.txt 3 Aug 2001 01:30:17 -0000 1.2
--- sid/component/consoles/sid-io-stdio.txt 10 Jun 2003 15:13:42 -0000
*************** Environment:
*** 53,58 ****
--- 53,60 ----
Related components
+ See sid-io-fileio for writing to a stream.
+
You can connect a stdio console to a serial data transmission component,
such as a UART. You can also connect it to a ROM monitor/system call
emulator, such as the sw-gloss-arm/angel which performs I/O across some
Index: sid/component/consoles/sid-io-stdio.xml
===================================================================
RCS file: /cvs/src/src/sid/component/consoles/sid-io-stdio.xml,v
retrieving revision 1.1
diff -c -p -r1.1 sid-io-stdio.xml
*** sid/component/consoles/sid-io-stdio.xml 3 Aug 2001 01:47:52 -0000 1.1
--- sid/component/consoles/sid-io-stdio.xml 10 Jun 2003 15:13:42 -0000
***************
*** 62,67 ****
--- 62,70 ----
<title>Related components</title>
<p>
+ See sid-io-fileio for writing to a stream.
+ </p>
+ <p>
You can connect a stdio console to a serial data transmission
component, such as a UART. You can also connect it to a
ROM monitor/system call emulator, such as the <complib>sw-gloss-arm/angel</complib>
Index: sid/component/memory/generic.cxx
===================================================================
RCS file: /cvs/src/src/sid/component/memory/generic.cxx,v
retrieving revision 1.7
diff -c -p -r1.7 generic.cxx
*** sid/component/memory/generic.cxx 4 Aug 2001 11:34:52 -0000 1.7
--- sid/component/memory/generic.cxx 10 Jun 2003 15:13:42 -0000
***************
*** 1,10 ****
// generic.cxx - a class of generic memories. -*- C++ -*-
! // Copyright (C) 1999-2001 Red Hat.
// This file is part of SID and is licensed under the GPL.
// See the file COPYING.SID for conditions for redistribution.
-
- #define _POSIX_C_SOURCE 199506L
#include "config.h"
#include "generic.h"
--- 1,8 ----
// generic.cxx - a class of generic memories. -*- C++ -*-
! // Copyright (C) 1999-2001,2003 Red Hat.
// This file is part of SID and is licensed under the GPL.
// See the file COPYING.SID for conditions for redistribution.
#include "config.h"
#include "generic.h"
Index: sid/include/sidattrutil.h
===================================================================
RCS file: /cvs/src/src/sid/include/sidattrutil.h,v
retrieving revision 1.3
diff -c -p -r1.3 sidattrutil.h
*** sid/include/sidattrutil.h 22 Nov 2002 20:35:00 -0000 1.3
--- sid/include/sidattrutil.h 10 Jun 2003 15:46:56 -0000
***************
*** 2,8 ****
// mappings between application objects and their string
// representations. -*- C++ -*-
! // Copyright (C) 1999, 2000, 2002 Red Hat.
// This file is part of SID and is licensed under the GPL.
// See the file COPYING.SID for conditions for redistribution.
--- 2,8 ----
// mappings between application objects and their string
// representations. -*- C++ -*-
! // Copyright (C) 1999, 2000, 2002, 2003 Red Hat.
// This file is part of SID and is licensed under the GPL.
// See the file COPYING.SID for conditions for redistribution.
***************
*** 10,15 ****
--- 10,16 ----
#define SIDATTRUTIL_H
#include <sidconfig.h>
+ #include <sidpinutil.h>
#include "sidtypes.h"
#include <string>
***************
*** 26,35 ****
--- 27,39 ----
#include <limits.h>
+ #include <stdio.h>
+ #include <stdarg.h>
// <ext/hash_map>? <hash_map>? std::? __gnu_cxx::? Too much hassle.
#undef HAVE_HASHING
+ #include <iostream>
#if HAVE_SSTREAM
#include <sstream>
#elif HAVE_STRSTREAM_H
*************** make_attribute (const sid::any_int<IntTy
*** 1010,1015 ****
--- 1014,1152 ----
else
return ((*it).second)->parse_attribute (value);
}
+ };
+
+ // A mix-in for classes with user logging.
+ class fixed_attribute_map_with_logging_component
+ : public virtual fixed_attribute_map_component,
+ public virtual fixed_pin_map_component
+ {
+ #define SID_LOG_PERSISTENT_BUFFER (HAVE_VSNPRINTF || ! HAVE_VASPRINTF)
+ #define SID_LOG_TRANSIENT_MALLOC_BUFFER (! SID_LOG_PERSISTENT_BUFFER)
+ protected:
+ fixed_attribute_map_with_logging_component () :
+ ulog_level (0),
+ ulog_mode ("less"),
+ ulog_out_pin (),
+ buffer_output (true),
+ buffer_size (4096), // big enough for now
+ saved_messages (),
+ saved_levels ()
+ {
+ add_attribute ("buffer-output", &buffer_output, "setting");
+ add_attribute ("ulog-level", &ulog_level, "setting");
+ add_attribute ("ulog-mode", &ulog_mode, "setting");
+ add_pin ("ulog-out", & ulog_out_pin);
+ #if SID_LOG_PERSISTENT_BUFFER
+ buffer = new char[buffer_size];
+ #endif
+ }
+ ~fixed_attribute_map_with_logging_component () /* throw() */
+ {
+ // Output any saved messages.
+ output_saved_messages ();
+ #if SID_LOG_PERSISTENT_BUFFER
+ delete [] buffer;
+ #endif
+ }
+
+ virtual void log (sid::host_int_4 level, const char *fmt, ...)
+ {
+ if (! buffer_output)
+ {
+ // Output any saved messages first
+ output_saved_messages ();
+
+ // Check the logging level and mode.
+ if (! check_level (level))
+ return;
+ }
+
+ // Write the message into a buffer.
+ int length;
+ for (;;)
+ {
+ va_list ap;
+ va_start (ap, fmt);
+ #if HAVE_VSNPRINTF
+ length = vsnprintf (buffer, buffer_size, fmt, ap);
+ va_end (ap);
+ if (length < buffer_size)
+ break;
+ delete [] buffer;
+ buffer_size = length + 256;
+ buffer = new char[buffer_size];
+ #elif HAVE_VASPRINTF
+ length = vasprintf (&buffer, fmt, ap);
+ va_end (ap);
+ break;
+ #else
+ length = STDCTYPE(vsprintf) (buffer, fmt, ap);
+ va_end (ap);
+ if (length >= buffer_size)
+ std::cerr << "Error: ulog buffer overflow!!!" << std::endl;
+ break;
+ #endif
+ }
+
+ // If the output pin is not connected yet, Save the message for
+ // later. This happens when the log message is issued from the
+ // component's constructor.
+ if (buffer_output)
+ {
+ saved_messages.push_back (std::string (buffer));
+ saved_levels.push_back (level);
+ }
+ else
+ {
+ // Otherwise, output the new message.
+ for (int i = 0; i < length; ++i)
+ ulog_out_pin.drive (buffer[i]);
+ }
+
+ #if SID_LOG_TRANSIENT_MALLOC_BUFFER
+ free (buffer);
+ #endif
+ }
+
+ private:
+ bool check_level (sid::host_int_4 level)
+ {
+ if (level > ulog_level)
+ return false;
+
+ if (level != ulog_level
+ && (ulog_mode == "match" || ulog_mode == "equal"))
+ return false;
+
+ return true;
+ }
+
+ void output_saved_messages ()
+ {
+ while (saved_messages.size () > 0)
+ {
+ if (check_level (saved_levels[0]))
+ {
+ std::string s = saved_messages[0];
+ for (int i = 0; i < s.size (); ++i)
+ ulog_out_pin.drive (s[i]);
+ }
+ saved_messages.erase (saved_messages.begin ());
+ saved_levels.erase (saved_levels.begin ());
+ }
+ }
+
+ sid::host_int_4 ulog_level;
+ std::string ulog_mode;
+ sidutil::output_pin ulog_out_pin;
+ bool buffer_output;
+ char *buffer;
+ long buffer_size;
+ std::vector<std::string> saved_messages;
+ std::vector<sid::host_int_4> saved_levels;
+ #undef SID_LOG_PERSISTENT_BUFFER
+ #undef SID_LOG_TRANSIENT_MALLOC_BUFFER
};
}
Index: sid/main/dynamic/commonCfg.cxx
===================================================================
RCS file: /cvs/src/src/sid/main/dynamic/commonCfg.cxx,v
retrieving revision 1.3
diff -c -p -r1.3 commonCfg.cxx
*** sid/main/dynamic/commonCfg.cxx 16 Apr 2003 22:01:07 -0000 1.3
--- sid/main/dynamic/commonCfg.cxx 10 Jun 2003 15:13:44 -0000
*************** SessionCfg::SessionCfg (const string nam
*** 545,550 ****
--- 545,573 ----
conn_pin (main_obj, "stopping", shutdown_seq, "input");
yield_net->add_output (0, host_sched, "yield");
init_seq->add_output (0, reset_net, "input");
+
+ AtomicCfg *ulog = new AtomicCfg ("ulog-*",
+ "libconsoles.la",
+ "console_component_library",
+ "sid-io-stdio");
+ ulog_map["*"] = ulog;
+ add_child (ulog);
+ }
+
+ void
+ SessionCfg::add_ulog_file (const string name)
+ {
+ if (ulog_map.find (name) != ulog_map.end ())
+ return; // already there
+
+ // There is no existing logger for this file, so add a new one.
+ AtomicCfg *ulog = new AtomicCfg ("ulog-" + name,
+ "libconsoles.la",
+ "console_component_library",
+ "sid-io-stdio");
+ set (ulog, "filename", name);
+ ulog_map[name] = ulog;
+ add_child (ulog);
}
void SessionCfg::use_no_stdio ()
*************** BoardCfg::BoardCfg (const string name,
*** 830,835 ****
--- 853,859 ----
bool with_cpu_main_mem_connect) :
ComponentCfg (name),
AggregateCfg (name),
+ UlogCfg (),
cache_flush_net (NULL),
z_packet (with_z_packet),
sess (s),
*************** void BoardCfg::add_icache (const string
*** 1078,1084 ****
void BoardCfg::add_memory (const Mapping &m)
{
if (main_mapper)
! main_mapper->map (m);
}
--- 1102,1111 ----
void BoardCfg::add_memory (const Mapping &m)
{
if (main_mapper)
! {
! Mapping map(m);
! main_mapper->map (map.base(0));
! }
}
Index: sid/main/dynamic/commonCfg.h
===================================================================
RCS file: /cvs/src/src/sid/main/dynamic/commonCfg.h,v
retrieving revision 1.1
diff -c -p -r1.1 commonCfg.h
*** sid/main/dynamic/commonCfg.h 9 Jan 2003 04:22:50 -0000 1.1
--- sid/main/dynamic/commonCfg.h 10 Jun 2003 15:13:44 -0000
*************** class GlueSeqCfg :
*** 166,175 ****
int n;
};
// you should really only make one of these, with an empty name,
// unless you want some crazy multi-session support.
struct SessionCfg :
! virtual public AggregateCfg
{
SessionCfg (const string name);
virtual ~SessionCfg ();
--- 166,189 ----
int n;
};
+ // Configs which support logging should inherit this
+ struct UlogCfg
+ {
+ UlogCfg (sid::host_int_4 l = 0, const string m = "less", const string f = "-")
+ : ulog_level (l), ulog_mode (m), ulog_file (f)
+ {}
+ virtual void set_ulog_level (sid::host_int_4 l) { ulog_level = l; }
+ virtual void set_ulog_mode (const string m) { ulog_mode = m; }
+ virtual void set_ulog_file (const string f) { ulog_file = f; }
+ sid::host_int_4 ulog_level;
+ string ulog_mode;
+ string ulog_file;
+ };
+
// you should really only make one of these, with an empty name,
// unless you want some crazy multi-session support.
struct SessionCfg :
! virtual public AggregateCfg, public UlogCfg
{
SessionCfg (const string name);
virtual ~SessionCfg ();
*************** struct SessionCfg :
*** 194,199 ****
--- 208,215 ----
AtomicCfg *tcl_bridge;
bool verbose;
bool use_stdio;
+ void add_ulog_file (const string filename);
+ map<const string, AtomicCfg *> ulog_map;
};
class CpuCfg :
*************** class GdbCfg :
*** 278,284 ****
};
class BoardCfg :
! virtual public AggregateCfg
{
public:
BoardCfg (const string name,
--- 294,300 ----
};
class BoardCfg :
! virtual public AggregateCfg, public UlogCfg
{
public:
BoardCfg (const string name,
*************** public:
*** 307,312 ****
--- 323,329 ----
virtual void trace_disassemble ();
virtual void trace_core ();
virtual void write_config (Writer &w);
+
virtual ~BoardCfg ();
GlueSeqCfg *cache_flush_net;
Index: sid/main/dynamic/mainDynamic.cxx
===================================================================
RCS file: /cvs/src/src/sid/main/dynamic/mainDynamic.cxx,v
retrieving revision 1.3
diff -c -p -r1.3 mainDynamic.cxx
*** sid/main/dynamic/mainDynamic.cxx 9 Jan 2003 04:22:50 -0000 1.3
--- sid/main/dynamic/mainDynamic.cxx 10 Jun 2003 15:13:44 -0000
***************
*** 1,6 ****
// mainDynamic.cxx - high-tech mainline. -*- C++ -*-
! // Copyright (C) 1999, 2000, 2001, 2002 Red Hat.
// This file is part of SID and is licensed under the GPL.
// See the file COPYING.SID for conditions for redistribution.
--- 1,6 ----
// mainDynamic.cxx - high-tech mainline. -*- C++ -*-
! // Copyright (C) 1999, 2000, 2001, 2002, 2003 Red Hat.
// This file is part of SID and is licensed under the GPL.
// See the file COPYING.SID for conditions for redistribution.
*************** usage ()
*** 120,125 ****
--- 120,129 ----
<< " mmap Memory map given file" << endl
<< " latency=r:w Set read, write latencies [0:0]" << endl
<< " latency=rw Set both latencies [0]" << endl;
+ cout << "--ulog-level=LEVEL Set the logging level for the current board" << endl;
+ cout << "--ulog-mode=less|match|equal" << endl
+ << " Set the logging mode for the current board" << endl;
+ cout << "--ulog-file=*|FILE Set the log file name" << endl;
cout << endl
<< " note: most board-specific options can be used in board-neutral position " << endl
<< " where they are interpreted as session-specific or default settings. " << endl;
*************** void try_add_memory (const string memspe
*** 381,390 ****
i != bases.end(); ++i)
{
Mapping m = Mapping()
! .slave(mem).bus(port).base(0)
.low(*i).high((*i) + size - 1);
if (map)
! map->map (m);
else if (board)
board->add_memory (m);
else
--- 385,394 ----
i != bases.end(); ++i)
{
Mapping m = Mapping()
! .slave(mem).bus(port)
.low(*i).high((*i) + size - 1);
if (map)
! map->map (m.base(0));
else if (board)
board->add_memory (m);
else
*************** struct Defs {
*** 462,467 ****
--- 466,474 ----
trace_disassemble (false),
trace_counter (false),
trace_core (false),
+ ulog_level (0),
+ ulog_mode ("less"),
+ ulog_file ("-"),
step_insn_count ("10000")
{}
string cpu;
*************** struct Defs {
*** 472,477 ****
--- 479,487 ----
bool trace_disassemble;
bool trace_counter;
bool trace_core;
+ sid::host_int_4 ulog_level;
+ string ulog_mode;
+ string ulog_file;
string step_insn_count;
};
*************** main(int argc, char* argv[])
*** 514,520 ****
opt_insn_count, opt_load, opt_icache, opt_dcache,
opt_memory_region, opt_trace_extract, opt_trace_semantics,
opt_trace_disassemble, opt_trace_counter, opt_trace_core,
! opt_final_insn_count, opt_eb, opt_el, opt_gprof };
int curr_opt;
--- 524,531 ----
opt_insn_count, opt_load, opt_icache, opt_dcache,
opt_memory_region, opt_trace_extract, opt_trace_semantics,
opt_trace_disassemble, opt_trace_counter, opt_trace_core,
! opt_final_insn_count, opt_eb, opt_el, opt_gprof,
! opt_ulog_level, opt_ulog_mode, opt_ulog_file };
int curr_opt;
*************** main(int argc, char* argv[])
*** 559,564 ****
--- 570,578 ----
{"final-insn-count", no_argument, & curr_opt, opt_final_insn_count },
{"EB", no_argument, & curr_opt, opt_eb },
{"EL", no_argument, & curr_opt, opt_el },
+ {"ulog-level", required_argument, &curr_opt, opt_ulog_level },
+ {"ulog-mode", required_argument, &curr_opt, opt_ulog_mode },
+ {"ulog-file", required_argument, &curr_opt, opt_ulog_file },
{ 0, 0, NULL, 0 }
};
*************** main(int argc, char* argv[])
*** 632,637 ****
--- 646,654 ----
curr_board->trace_core();
if (defaults.enable_warnings)
curr_board->enable_warnings();
+ curr_board->set_ulog_level (defaults.ulog_level);
+ curr_board->set_ulog_mode (defaults.ulog_mode);
+ curr_board->set_ulog_file (defaults.ulog_file);
if (defaults.step_insn_count != "10000")
curr_board->set_step_insn_count(defaults.step_insn_count);
break;
*************** main(int argc, char* argv[])
*** 815,820 ****
--- 832,871 ----
exit (8);
}
}
+ break;
+
+ case opt_ulog_level:
+ if (curr_board)
+ curr_board->set_ulog_level (optaddr ("ulog-level"));
+ else
+ {
+ defaults.ulog_level = optaddr ("ulog-level");
+ need_sess (sess);
+ sess->set_ulog_level (optaddr ("ulog-level"));
+ }
+ break;
+
+ case opt_ulog_mode:
+ if (curr_board)
+ curr_board->set_ulog_mode (optstring ());
+ else
+ {
+ defaults.ulog_mode = optstring ();
+ need_sess (sess);
+ sess->set_ulog_mode (optstring ());
+ }
+ break;
+
+ case opt_ulog_file:
+ need_sess (sess);
+ sess->add_ulog_file (optstring ());
+ if (curr_board)
+ curr_board->set_ulog_file (optstring ());
+ else
+ {
+ defaults.ulog_file = optstring ();
+ sess->set_ulog_file (optstring ());
+ }
break;
}
break;
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch][rfa] --tksched option for configrun-sid.in
[not found] ` <20031021165818.GD19126@redhat.com>
@ 2003-10-21 17:03 ` Dave Brolley
2003-10-21 22:12 ` Dave Brolley
1 sibling, 0 replies; 3+ messages in thread
From: Dave Brolley @ 2003-10-21 17:03 UTC (permalink / raw)
To: Frank Ch. Eigler, sid
[-- Attachment #1: Type: text/plain, Size: 353 bytes --]
Frank Ch. Eigler wrote:
>Hi -
>
>
>
>>This is the first of several patches which have arisen out of some work
>>we've been doing on a yet-to-be-released port. [...]
>>
>>
>
>I think you sent the wrong patch (one related logging).
>Anyway it's okay.
>
>
Ooops....here's the correct patch. That logging one is old and already
committed.
Dave
[-- Attachment #2: tksched.patch.txt --]
[-- Type: text/plain, Size: 3253 bytes --]
Index: sid/bsp/configrun-sid.in
===================================================================
RCS file: /cvs/src/src/sid/bsp/configrun-sid.in,v
retrieving revision 1.34
diff -c -p -r1.34 configrun-sid.in
*** sid/bsp/configrun-sid.in 28 Dec 2001 21:16:48 -0000 1.34
--- sid/bsp/configrun-sid.in 21 Oct 2003 16:20:53 -0000
*************** $load_mapper_data = "cpu-mapper access-p
*** 120,125 ****
--- 120,126 ----
"gdbport=i%" => ["gdbport PROCESSOR=PORT", "Add a gdb/debugger interface on TCP port", "",
"for the given processor. May be specified",
"more than once to debug multiple CPUs. [none]"],
+ "tksched!" => ["tksched", "Add a simple visual scheduler controller.", "no"],
"tksm!" => ["tksm", "Add an experimental Tk system monitor.", "no"],
"board=s" => ["board=BOARD", "Model given board or system.", "gloss"],
"engine=s" => ["engine=scache|pbb", "Set given cgen CPU engine.", "pbb"],
*************** connect-pin host-sched 7-event -> sidaud
*** 1207,1212 ****
--- 1208,1225 ----
";
}
+ # --tksched
+ if ($opt_tksched != 0)
+ {
+ $any_tcl = 1;
+
+ $first_section .= "# tk visual scheduler controller\n" .
+ &sidconf_new("sid-visual-sched", "tksched") . "\n";
+
+ $second_section .= "# tk system monitor
+ relate tksched scheduler target-sched
+ ";
+ }
# any tcl stuff?
if ($any_tcl)
Index: sid/component/sched/sid-visual-sched.tk
===================================================================
RCS file: /cvs/src/src/sid/component/sched/sid-visual-sched.tk,v
retrieving revision 1.2
diff -c -p -r1.2 sid-visual-sched.tk
*** sid/component/sched/sid-visual-sched.tk 8 Jan 2003 03:49:50 -0000 1.2
--- sid/component/sched/sid-visual-sched.tk 21 Oct 2003 16:20:55 -0000
*************** proc get_sub {sched n} {
*** 20,42 ****
proc set_sub {sched n pair} {
set time [lindex $pair 0]
set regular [lindex $pair 1]
! set time [sid::component::set_attribute_value $sched $n-time $time]
! set regular [sid::component::set_attribute_value $sched $n-regular? $regular]
! }
!
!
! proc set_enable {sched flag} {
! sid::component::set_attribute_value $sched enabled? $flag
}
proc toggle_subscription {sched n} {
global saved_subs
- set_enable $sched 0
set new_sub $saved_subs($sched,$n)
set saved_subs($sched,$n) [get_sub $sched $n]
set_sub $sched $n $new_sub
- set_enable $sched 1
}
--- 20,42 ----
proc set_sub {sched n pair} {
set time [lindex $pair 0]
set regular [lindex $pair 1]
! if {$time} {
! # time is nonzero, so set regular *first* and then time
! set regular [sid::component::set_attribute_value $sched $n-regular? $regular]
! set time [sid::component::set_attribute_value $sched $n-time $time]
! } else {
! # time is zero, so disable time *first* and then set regular
! set time [sid::component::set_attribute_value $sched $n-time $time]
! set regular [sid::component::set_attribute_value $sched $n-regular? $regular]
! }
}
proc toggle_subscription {sched n} {
global saved_subs
set new_sub $saved_subs($sched,$n)
set saved_subs($sched,$n) [get_sub $sched $n]
set_sub $sched $n $new_sub
}
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch][rfa] --tksched option for configrun-sid.in
[not found] ` <20031021165818.GD19126@redhat.com>
2003-10-21 17:03 ` Dave Brolley
@ 2003-10-21 22:12 ` Dave Brolley
1 sibling, 0 replies; 3+ messages in thread
From: Dave Brolley @ 2003-10-21 22:12 UTC (permalink / raw)
To: Frank Ch. Eigler; +Cc: sid
committed.
Frank Ch. Eigler wrote:
>Hi -
>
>
>
>>This is the first of several patches which have arisen out of some work
>>we've been doing on a yet-to-be-released port. [...]
>>
>>
>
>I think you sent the wrong patch (one related logging).
>Anyway it's okay.
>
>
>- FChE
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2003-10-21 22:12 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-10-21 16:34 [patch][rfa] --tksched option for configrun-sid.in Dave Brolley
[not found] ` <20031021165818.GD19126@redhat.com>
2003-10-21 17:03 ` Dave Brolley
2003-10-21 22:12 ` Dave Brolley
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).