summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nltypes.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/nltypes.h')
-rw-r--r--src/lib/netlist/nltypes.h93
1 files changed, 84 insertions, 9 deletions
diff --git a/src/lib/netlist/nltypes.h b/src/lib/netlist/nltypes.h
index 98bfbb49a92..b259ae55b76 100644
--- a/src/lib/netlist/nltypes.h
+++ b/src/lib/netlist/nltypes.h
@@ -13,19 +13,94 @@
#define NLTYPES_H_
#include "nl_config.h"
-#include "plib/pchrono.h"
-#include "plib/pdynlib.h"
-#include "plib/pfmtlog.h"
-#include "plib/pmempool.h"
-#include "plib/pstate.h"
+
+//#include "plib/pchrono.h"
+#include "plib/ptypes.h"
#include "plib/pstring.h"
#include "plib/ptime.h"
-#include "plib/putil.h"
-#include <unordered_map>
+#include <memory>
+
+// FIXME: Move to ptypes
+namespace plib
+{
+ // FORWARD declarations
+ template <typename BASEARENA, std::size_t MINALIGN>
+ class mempool_arena;
+
+ struct aligned_arena;
+ class dynlib_base;
+
+ template<class T, bool debug_enabled>
+ class plog_base;
+
+ struct plog_level;
+}
namespace netlist
{
+ // -----------------------------------------------------------------------------
+ // forward definitions
+ // -----------------------------------------------------------------------------
+
+ class logic_output_t;
+ class logic_input_t;
+ class analog_net_t;
+ class logic_net_t;
+ class setup_t;
+ class nlparse_t;
+ class netlist_t;
+ class netlist_state_t;
+ class core_device_t;
+ class device_t;
+ class netlist_state_t;
+ class param_t;
+ class logic_family_desc_t;
+ class terminal_t;
+
+ namespace devices
+ {
+ class nld_solver;
+ class nld_mainclock;
+ class nld_base_proxy;
+ class nld_base_d_to_a_proxy;
+ class nld_base_a_to_d_proxy;
+ class nld_netlistparams;
+ } // namespace devices
+
+ namespace solver
+ {
+ class matrix_solver_t;
+ } // namespace solver
+
+ namespace detail
+ {
+ class core_terminal_t;
+ class net_t;
+ } // namespace detail
+
+ namespace factory
+ {
+ class list_t;
+ class element_t;
+ struct properties;
+ } // namespace factory
+
+ template <class CX>
+ class delegator_t : public CX
+ {
+ protected:
+ using base_type = delegator_t<CX>;
+ using delegated_type = CX;
+ using delegated_type::delegated_type;
+ };
+
+} // namespace netlist
+
+
+namespace netlist
+{
+
/// \brief Constants and const calculations for the library
///
template<typename T>
@@ -79,7 +154,7 @@ namespace netlist
///
using device_arena = std::conditional_t<config::use_mempool::value,
- plib::mempool_arena<plib::aligned_arena>,
+ plib::mempool_arena<plib::aligned_arena, NL_MEMPOOL_ALIGN>,
plib::aligned_arena>;
using host_arena = plib::aligned_arena;
@@ -109,7 +184,7 @@ namespace netlist
/// of a callbacks_t implementation to optionally provide such a collection
/// of symbols.
///
- virtual host_arena::unique_ptr<plib::dynlib_base> static_solver_lib() const;
+ virtual std::unique_ptr<plib::dynlib_base> static_solver_lib() const;
};
using log_type = plib::plog_base<callbacks_t, NL_DEBUG>;