Lines Matching refs:channel

48 // info about one channel
63 /*! publish node of an ide channel */
109 channel_info *channel = cookie;
110 channel->ide_channel = ideChannel;
118 channel_info *channel = channel_cookie;
119 uint16 ioaddr = channel->command_block_base;
122 if (channel->lost)
129 channel->isa->write_io_8(ioaddr + 1 + i, tf->raw.r[i + 7]);
134 channel->isa->write_io_8(ioaddr + 1 + i, tf->raw.r[i]);
146 channel_info *channel = channel_cookie;
147 uint16 ioaddr = channel->command_block_base;
150 if (channel->lost)
155 tf->raw.r[i] = channel->isa->read_io_8(ioaddr + 1 + i);
167 channel_info *channel = channel_cookie;
168 uint16 altstatusaddr = channel->control_block_base;
170 if (channel->lost)
173 return channel->isa->read_io_8(altstatusaddr);
180 channel_info *channel = channel_cookie;
181 uint16 device_control_addr = channel->control_block_base;
185 if (channel->lost)
188 channel->isa->write_io_8(device_control_addr, val);
197 channel_info *channel = channel_cookie;
198 uint16 ioaddr = channel->command_block_base;
200 if (channel->lost)
209 channel->isa->write_io_16(ioaddr, *(data++));
214 channel->isa->write_io_32(ioaddr, *(cur_data++));
224 channel_info *channel = channel_cookie;
225 uint16 ioaddr = channel->command_block_base;
227 if (channel->lost)
234 *(data++) = channel->isa->read_io_16(ioaddr);
239 *(cur_data++) = channel->isa->read_io_32(ioaddr);
249 channel_info *channel = (channel_info *)arg;
254 if (channel->lost)
258 status = channel->isa->read_io_8(channel->command_block_base + 7);
260 return ide->irq_handler(channel->ide_channel, status);
312 channel_info *channel;
319 TRACE("ISA-IDE: channel init\n");
331 channel = (channel_info *)malloc(sizeof(channel_info));
332 if (channel == NULL)
335 TRACE("ISA-IDE: channel init, resources %#x %#x %d\n",
338 channel->isa = isa;
339 channel->node = node;
340 channel->lost = false;
341 channel->command_block_base = command_block_base;
342 channel->control_block_base = control_block_base;
343 channel->intnum = irq;
344 channel->ide_channel = NULL;
346 res = install_io_interrupt_handler(channel->intnum,
347 inthand, channel, 0);
354 // enable interrupts so the channel is ready to run
355 write_device_control(channel, ide_devctrl_bit3);
357 *_cookie = channel;
361 free(channel);
369 channel_info *channel = channel_cookie;
371 TRACE("ISA-IDE: channel uninit\n");
374 write_device_control(channel, ide_devctrl_bit3 | ide_devctrl_nien);
381 remove_io_interrupt_handler(channel->intnum, inthand, channel);
383 free(channel);
397 "primary IDE channel");
399 "secondary IDE channel");
411 channel_info *channel = cookie;
415 atomic_or(&channel->lost, 1);