kernel/uart: Clean up uarts, make calling convention consistent
Change-Id: I36ef92ef13edb0b006344db74e9d1b3ae52e0127 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4327 Reviewed-by: X512 <[email protected]> Reviewed-by: Jessica Hamilton <[email protected]> Tested-by: Commit checker robot <[email protected]>
This commit is contained in:
committed by
Alex von Gluck IV
parent
c39da9b7a0
commit
1648ab5277
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright 2012-2021 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* François Revol, [email protected]
|
||||
* Alexander von Gluck IV, [email protected]
|
||||
*/
|
||||
#ifndef _KERNEL_ARCH_DEBUG_UART_8250_OMAP_H
|
||||
#define _KERNEL_ARCH_DEBUG_UART_8250_OMAP_H
|
||||
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <SupportDefs.h>
|
||||
#include <arch/generic/debug_uart_8250.h>
|
||||
|
||||
#include "debug_uart.h"
|
||||
|
||||
|
||||
class ArchUART8250Omap : public DebugUART8250 {
|
||||
public:
|
||||
ArchUART8250Omap(addr_t base, int64 clock);
|
||||
~ArchUART8250Omap();
|
||||
void InitEarly();
|
||||
|
||||
// ARM MMIO: on ARM the UART regs are aligned on 32bit
|
||||
virtual void Out8(int reg, uint8 value);
|
||||
virtual uint8 In8(int reg);
|
||||
};
|
||||
|
||||
|
||||
DebugUART8250* arch_get_uart_8250_omap(addr_t base, int64 clock);
|
||||
|
||||
|
||||
#endif /* _KERNEL_ARCH_DEBUG_UART_8250_OMAP_H */
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012 Haiku, Inc. All rights reserved.
|
||||
* Copyright 2012-2021 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
@@ -33,8 +33,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
extern DebugUART8250 *arch_get_uart_8250(addr_t base, int64 clock);
|
||||
extern DebugUART8250 *arch_get_uart_8250_omap(addr_t base, int64 clock);
|
||||
DebugUART8250* arch_get_uart_8250(addr_t base, int64 clock);
|
||||
|
||||
|
||||
#endif /* _KERNEL_ARCH_DEBUG_UART_8250_H */
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
/*
|
||||
* Copyright 2021, Haiku, Inc.
|
||||
* Copyright 2021, Haiku, Inc. All rights reserved
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
|
||||
#ifndef _ARCH_UART_SIFIVE_H_
|
||||
#define _ARCH_UART_SIFIVE_H_
|
||||
|
||||
@@ -97,4 +96,7 @@ ArchUARTSifive::Regs()
|
||||
}
|
||||
|
||||
|
||||
ArchUARTSifive* arch_get_uart_sifive(addr_t base, int64 clock);
|
||||
|
||||
|
||||
#endif // _ARCH_UART_SIFIVE_H_
|
||||
|
||||
@@ -40,24 +40,6 @@ static addr_range sClint = {0};
|
||||
static ArchUart sUart = {.kind = kUartKindNone};
|
||||
|
||||
|
||||
DebugUART8250*
|
||||
arch_get_uart_8250(addr_t base, int64 clock)
|
||||
{
|
||||
static char buffer[sizeof(DebugUART8250)];
|
||||
DebugUART8250* uart = new(buffer) DebugUART8250(base, clock);
|
||||
return uart;
|
||||
}
|
||||
|
||||
|
||||
ArchUARTSifive*
|
||||
arch_get_uart_sifive(addr_t base, int64 clock)
|
||||
{
|
||||
static char buffer[sizeof(ArchUARTSifive)];
|
||||
ArchUARTSifive* uart = new(buffer) ArchUARTSifive(base, clock);
|
||||
return uart;
|
||||
}
|
||||
|
||||
|
||||
static void WriteString(const char *str) {dprintf("%s", str);}
|
||||
static void WriteLn() {dprintf("\n");}
|
||||
static void WriteHex(uint64_t val, int n) {dprintf("%08" B_PRIx64, val);}
|
||||
|
||||
@@ -8,24 +8,12 @@
|
||||
|
||||
|
||||
#include <arch/arm/reg.h>
|
||||
#include <arch/generic/debug_uart_8250.h>
|
||||
#include <arch/arm/debug_uart_8250_omap.h>
|
||||
#include <debug.h>
|
||||
#include <omap3.h>
|
||||
#include <new>
|
||||
|
||||
|
||||
class ArchUART8250Omap : public DebugUART8250 {
|
||||
public:
|
||||
ArchUART8250Omap(addr_t base, int64 clock);
|
||||
~ArchUART8250Omap();
|
||||
void InitEarly();
|
||||
|
||||
// ARM MMIO: on ARM the UART regs are aligned on 32bit
|
||||
virtual void Out8(int reg, uint8 value);
|
||||
virtual uint8 In8(int reg);
|
||||
};
|
||||
|
||||
|
||||
ArchUART8250Omap::ArchUART8250Omap(addr_t base, int64 clock)
|
||||
:
|
||||
DebugUART8250(base, clock)
|
||||
@@ -70,9 +58,10 @@ ArchUART8250Omap::In8(int reg)
|
||||
}
|
||||
|
||||
|
||||
DebugUART8250 *arch_get_uart_8250_omap(addr_t base, int64 clock)
|
||||
DebugUART8250*
|
||||
arch_get_uart_8250_omap(addr_t base, int64 clock)
|
||||
{
|
||||
static char buffer[sizeof(ArchUART8250Omap)];
|
||||
ArchUART8250Omap *uart = new(buffer) ArchUART8250Omap(base, clock);
|
||||
ArchUART8250Omap* uart = new(buffer) ArchUART8250Omap(base, clock);
|
||||
return uart;
|
||||
}
|
||||
|
||||
@@ -319,7 +319,8 @@ ArchUARTPL011::FlushRx()
|
||||
}
|
||||
|
||||
|
||||
ArchUARTPL011 *arch_get_uart_pl011(addr_t base, int64 clock)
|
||||
ArchUARTPL011*
|
||||
arch_get_uart_pl011(addr_t base, int64 clock)
|
||||
{
|
||||
static char buffer[sizeof(ArchUARTPL011)];
|
||||
ArchUARTPL011 *uart = new(buffer) ArchUARTPL011(base, clock);
|
||||
|
||||
@@ -22,8 +22,9 @@
|
||||
*/
|
||||
|
||||
|
||||
#include <debug.h>
|
||||
#include <arch/generic/debug_uart_8250.h>
|
||||
#include <debug.h>
|
||||
#include <new>
|
||||
|
||||
|
||||
DebugUART8250::DebugUART8250(addr_t base, int64 clock)
|
||||
@@ -174,3 +175,13 @@ DebugUART8250::FlushRx()
|
||||
(void)c;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DebugUART8250*
|
||||
arch_get_uart_8250(addr_t base, int64 clock)
|
||||
{
|
||||
static char buffer[sizeof(DebugUART8250)];
|
||||
DebugUART8250* uart = new(buffer) DebugUART8250(base, clock);
|
||||
return uart;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,24 +22,6 @@
|
||||
static DebugUART* sArchDebugUART = NULL;
|
||||
|
||||
|
||||
DebugUART8250*
|
||||
arch_get_uart_8250(addr_t base, int64 clock)
|
||||
{
|
||||
static char buffer[sizeof(DebugUART8250)];
|
||||
DebugUART8250* uart = new(buffer) DebugUART8250(base, clock);
|
||||
return uart;
|
||||
}
|
||||
|
||||
|
||||
ArchUARTSifive*
|
||||
arch_get_uart_sifive(addr_t base, int64 clock)
|
||||
{
|
||||
static char buffer[sizeof(ArchUARTSifive)];
|
||||
ArchUARTSifive* uart = new(buffer) ArchUARTSifive(base, clock);
|
||||
return uart;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
arch_debug_remove_interrupt_handler(uint32 line)
|
||||
{
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
|
||||
|
||||
#include <arch/riscv64/arch_uart_sifive.h>
|
||||
#include <new>
|
||||
|
||||
|
||||
ArchUARTSifive::ArchUARTSifive(addr_t base, int64 clock)
|
||||
@@ -104,3 +106,12 @@ ArchUARTSifive::Barrier()
|
||||
{
|
||||
asm volatile ("" : : : "memory");
|
||||
}
|
||||
|
||||
|
||||
ArchUARTSifive*
|
||||
arch_get_uart_sifive(addr_t base, int64 clock)
|
||||
{
|
||||
static char buffer[sizeof(ArchUARTSifive)];
|
||||
ArchUARTSifive* uart = new(buffer) ArchUARTSifive(base, clock);
|
||||
return uart;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user