Serial IRQ function

Co-Authored-By: Miran Grča <oubattler@gmail.com>
This commit is contained in:
Jasmine Iwanek
2025-02-08 22:29:56 -05:00
parent dd24d0329c
commit 370481ceed
2 changed files with 17 additions and 2 deletions

View File

@@ -15,7 +15,7 @@
* Authors: Miran Grca, <mgrca8@gmail.com>
* Fred N. van Kempen, <decwiz@yahoo.com>
*
* Copyright 2016-2020 Miran Grca.
* Copyright 2016-2025 Miran Grca.
* Copyright 2017-2020 Fred N. van Kempen.
*/
#include <stdarg.h>
@@ -782,6 +782,20 @@ serial_setup(serial_t *dev, uint16_t addr, uint8_t irq)
dev->irq = irq;
}
void
serial_irq(serial_t *dev, const uint8_t irq)
{
if (dev == NULL)
return;
if (com_ports[dev->inst].enabled)
dev->irq = irq;
else
dev->irq = 0xff;
serial_log("Port %i IRQ = %02X\n", dev->inst, irq);
}
static void
serial_rcvr_d_empty_evt(void *priv)
{

View File

@@ -16,7 +16,7 @@
* Fred N. van Kempen, <decwiz@yahoo.com>
*
* Copyright 2008-2020 Sarah Walker.
* Copyright 2016-2020 Miran Grca.
* Copyright 2016-2025 Miran Grca.
* Copyright 2017-2020 Fred N. van Kempen.
*/
@@ -137,6 +137,7 @@ extern serial_t *serial_attach_ex_2(int port,
extern void serial_remove(serial_t *dev);
extern void serial_set_type(serial_t *dev, int type);
extern void serial_setup(serial_t *dev, uint16_t addr, uint8_t irq);
extern void serial_irq(serial_t *dev, uint8_t irq);
extern void serial_clear_fifo(serial_t *dev);
extern void serial_write_fifo(serial_t *dev, uint8_t dat);
extern void serial_set_next_inst(int ni);