1 #include <lunaix/device.h>
7 extern_hook_load(isa16x50_create_once);
8 extern_hook_create(pci16650_pci_create);
9 extern_hook_register(pci16x50_pci_register);
12 uart_16x50_load(struct device_def* def)
14 isa16x50_create_once(def);
19 uart_16x50_create(struct device_def* def, morph_t* morphed)
21 if (morph_type_of(morphed, pci_probe_morpher)) {
22 pci16650_pci_create(def, morphed);
29 uart_16x50_register(struct device_def* def)
31 pci16x50_pci_register(def);
36 static struct device_def uart_dev = {
37 def_device_class(GENERIC, CHAR, UART16550),
38 def_device_name("16550 UART"),
40 def_on_register(uart_16x50_register),
41 def_on_load(uart_16x50_load),
42 def_on_create(uart_16x50_create)
44 EXPORT_DEVICE(uart16550_pmio, &uart_dev, load_onboot);