blob: 37f5f6dee69f290be338122921ea63044af1ca01 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Gary Jennejohnc6dc7552008-11-06 15:04:23 +01002/*
3 * (C) Copyright 2008
4 * Gary Jennejohn, DENX Software Engineering GmbH, garyj@denx.de.
Gary Jennejohnc6dc7552008-11-06 15:04:23 +01005 */
6
7#ifndef _IO_MUX_H
8#define _IO_MUX_H
9
Jean-Christophe PLAGNIOL-VILLARD2a7a0312009-05-16 12:14:54 +020010#include <stdio_dev.h>
Gary Jennejohnc6dc7552008-11-06 15:04:23 +010011
12/*
13 * Stuff required to support console multiplexing.
14 */
15
16/*
17 * Pointers to devices used for each file type. Defined in console.c
18 * but storage is allocated in iomux.c.
19 */
Jean-Christophe PLAGNIOL-VILLARD2a7a0312009-05-16 12:14:54 +020020extern struct stdio_dev **console_devices[MAX_FILES];
Gary Jennejohnc6dc7552008-11-06 15:04:23 +010021/*
22 * The count of devices assigned to each FILE. Defined in console.c
23 * and populated in iomux.c.
24 */
25extern int cd_count[MAX_FILES];
26
Andy Shevchenkoe29d0192021-02-11 17:09:42 +020027#define for_each_console_dev(i, file, dev) \
28 for (i = 0, dev = console_devices[file][i]; \
29 i < cd_count[file]; \
30 i++, dev = console_devices[file][i])
31
Andy Shevchenko75039f52021-02-11 17:09:41 +020032int iomux_match_device(struct stdio_dev **, const int, struct stdio_dev *);
Gary Jennejohnc6dc7552008-11-06 15:04:23 +010033int iomux_doenv(const int, const char *);
Andy Shevchenko8ee40d32021-02-11 17:09:43 +020034int iomux_replace_device(const int, const char *, const char *);
Gary Jennejohnc6dc7552008-11-06 15:04:23 +010035void iomux_printdevs(const int);
Gary Jennejohnc6dc7552008-11-06 15:04:23 +010036
37#endif /* _IO_MUX_H */