package embox.driver.serial

@DefaultImpl(uart_repo_with_dynamic)
abstract module uart_repo {
}

module uart_repo_with_dynamic extends uart_repo {
	option string log_level="LOG_ERR"
	option number uart_max_n = 4

	source "uart_dev_dynamic_repo.c"

	@NoRuntime depends embox.lib.libds
	@NoRuntime depends embox.mem.pool
}

module uart_repo_static extends uart_repo {
	option string log_level="LOG_ERR"

	source "uart_dev_static_repo.c"
}

@DefaultImpl(core_tty)
abstract module core {
	option string log_level="LOG_ERR"

	source "uart_dev.c"

	@IncludeExport(path="drivers/serial")
	source "uart_dev.h"

	@NoRuntime depends embox.lib.libds

	depends uart_repo
}

module core_tty extends core {
	@NoRuntime depends embox.driver.tty.serial
	@NoRuntime depends embox.device.common
}

module core_notty extends core {
	@NoRuntime depends embox.driver.tty.serial_stub
	@NoRuntime depends embox.device.common
}
