Introducing LunaBuild to the build flow (#36)
[lunaix-os.git] / lunaix-os / hal / char / uart / 16550_pmio.c
index ed3a6186504b2210f6dcb7059145d218a143add2..62d403a90a0a1f18a5fb5f163c2fc6bdb4993cb4 100644 (file)
@@ -9,7 +9,7 @@
  *
  */
 #include <lunaix/device.h>
  *
  */
 #include <lunaix/device.h>
-#include <lunaix/isrm.h>
+#include <lunaix/generic/isrm.h>
 
 #include <sys/port_io.h>
 
 
 #include <sys/port_io.h>
 
@@ -36,9 +36,10 @@ com_regwrite(struct uart16550* uart, ptr_t regoff, u32_t val)
 }
 
 static void
 }
 
 static void
-com_irq_handler(const isr_param* param)
+com_irq_handler(const struct hart_state* hstate)
 {
 {
-    uart_general_irq_handler(param->execp->vector, &com_ports);
+    int vector = hart_vector_stamp(hstate);
+    uart_general_irq_handler(vector, &com_ports);
 }
 
 static int
 }
 
 static int
@@ -77,7 +78,7 @@ upiom_init(struct device_def* def)
         uart_enable_fifo(uart, UART_FIFO8);
         llist_append(&com_ports, &uart->local_ports);
 
         uart_enable_fifo(uart, UART_FIFO8);
         llist_append(&com_ports, &uart->local_ports);
 
-        struct serial_dev* sdev = serial_create(&def->class);
+        struct serial_dev* sdev = serial_create(&def->class, "S");
         sdev->backend = uart;
         sdev->write = uart_general_tx;
         sdev->exec_cmd = uart_general_exec_cmd;
         sdev->backend = uart;
         sdev->write = uart_general_tx;
         sdev->exec_cmd = uart_general_exec_cmd;
@@ -97,8 +98,8 @@ upiom_init(struct device_def* def)
 }
 
 static struct device_def uart_pmio_def = {
 }
 
 static struct device_def uart_pmio_def = {
-    .class = DEVCLASS(DEVIF_SOC, DEVFN_CHAR, DEV_SERIAL, 0),
+    .class = DEVCLASS(DEVIF_SOC, DEVFN_CHAR, DEV_UART16550),
     .name = "16550 Generic UART (I/O)",
     .init = upiom_init
 };
     .name = "16550 Generic UART (I/O)",
     .init = upiom_init
 };
-EXPORT_DEVICE(uart16550_pmio, &uart_pmio_def, load_earlystage);
\ No newline at end of file
+EXPORT_DEVICE(uart16550_pmio, &uart_pmio_def, load_onboot);
\ No newline at end of file