/************************************************************************** * DSemu - The Next Generation * * Null base plugin: Implementation [null.cpp] * * Copyright Imran Nazar, 2005; released under the BSD public licence. * **************************************************************************/ #include "null.h" #include "log.h" //---Static private class members------------------------------------------ // Every plugin has an INFO structure attached, with info about the plugin. PLUGININFO nullPlugin::pInfo={ PLUGIN_TYPE_NULL, 0x00010001, "Null plugin", "DSemu-ng" }; std::string nullPlugin::pluginName; // Initialise plugin: register with MMU mmio space nullPlugin::nullPlugin(std::string name, REQPTR req, UNREQPTR unreq) { pName = std::string(name); pClass = pName.substr(0, pName.find(".")+1); pRequest = req; pUnrequest = unreq; pluginName = pName; Logger::log(pluginName) } // Shut down plugin nullPlugin::~nullPlugin() { Logger::log(pluginName) } // Reset plugin: Clear internal values and registers void nullPlugin::reset() { } // Provide status: Nothing to say, really void nullPlugin::status(int opt1, int opt2) { } //---Plugin Support-------------------------------------------------------- // Retrieve Plugin class from outside // Parameters: plg - Address of a pointer to a Plugin class to 'new' // name - FQPN of plugin as listed in INI file // req - Pointer to PluginRequest API function // unreq - Pointer to PluginUnrequest API function EXPORTFUNC void getPlugin(Plugin **plg, std::string name, REQPTR req, UNREQPTR unreq) { // Initialise a new Test plugin at the parameter *plg = new nullPlugin(name, req, unreq); } // Provide plugin version information PLUGININFO *nullPlugin::getinfo() { return &pInfo; } // Release plugin from outside void nullPlugin::release() { // Delete the Test plugin that was 'new'd in getPlugin. delete this; } /*** EOF: null.cpp *******************************************************/