Lines Matching refs:channel

46 // info about one channel
61 /*! publish node of an ata channel */
106 channel_info *channel = cookie;
107 channel->ataChannel = ataChannel;
115 channel_info *channel = channel_cookie;
116 uint16 ioaddr = channel->command_block_base;
119 if (channel->lost)
126 channel->isa->write_io_8(ioaddr + 1 + i, tf->raw.r[i + 7]);
131 channel->isa->write_io_8(ioaddr + 1 + i, tf->raw.r[i]);
143 channel_info *channel = channel_cookie;
144 uint16 ioaddr = channel->command_block_base;
147 if (channel->lost)
152 tf->raw.r[i] = channel->isa->read_io_8(ioaddr + 1 + i);
164 channel_info *channel = channel_cookie;
165 uint16 altstatusaddr = channel->control_block_base;
167 if (channel->lost)
170 return channel->isa->read_io_8(altstatusaddr);
177 channel_info *channel = channel_cookie;
178 uint16 device_control_addr = channel->control_block_base;
182 if (channel->lost)
185 channel->isa->write_io_8(device_control_addr, val);
194 channel_info *channel = channel_cookie;
195 uint16 ioaddr = channel->command_block_base;
197 if (channel->lost)
206 channel->isa->write_io_16(ioaddr, *(data++));
211 channel->isa->write_io_32(ioaddr, *(cur_data++));
221 channel_info *channel = channel_cookie;
222 uint16 ioaddr = channel->command_block_base;
224 if (channel->lost)
231 *(data++) = channel->isa->read_io_16(ioaddr);
236 *(cur_data++) = channel->isa->read_io_32(ioaddr);
246 channel_info *channel = (channel_info *)arg;
251 if (channel->lost)
255 status = channel->isa->read_io_8(channel->command_block_base + 7);
257 return sATA->interrupt_handler(channel->ataChannel, status);
309 channel_info *channel;
316 TRACE("ISA-IDE: channel init\n");
328 channel = (channel_info *)malloc(sizeof(channel_info));
329 if (channel == NULL)
332 TRACE("ISA-IDE: channel init, resources %#x %#x %d\n",
335 channel->isa = isa;
336 channel->node = node;
337 channel->lost = false;
338 channel->command_block_base = command_block_base;
339 channel->control_block_base = control_block_base;
340 channel->intnum = irq;
341 channel->ataChannel = NULL;
343 res = install_io_interrupt_handler(channel->intnum,
344 inthand, channel, 0);
351 // enable interrupts so the channel is ready to run
352 write_device_control(channel, ATA_DEVICE_CONTROL_BIT3);
354 *_cookie = channel;
358 free(channel);
366 channel_info *channel = channel_cookie;
368 TRACE("ISA-IDE: channel uninit\n");
371 write_device_control(channel, ATA_DEVICE_CONTROL_BIT3 | ATA_DEVICE_CONTROL_DISABLE_INTS);
378 remove_io_interrupt_handler(channel->intnum, inthand, channel);
380 free(channel);
394 "primary IDE channel");
396 "secondary IDE channel");
408 channel_info *channel = cookie;
412 atomic_or((int32*)&channel->lost, 1);