Change-Id: I1d4f5b67828e3bef64d781831cec4b25d6fcb6b9
Issue-on: https://gem5.atlassian.net/browse/GEM5-172
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28407
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
*
* These methods relate to the statistics I/O interface.
*/
*
* These methods relate to the statistics I/O interface.
*/
+
+/**
+ * @defgroup api_simobject The SimObject API.
+ *
+ * These methods relate to the SimObject interface.
+ */
ProbeManager *probeManager;
protected:
ProbeManager *probeManager;
protected:
- /** Cached copy of the object parameters. */
+ /**
+ * Cached copy of the object parameters.
+ *
+ * @ingroup api_simobject
+ */
const SimObjectParams *_params;
public:
typedef SimObjectParams Params;
const SimObjectParams *_params;
public:
typedef SimObjectParams Params;
+ /**
+ * @ingroup api_simobject
+ * @{
+ */
const Params *params() const { return _params; }
SimObject(const Params *_params);
const Params *params() const { return _params; }
SimObject(const Params *_params);
+ /** @}*/ //end of the api_simobject group
virtual ~SimObject();
public:
virtual ~SimObject();
public:
+ /**
+ * @ingroup api_simobject
+ */
virtual const std::string name() const { return params()->name; }
/**
virtual const std::string name() const { return params()->name; }
/**
* all ports are connected. Initializations that are independent
* of unserialization but rely on a fully instantiated and
* connected SimObject graph should be done here.
* all ports are connected. Initializations that are independent
* of unserialization but rely on a fully instantiated and
* connected SimObject graph should be done here.
+ *
+ * @ingroup api_simobject
* found.
*
* @param cp Checkpoint to restore the state from.
* found.
*
* @param cp Checkpoint to restore the state from.
+ *
+ * @ingroup api_serialize
*/
virtual void loadState(CheckpointIn &cp);
*/
virtual void loadState(CheckpointIn &cp);
* initState() is called on each SimObject when *not* restoring
* from a checkpoint. This provides a hook for state
* initializations that are only required for a "cold start".
* initState() is called on each SimObject when *not* restoring
* from a checkpoint. This provides a hook for state
* initializations that are only required for a "cold start".
+ *
+ * @ingroup api_serialize
*/
virtual void initState();
/**
* Register probe points for this object.
*/
virtual void initState();
/**
* Register probe points for this object.
+ *
+ * @ingroup api_simobject
*/
virtual void regProbePoints();
/**
* Register probe listeners for this object.
*/
virtual void regProbePoints();
/**
* Register probe listeners for this object.
+ *
+ * @ingroup api_simobject
*/
virtual void regProbeListeners();
/**
* Get the probe manager for this object.
*/
virtual void regProbeListeners();
/**
* Get the probe manager for this object.
+ *
+ * @ingroup api_simobject
*/
ProbeManager *getProbeManager();
*/
ProbeManager *getProbeManager();
* @param idx Index in the case of a VectorPort
*
* @return A reference to the given port
* @param idx Index in the case of a VectorPort
*
* @return A reference to the given port
+ *
+ * @ingroup api_simobject
*/
virtual Port &getPort(const std::string &if_name,
PortID idx=InvalidPortID);
*/
virtual Port &getPort(const std::string &if_name,
PortID idx=InvalidPortID);
* All state is initialized (including unserialized state, if any,
* such as the curTick() value), so this is the appropriate place to
* schedule initial event(s) for objects that need them.
* All state is initialized (including unserialized state, if any,
* such as the curTick() value), so this is the appropriate place to
* schedule initial event(s) for objects that need them.
+ *
+ * @ingroup api_simobject
*/
virtual void startup();
*/
virtual void startup();
* written all its dirty data back to memory. This method is
* typically used to prepare a system with caches for
* checkpointing.
* written all its dirty data back to memory. This method is
* typically used to prepare a system with caches for
* checkpointing.
+ *
+ * @ingroup api_simobject
*/
virtual void memWriteback() {};
*/
virtual void memWriteback() {};
*
* @warn This does <i>not</i> cause any dirty state to be written
* back to memory.
*
* @warn This does <i>not</i> cause any dirty state to be written
* back to memory.
+ *
+ * @ingroup api_simobject
*/
virtual void memInvalidate() {};
*/
virtual void memInvalidate() {};
* Find the SimObject with the given name and return a pointer to
* it. Primarily used for interactive debugging. Argument is
* char* rather than std::string to make it callable from gdb.
* Find the SimObject with the given name and return a pointer to
* it. Primarily used for interactive debugging. Argument is
* char* rather than std::string to make it callable from gdb.
+ *
+ * @ingroup api_simobject
*/
static SimObject *find(const char *name);
};
*/
static SimObject *find(const char *name);
};
public:
virtual ~SimObjectResolver() { }
public:
virtual ~SimObjectResolver() { }
- // Find a SimObject given a full path name
+ /**
+ * Find a SimObject given a full path name
+ *
+ * @ingroup api_serialize
+ */
virtual SimObject *resolveSimObject(const std::string &name) = 0;
};
virtual SimObject *resolveSimObject(const std::string &name) = 0;
};