Changes in uspace/drv/bus/isa/isa.c [ee3f6f6:ebc9c2c] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/isa/isa.c
ree3f6f6 rebc9c2c 54 54 #include <ipc/irc.h> 55 55 #include <ipc/services.h> 56 #include <sysinfo.h>57 #include <ns.h>58 56 #include <sys/stat.h> 59 #include <ipc/irc.h> 60 #include <ipc/services.h> 61 #include <sysinfo.h> 57 #include <irc.h> 62 58 #include <ns.h> 63 59 … … 120 116 assert(fun); 121 117 122 sysarg_t apic;123 sysarg_t i8259;124 125 async_sess_t *irc_sess = NULL;126 127 if (((sysinfo_get_value("apic", &apic) == EOK) && (apic))128 || ((sysinfo_get_value("i8259", &i8259) == EOK) && (i8259))) {129 irc_sess = service_connect_blocking(EXCHANGE_SERIALIZE,130 SERVICE_IRC, 0, 0);131 }132 133 if (!irc_sess)134 return false;135 136 118 const hw_resource_list_t *res = &fun->hw_resources; 137 119 assert(res); 138 120 for (size_t i = 0; i < res->count; ++i) { 139 121 if (res->resources[i].type == INTERRUPT) { 140 const int irq = res->resources[i].res.interrupt.irq; 141 142 async_exch_t *exch = async_exchange_begin(irc_sess); 143 const int rc = 144 async_req_1_0(exch, IRC_ENABLE_INTERRUPT, irq); 145 async_exchange_end(exch); 146 147 if (rc != EOK) { 148 async_hangup(irc_sess); 122 int rc = irc_enable_interrupt( 123 res->resources[i].res.interrupt.irq); 124 125 if (rc != EOK) 149 126 return false; 150 } 151 } 152 } 153 154 async_hangup(irc_sess); 127 } 128 } 129 155 130 return true; 156 131 }
Note:
See TracChangeset
for help on using the changeset viewer.