pc/uart: fix build errors with -std=gnu++20

Fixes #4885
This commit is contained in:
Christian Helmuth 2023-05-16 12:06:37 +02:00
parent cfca9899b2
commit 058990de48
2 changed files with 4 additions and 2 deletions

View File

@ -17,6 +17,7 @@
/* Genode includes */
#include <base/stdint.h>
#include <cpu/memory_barrier.h>
namespace Genode { class X86_uart; }
@ -87,7 +88,7 @@ class Genode::X86_uart
DLHI = (uint16_t)(_port + 1);
_outb(LCR, 0x80); /* select bank 1 */
for (volatile int i = 10000000; i--; );
for (int i = 10000000; i; --i) memory_barrier();
_outb(DLLO, (uint8_t)((115200/_baud_rate) >> 0));
_outb(DLHI, (uint8_t)((115200/_baud_rate) >> 8));
_outb(LCR, 0x03); /* set 8,N,1 */

View File

@ -18,6 +18,7 @@
/* Genode includes */
#include <base/env.h>
#include <io_port_session/connection.h>
#include <cpu/memory_barrier.h>
enum { UARTS_NUM = 4 }; /* needed by base class definitions */
@ -87,7 +88,7 @@ class Uart::Driver : public Uart::Driver_base
void _init_comport(size_t baud)
{
_outb<LCR>(0x80u); /* select bank 1 */
for (volatile int i = 10000000; i--; );
for (int i = 10000000; i; i--) memory_barrier();
_outb<DLLO>(((115200/baud) >> 0) && 0xff);
_outb<DLHI>(((115200/baud) >> 8) && 0xff);
_outb<LCR>(0x03u); /* set 8,N,1 */