+2001-07-12 matthew green <mrg@redhat.com>
+
+ * compAudio.cxx (fd_audio): Add missing throw() specifiers to this dtor.
+ * components.h (basic_codec, generic_audio, nop_audio, fd_audio,
+ linux_audio, solaris_audio): Add missing throw() specifiers to these
+ dtors.
+
2001-06-26 Frank Ch. Eigler <fche@redhat.com>
* Makefile.am (ACLOCAL_AMFLAGS): Refer to $srcdir.
}
-fd_audio::~fd_audio()
+fd_audio::~fd_audio() throw()
{
if (this->rx_fd >= 0)
close (this->rx_fd);
{
public:
basic_codec ();
- ~basic_codec () {}
+ ~basic_codec () throw() {}
private:
friend class callback_word_bus<basic_codec,big_int_4>;
{
public:
generic_audio ();
- ~generic_audio () {}
+ ~generic_audio () throw() {}
protected:
virtual bool begin_tx (const audio_config&) = 0;
{
public:
nop_audio () {}
- ~nop_audio () {}
+ ~nop_audio () throw() {}
private:
// The inherited virtual functions
{
public:
fd_audio ();
- ~fd_audio ();
+ ~fd_audio () throw() ;
protected:
virtual bool set_audio_config (int, const audio_config&) = 0;
// XXX
public:
linux_audio () {}
- ~linux_audio () {}
+ ~linux_audio () throw() {}
protected:
bool set_audio_config (int, const audio_config&) { return true; }
{
public:
solaris_audio () {}
- ~solaris_audio () {}
+ ~solaris_audio () throw() {}
// XXX
bool set_audio_config (int, const audio_config&) { return true; }
+2001-07-12 matthew green <mrg@redhat.com>
+
+ * compConfig.cxx (cfgroot_component): Add missing throw() specifiers
+ to this dtor.
+
2001-06-26 Frank Ch. Eigler <fche@redhat.com>
* Makefile.am (ACLOCAL_AMFLAGS): Refer to $srcdir.
{
public:
cfgroot_component();
- virtual ~cfgroot_component();
+ virtual ~cfgroot_component() throw();
protected:
host_int_8 activity_count;
}
-cfgroot_component::~cfgroot_component()
+cfgroot_component::~cfgroot_component() throw()
{
// Delete every item in the component_creator map.
for (component_creator_map_t::iterator it = this->component_creator_map.begin ();
+2001-07-12 matthew green <mrg@redhat.com>
+
+ * compTcl.cxx (tcl_component): Add missing throw() specifiers to this
+ dtor.
+
2001-06-26 Frank Ch. Eigler <fche@redhat.com>
* Makefile.am (ACLOCAL_AMFLAGS): Refer to $srcdir.
tcl_component_ctor_0 ();
}
- ~tcl_component ()
+ ~tcl_component () throw()
{
// XXX: kill buses?, pins?
if (interp)
+2001-07-12 matthew green <mrg@redhat.com>
+
+ * sidattrutil.h (attribute_coder_base, attribute_coder_virtual,
+ attribute_coder_alias, attribute_coder_virtual_parameterized,
+ attribute_coder, attribute_coder_ro, attribute_coder_ro_value,
+ attribute_coder_bus_rw, attribute_coder_bus_wo,
+ fixed_attribute_map_component): Add missing throw() specifiers
+ to these dtors.
+ * sidbusutil.h (word_bus, passthrough_bus, mux_passthrough_bus,
+ passthrough_word_bus, harvard_bus, byte_bus, callback_byte_bus,
+ fixed_accessor_map_component, fixed_bus_map_component): Likewise.
+ * sidcomputil.h (fixed_relation_map_component): Likewise.
+ * sidpinutil.h (list_output, output_pin): Likewise
+ (fixed_pin_map_component): Likewise
+ * sidcpuutil.h (basic_cpu, basic_big_endian_cpu,
+ basic_little_endian_cpu, basic_bi_endian_cpu): Likewise.
+ (basic_cpu::read_insn_memory, basic_cpu::write_insn_memory,
+ basic_cpu::read_data_memory, basic_cpu::write_data_memory): Rework
+ to avoid GCC 2.95.3 errors.
+
2001-07-06 Ben Elliston <bje@redhat.com>
* sidcpuutil.h: Use std::string for C++ conformance.
public:
virtual std::string make_attribute() const = 0;
virtual sid::component::status parse_attribute(const std::string& str) = 0;
- virtual ~attribute_coder_base() {}
+ virtual ~attribute_coder_base() throw() {}
};
parse_attribute (const std::string& str)
{ return (receiver->*setter) (str); }
- ~attribute_coder_virtual() { }
+ ~attribute_coder_virtual() throw() { }
};
parse_attribute (const std::string& str)
{ return receiver->set_attribute_value (name, str); }
- ~attribute_coder_alias() { }
+ ~attribute_coder_alias() throw() { }
};
return (receiver->*setter) (parameter, str);
}
- ~attribute_coder_virtual_parameterized() { }
+ ~attribute_coder_virtual_parameterized() throw() { }
};
return sidutil::parse_attribute (str, *ptr);
}
- ~attribute_coder() { }
+ ~attribute_coder() throw() { }
};
return sid::component::bad_value;
}
- ~attribute_coder_ro() { }
+ ~attribute_coder_ro() throw() { }
};
return sid::component::bad_value;
}
- ~attribute_coder_ro_value() { }
+ ~attribute_coder_ro_value() throw() { }
};
else return sid::component::bad_value;
}
- ~attribute_coder_bus_rw() { }
+ ~attribute_coder_bus_rw() throw() { }
};
return s;
}
- ~attribute_coder_bus_wo() { }
+ ~attribute_coder_bus_wo() throw() { }
private:
std::string last_written_attribute;
// the compiler working set blew up.
protected:
- ~fixed_attribute_map_component () { /* XXX: delete coder objects */ }
+ ~fixed_attribute_map_component () throw() { /* XXX: delete coder objects */ }
// Add or remove an attribute <-> category association. The named
// attribute must already exist.
{
protected:
word_bus() {}
- ~word_bus() {}
+ ~word_bus() throw() {}
virtual sid::bus::status word_write(sid::host_int_4 addr,
DataType mask,
{
assert (target != 0);
}
- ~passthrough_bus() {}
+ ~passthrough_bus() throw() {}
// Some macros to make manufacturing of the cartesian-product
// calls simpler.
t[1] = t2;
t[2] = NULL;
}
- ~mux_passthrough_bus() {}
+ ~mux_passthrough_bus() throw() {}
void switch_bus()
{
// Switch to the next bus if the current one is valid (0 or 1)
{
assert (target != 0);
}
- ~passthrough_word_bus() {}
+ ~passthrough_word_bus() throw() {}
virtual sid::bus::status word_write(sid::host_int_4 addr,
DataType mask,
assert (insn_bus != 0);
assert (data_bus != 0);
}
- ~harvard_bus() {}
+ ~harvard_bus() throw() {}
sid::bus *map_addr_to_bus (sid::host_int_4 *addr)
{
{
protected:
byte_bus() {}
- ~byte_bus() {}
+ ~byte_bus() throw() {}
virtual sid::bus::status
write_data(sid::host_int_4 addr, sid::host_int_1 data) throw () = 0;
sid::host_int_4, sid::host_int_1 )
) : receiver(h), reader(r), writer(w) {}
- ~callback_byte_bus() {}
+ ~callback_byte_bus() throw() {}
protected:
Receiver* receiver;
{
public:
+ ~fixed_accessor_map_component() throw() {}
+
// Returns vector of accessor names to components.
std::vector<std::string>
accessor_names() throw ()
class fixed_bus_map_component: public virtual sid::component
{
public:
+ ~fixed_bus_map_component() throw() {}
+
std::vector<std::string>
bus_names() throw ()
{
class fixed_relation_map_component: public virtual sid::component
{
public:
+ ~fixed_relation_map_component() throw() {}
+
typedef std::vector<sid::component*> component_relation_t;
std::vector<std::string>
add_attribute ("trace-result?", & trace_result_p, "setting");
}
- ~basic_cpu() {}
+ virtual ~basic_cpu() throw() {}
};
BigOrLittleInt basic_cpu::read_insn_memory (sid::host_int_4 pc, sid::host_int_4 address, BigOrLittleInt) const
{
BigOrLittleInt value;
- sid::bus::status s =
- (LIKELY(this->insn_bus)) ? this->insn_bus->read (address, value) : sid::bus::unmapped;
+ sid::bus::status s;
+ if (LIKELY(this->insn_bus))
+ s = this->insn_bus->read (address, value);
+ else
+ s = sid::bus::unmapped;
total_latency += s.latency;
if (LIKELY(s == sid::bus::ok))
return value;
template <typename BigOrLittleInt>
BigOrLittleInt basic_cpu::write_insn_memory (sid::host_int_4 pc, sid::host_int_4 address, BigOrLittleInt value) const
{
- sid::bus::status s =
- (LIKELY(this->insn_bus)) ? this->insn_bus->write (address, value) : sid::bus::unmapped;
+ sid::bus::status s;
+ if (LIKELY(this->insn_bus))
+ s = this->insn_bus->write (address, value);
+ else
+ s = sid::bus::unmapped;
total_latency += s.latency;
if (LIKELY(s == sid::bus::ok))
return value;
BigOrLittleInt basic_cpu::read_data_memory (sid::host_int_4 pc, sid::host_int_4 address, BigOrLittleInt) const
{
BigOrLittleInt value;
- sid::bus::status s =
- (LIKELY(this->data_bus)) ? this->data_bus->read (address, value) : sid::bus::unmapped;
+ sid::bus::status s;
+ if (LIKELY(this->data_bus))
+ s = this->data_bus->read (address, value);
+ else
+ s = sid::bus::unmapped;
total_latency += s.latency;
if (LIKELY(s == sid::bus::ok))
return value;
template <typename BigOrLittleInt>
BigOrLittleInt basic_cpu::write_data_memory (sid::host_int_4 pc, sid::host_int_4 address, BigOrLittleInt value) const
{
- sid::bus::status s =
- (LIKELY(this->data_bus)) ? this->data_bus->write (address, value) : sid::bus::unmapped;
+ sid::bus::status s;
+ if (LIKELY(this->data_bus))
+ s = this->data_bus->write (address, value);
+ else
+ s = sid::bus::unmapped;
total_latency += s.latency;
if (LIKELY(s == sid::bus::ok))
return value;
{
add_attribute_ro_value ("endian", endian_big, "register");
}
- ~basic_big_endian_cpu () {}
+ ~basic_big_endian_cpu () throw() {}
sid::host_int_1 read_insn_memory_1 (sid::host_int_4 pc, sid::host_int_4 address) const
{
{
add_attribute_ro_value ("endian", endian_little, "register");
}
- ~basic_little_endian_cpu () {}
+ ~basic_little_endian_cpu () throw() {}
sid::host_int_1 read_insn_memory_1 (sid::host_int_4 pc, sid::host_int_4 address) const
{
this->_current_endianness = endian_big;
add_attribute ("endian", & this->_current_endianness, "register");
}
- ~basic_bi_endian_cpu () {}
+ ~basic_bi_endian_cpu () throw() {}
void set_endian(sid::host_int_4 v)
{
inline std::ostream&
operator << (std::ostream& o, const input_pin& p)
-{
- o << p.value;
- return o;
-}
+ {
+ o << p.value;
+ return o;
+ }
inline std::istream&
operator >> (std::istream& i, input_pin& p)
-{
- i >> p.value;
- return i;
-}
+ {
+ i >> p.value;
+ return i;
+ }
{
typedef std::vector<sid::pin*> pin_list_t;
pin_list_t neighbours;
-
+
public:
+ ~list_output() throw() {}
+
// Propagate value to list of outputs.
void
driven (sid::host_int_4 v) throw()
this->value = 0;
}
- ~output_pin ()
+ virtual ~output_pin () throw()
{
if (this->num_outputs == 0)
{
inline std::ostream&
operator << (std::ostream& o, const output_pin& p)
-{
- o << p.value;
- return o;
-}
+ {
+ o << p.value;
+ return o;
+ }
inline std::istream&
operator >> (std::istream& i, output_pin& p)
-{
- i >> p.value;
- return i;
-}
+ {
+ i >> p.value;
+ return i;
+ }
inline std::ostream&
operator << (std::ostream& o, const inputoutput_pin& p)
-{
- o << *p.output() << " " << *p.input();
- return o;
-}
+ {
+ o << *p.output() << " " << *p.input();
+ return o;
+ }
inline std::istream&
operator >> (std::istream& i, inputoutput_pin& p)
-{
- i >> *p.output() >> *p.input();
- return i;
-}
+ {
+ i >> *p.output() >> *p.input();
+ return i;
+ }
}
public:
+ ~fixed_pin_map_component() throw() {}
+
// Return the names of all known pins (input & output)
std::vector<std::string>
pin_names () throw ()