summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nltypes.h
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2020-06-28 13:14:16 +0200
committer couriersud <couriersud@gmx.org>2020-06-28 13:14:43 +0200
commitab31af569fb543f4b81fe30c3c37f6c957b09c48 (patch)
tree6a93d3b374bbce8c135b1070283d88d5b48de2a1 /src/lib/netlist/nltypes.h
parent3fcdfa0a9b1783f556abe36c9fb927c25c2170ee (diff)
netlist: include file refactoring.
The purpose of this ongoing exercise is to remove unnecessary dependencies in header files. netlist implementations should only have access to what they need. The same applies to device implementations. Core stuff will be moved to the core subdirectory going forward.
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>;