template <uint32_t KdrvExtra, typename KdrvConfig, IoRegisterType IoRegType, size_t IoSlots = kIoSlots<KdrvExtra>>
class DriverImpl
Defined at line 209 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
This provides the actual driver logic common to MMIO and PIO variants.
Public Members
static const auto kDevicetreeBindings
static basic_string_view kConfigName
Protected Members
uint8_t fifo_depth_
Public Methods
std::optional<Config<DriverImpl<KdrvExtra, KdrvConfig, IoRegType, IoSlots>>> TryMatch (const acpi_lite::AcpiDebugPortDescriptor & debug_port)
Defined at line 250 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
std::optional<Config<DriverImpl<KdrvExtra, KdrvConfig, IoRegType, IoSlots>>> TryMatch (std::string_view string)
Defined at line 264 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
std::optional<Config<DriverImpl<KdrvExtra, KdrvConfig, IoRegType, IoSlots>>> TryMatch (std::string_view string)
Defined at line 264 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
bool TrySelect (const devicetree::PropertyDecoder & decoder)
Defined at line 273 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
template <typename... Args>
void DriverImpl<KdrvExtra, KdrvConfig, IoRegType, IoSlots> (Args &&... args)
Defined at line 303 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
template <class IoProvider>
void Init (IoProvider & io)
Defined at line 306 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
template <class IoProvider>
void SetLineControl (IoProvider & io, std::optional<DataBits> data_bits, std::optional<Parity> parity, std::optional<StopBits> stop_bits)
Defined at line 367 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
template <class IoProvider>
void SetLineControl (IoProvider & io, std::optional<DataBits> data_bits, std::optional<Parity> parity, std::optional<StopBits> stop_bits)
Defined at line 367 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
template <class IoProvider>
bool TxReady (IoProvider & io)
Defined at line 422 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
template <class IoProvider, typename It1, typename It2>
auto Write (IoProvider & io, bool , It1 it, const It2 & end)
Defined at line 427 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
template <class IoProvider>
std::optional<uint8_t> Read (IoProvider & io)
Defined at line 438 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
template <class IoProvider>
std::optional<uint8_t> Read (IoProvider & io)
Defined at line 438 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
template <class IoProvider>
void EnableTxInterrupt (IoProvider & io, bool enable)
Defined at line 446 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
template <class IoProvider>
void EnableRxInterrupt (IoProvider & io, bool enable)
Defined at line 452 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
template <typename IoProvider, typename IrqProvider>
void InitInterrupt (IoProvider & io, IrqProvider & irq)
Defined at line 458 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h
template <class IoProvider, typename Lock, typename Waiter, typename Tx, typename Rx>
void Interrupt (IoProvider & io, Lock & lock, Waiter & waiter, Tx && tx, Rx && rx)
Defined at line 482 of file ../../zircon/system/ulib/uart/include/lib/uart/ns8250.h