diff options
Diffstat (limited to 'src/lib/netlist/nltypes.h')
-rw-r--r-- | src/lib/netlist/nltypes.h | 93 |
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>; |